notes on reader monad transformer