Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
data Unravel p :: Effect where Source #
A primitive effect which allows you to break a computation into layers.
This is the primitive effect underlying
Intercept
and
InterceptCont
.
Note: ThreadsEff
instances are not allowed to assume that p
is a functor.
Unravel
is typically used as a primitive effect.
If you define a Carrier
that relies on a novel
non-trivial monad transformer t
, then you need to make
a
instance (if possible).ThreadsEff
t (Unravel
p)
The following threading constraints accept Unravel
:
Instances
ThreadsEff ListT (Unravel p) Source # | |
(FirstOrder e, Carrier m, Threaders (SteppedThreads ': ([] :: [[Effect] -> Constraint])) m p) => PrimHandler InterceptH (Unravel (InterceptB e)) (SteppedC e m) Source # | |
Defined in Control.Effect.Internal.Intercept effPrimHandler :: EffPrimHandler (Unravel (InterceptB e)) (SteppedC e m) Source # | |
ThreadsEff (ExceptT e) (Unravel p) Source # | |
ThreadsEff (ReaderT i) (Unravel p) Source # | |
ThreadsEff (FreeT f) (Unravel p) Source # | |