Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
Documentation
newtype Lift m (z :: * -> *) a where Source #
An effect which allows a regular Monad
m
into the Sem
ecosystem. Monadic actions in m
can be lifted into Sem
via
sendM
.
For example, you can use this effect to lift IO
actions directly into
Sem
:
sendM
(putStrLn "hello") ::Member
(Lift
IO) r =>Sem
r ()
That being said, you lose out on a significant amount of the benefits of
Sem
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.