rewrite ReaderT to Lazy RWST monad