Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
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
(Lift
IO) r =>Semantic
r ()
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.