Add first go at async monad. Dull name.
Working definition. Needs registration of file-descriptors.
Add toy reader and writer.
Add runnable interface.
Add noblock to build.
Add Kleisli composition and expose error data-type.
Add ErrorT.
Hide error type again. Case split should be recoverable via throw, catch
and null.
Fix unbound reference to err
Add Retry monad
Access to a sum from the error monads. Otherwise, it isn't actually recoverable.
Signature for Retry, now with functions to actually add retries.