Added a monad instance and a `dofuture` macro to make use of `map` and `flatmap` (the two most used combinators) more pleasant.