The Reader+IO monad. This is different from a ReaderT because:
It's not a transformer, it hardcodes IO for simpler usage and error messages.
Instances of typeclasses like
MonadLoggerare implemented using classes defined on the environment, instead of using an underlying monad.
Instances13MonadReader, MonadState, MonadWriter, Monad, Functor, Applicative, …
MonadReader env (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOHasStateRef s env => MonadState s (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIO(Monoid w, HasWriteRef w env) => MonadWriter w (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOMonad (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOFunctor (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOApplicative (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOMonadIO (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOMonadThrow (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOPrimMonad (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOMonadUnliftIO (RIO env)Defined in rio-0.1.22.0 · RIO.Prelude.RIOSemigroup a => Semigroup (RIO env a)Defined in rio-0.1.22.0 · RIO.Prelude.RIOMonoid a => Monoid (RIO env a)Defined in rio-0.1.22.0 · RIO.Prelude.RIOtype PrimState (RIO env) = PrimState IODefined in rio-0.1.22.0 · RIO.Prelude.RIO