polysemy-0.1.1.0: Higher-order, low-boilerplate, zero-cost free monads.

Safe HaskellNone
LanguageHaskell2010

Polysemy.IO

Contents

Synopsis

Interpretations

runIO :: forall m r a. (MonadIO m, Member (Lift m) r) => Semantic (Lift IO ': r) a -> Semantic r a Source #

The MonadIO class is conceptually an interpretation of IO to some other monad. This function reifies that intuition, by transforming an IO effect into some other MonadIO.

This function is especially useful when using the MonadIO instance for Semantic instance.

Make sure to type-apply the desired MonadIO instance when using runIO.

Example

foo :: PandocIO ()
foo = runM . runIO @PandocIO $ do
  liftIO $ putStrLn "hello from polysemy"

Since: 0.1.1.0