Attempt at the reader monad and transformer