Running a free monad in another monad.
Handy for turning trampolines into futures.