module Control.Effect
(
Carrier(Derivs)
, Effect
, RepresentationalEff
, Eff
, Effs
, Bundle
, Member
, send
, run
, runM
, Embed(..)
, embed
, interpretSimple
, SimpleInterpreterFor
, interpretViaHandler
, Handler(..)
, interpret
, InterpreterFor
, EffHandler
, reinterpretSimple
, reinterpretViaHandler
, reinterpret
, Threaders
, ReaderThreads
, intro1
, intro
, introUnder1
, introUnder
, introUnderMany
, HeadEff
, HeadEffs
, CompositionC
, runComposition
, Effly(..)
, subsume
, MonadBase(..)
, MonadTrans(..)
, RunC
, RunMC
, InterpretSimpleC
, InterpretC
, InterpretReifiedC
, ReifiesHandler
, ViaReifiedH
, ReinterpretSimpleC
, ReinterpretC
, ReinterpretReifiedC
, IntroConsistent
, IntroC
, IntroTopC
, IntroUnderC
, IntroUnderManyC
, KnownList
, SubsumeC
) where
import Control.Effect.Internal
import Control.Effect.Internal.Effly
import Control.Effect.Internal.KnownList
import Control.Effect.Internal.Membership
import Control.Effect.Internal.Union
import Control.Effect.Embed
import Control.Effect.Carrier.Internal.Compose
import Control.Effect.Carrier.Internal.Intro
import Control.Effect.Carrier.Internal.Interpret
import Control.Monad.Base
import Control.Monad.Trans
type InterpreterFor e m =
forall x
. InterpretReifiedC e m x
-> m x
type SimpleInterpreterFor e m =
forall x p
. Threaders '[ReaderThreads] m p
=> InterpretSimpleC e m x
-> m x