| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Effect.Type.Unravel
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] m p) => PrimHandler InterceptH (Unravel (InterceptB e)) (SteppedC e m) Source # | |
Defined in Control.Effect.Internal.Intercept Methods 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 # | |