in-other-words-0.1.0.0: A higher-order effect system where the sky's the limit

Control.Effect.Type.Unravel

Synopsis

# 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 ThreadsEff t (Unravel p) instance (if possible).

The following threading constraints accept Unravel:

• ReaderThreads
• ErrorThreads
• NonDetThreads
• SteppedThreads
• ContThreads

Constructors

 Unravel :: p a -> (m a -> a) -> m a -> Unravel p m a

#### Instances

Instances details