| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Polysemy.Internal.Lift
Documentation
newtype Lift m (z :: * -> *) a where Source #
An effect which allows a regular Monad m into the Semantic
ecosystem. Monadic actions in m can be lifted into Semantic via
sendM.
For example, you can use this effect to lift IO actions directly into
Semantic:
sendM(putStrLn "hello") ::Member(LiftIO) r =>Semanticr ()
That being said, you lose out on a significant amount of the benefits of
Semantic by using sendM directly in application code; doing so
will tie your application code directly to the underlying monad, and prevent
you from interpreting it differently. For best results, only use Lift in
your effect interpreters.
Consider using trace and runTraceIO as
a substitute for using putStrLn directly.