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
Sem instance.
Make sure to type-apply the desired
MonadIO instance when using
embedToMonadIO.
Example
foo :: PandocIO ()
foo = runM . embedToMonadIO @PandocIO $ do
liftIO $ putStrLn "hello from polysemy"