better user.test
Reader monad
Make >=> and <=< context-aware
outer method in monad transformers in order to achieve automatic lifting
MonadState protocol
Implement MonadState in the state monad
`ask` reader for getting access to the reader environment
Make ask a reader and actually test it
`local` function for modifying reader environments
Reader monad transformer
A maybe monad transformer wraps a maybe in the given monad, not the other way around
Test Either monad and fix its transformer
Clarify MonadTrans docstrings
Use inner-monad as monad transformer arguments and rename MonadTrans' outer method to base
Variadic >>
Pull out pair type for using it in the writer monad
Writer monad
Fix tests in cljs
Test `pass` function of the writer monad
Fix test description