*experimental - don't use yet* Purely functional I/O in Java using the Free monad.