x1pdN      !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M None!"(2346=HJKMWType level list append.HA 'known list' is a type level list who's size is known at compile time.5A constraint that requires that the type constructor  t :: * -> *# is a member of the list of types ts :: [* -> *].7Represents a union of the list of type constructors in es parameterized by aY. As an effect, it represents the union of each type constructor's corresponding effect.NOPQRSTUVWXYZ[\]^_`abcdefg [\]^_`NOPQRTSUVWXYZ[\]^_`abcdefgNone(-HJKM 7A handler for an effectful computation. Combined with  H, allows one to convert a computation parameterized by the effect list es to a value of type a.An effectful computation. An  Effect es aB may perform any of the effects specified by the list of effects es# before returning a result of type a6. The definition is isomorphic to the following GADT: gdata Effect es a where Done :: a -> Effect es a Side :: `Union` es (Effect es a) -> Effect es aFConverts an computation that produces no effects into a regular value.Executes an effect of type e& that produces a return value of type a.Executes an effect of type e& that produces a return value of type a.  handle p h+ transforms an effect into a value of type b.p/ specifies how to convert pure values. That is,handle p h (return x) = p xh! specifies how to handle effects. Provides a way to completely handle an effect. The given function is passed an effect value parameterized by the output type (i.e. the return type of  ). Provides a way to handle an effect without eliminating it. The given function is passed an effect value parameterized by the output type (i.e. the return type of  ). ^Computes a basis handler. Provides a way to pass on effects of unknown types. In most cases,   is sufficient. *Relays all effects without examining them.handle id defaultRelay x = x/A handler for when there are no effects. Since s handle effects, they cannot be run on a computation that never produces an effect. By the principle of explosion, a handler that requires exactly zero effects can produce any value.hij kl     hij klNone&(-2346=JK*An effect that allows accumulating output.Writes a value to the output.Executes a computation, and obtains the writer output. The writer output of the inner computation is still written to the writer output of the outer computation.Like 2, but the writer output is run through a function.Runs a computation that returns a value and a function, applies the function to the writer output, and then returns the value.9Applies a function to the writer output of a computation.?Completely handles a writer effect. The writer value must be a m. n" is used as an initial value, and o^ is used to combine values. Returns the result of the computation and the final output value. pqrst pqrstNone&(3=JKNests an effect with another. #Flattens a nested list of effects. uvuvNone&(-2346=JK EAn effect where a state value is threaded throughout the computation.Gets the current state.5Gets a value that is a function of the current state.Replaces the current state.+Applies a pure modifier to the state value. fApplies a pure modifier to the state value. The modified value is converted to weak head normal form.!$Lifts a stateful computation to the  monad."/Runs a computation with a modified state value.withState f x = modify f >> x#Completely handles a L effect by providing an initial state, and making the final state explicit.$Completely handles a & effect, and discards the final state.%Completely handles a & effect, and discards the final value.wx !"#$%y  !"#$% #$% !"wx !"#$%yNone&(-2346=JK'1An effect that describes an implicit environment.("Retrieves the current environment.)@Retrieves a value that is a function of the current environment.*/Runs a computation with a modified environment.+Completely handes a 'Q effect by providing an environment value to be used throughout the computation. z&'{()*+|}&'()*+&'+()* z&'{()*+|}None&(-3JK-GDescribes a Prolog-like cut effect. This effect must be used with the / effect./1Describes a nondeterminism (backtracking) effect.09Nondeterministically chooses a value from the input list.1DDescribes a nondeterministic computation that never returns a value.2ANondeterministically chooses a value from a list of computations.3YObtains all possible values from a computation parameterized by a nondeterminism effect.4NPrevents backtracking past the point this value was invoked. Unlike Prolog's ! operator, 4X will cause the current computation to fail immediately, instead of when it backtracks.5 Handles the - effect. 4Ns have no effect beyond the scope of the computation passed to this function.,-~./012345 ,-./012345 ./3012,-45 ,-~./012345None &(-3=JK6FAn effect described by a monad. All monads are functors, but not all s have ( instances. By wrapping a monad in the 6= effect, all monads can be used without having to provide a  instance for each one.7%Lifts a monadic value into an effect.8SConverts a computation containing only monadic effects into a monadic computation. 678678687678None&(-3JK:1An effect that describes concurrent computation. ;%Yields to the next available thread. <Forks a child thread. =+Immediately terminates the current thread. >WExecutes a threaded computation synchronously. Completes when the main thread exits. ?bExecutes a threaded computation synchronously. Does not complete until all threads have exited. @0Executes a threaded computation asynchronously. 9:;<=>?@9:;<=>?@9:>?@;<= 9:;<=>?@ None&(-2346=JKB4An effect that describes the possibility of failure.CRaises an exception.D8Handles an exception. Intended to be used in infix form. 0myComputation `except` \ex -> doSomethingWith exEEnsures that a computation is run after another one completes, regardless of whether an exception was raised. Intended to be used in infix form. @do x <- loadSomeResource doSomethingWith x `finally` unload xF'Completely handles an exception effect. ABCDEFABCDEFABFCDEABCDEF None &(-3=JKHA suspended computation.I7Describes a computation that provided a value of type i and awaits a value of type o.J!Describes a finished computation.K/An effect describing a suspendable computation.L?Suspends the current computation by providing a value of type i& and then waiting for a value of type o.M Converts a K effect into an H. GHIJKLMGHIJKLMGKHJIMLGHJIKLM NoneN  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLM N O P Q R S T U V W X Y Z [ \ \ ] ^ _ ` a a b c d  e f g h i j k l m n o p qrstuvwuvxuvyz{|}~(4|:<uuC  O  X effin-0.1.0.0Control.Effect.UnionControl.Monad.EffectControl.Effect.WriterControl.Effect.StateControl.Effect.ReaderControl.Effect.ListControl.Effect.LiftControl.Effect.ThreadControl.Effect.ExceptionControl.Effect.Coroutine Data.UnionControl.Effect++ KnownListMemberUnionHandlerEffect runEffectsend sendEffecthandle eliminate interceptrelay defaultRelay emptyRelay EffectWriterWritertelllistenlistenspasscensor runWriter EffectUnionnestrunUnion EffectStateStategetgetsputmodifymodify'state withStaterunState evalState execState EffectReaderReaderaskaskslocal runReader EffectCutCut EffectListListchooseneverselectrunListcutrunCutLiftliftrunLift EffectThreadThreadyieldforkabortrunMainrunSyncrunAsyncEffectException Exceptionraiseexceptfinally runExceptionEffectCoroutineIteratorNextDone Coroutinesuspend runCoroutinesizeSizeIndexOfNSZIndexMember'index'indexinjectprojectreduceflatten withUnion absurdUnion withIndex $fKnownList: $fKnownList[] $fMember'e:S $fMember'e:Z $fMembertts$fFunctorUnionunEffect $fMonadEffect$fApplicativeEffectbase Data.MonoidMonoidmemptymappend WriterTypepointbind$fMonadWritereEffect UnionType relayUnion StateType$fMonadStatesEffect ReaderType$fMonadReaderrEffectunList$fMonadPlusEffect$fAlternativeEffectGHC.BaseMonadFunctorLiftType EffectLiftunLift $fFunctorLift$fMonadIOEffect ThreadASTAbortASTForkASTYieldASTAbortForkYieldtoAST ExceptionType unException$fMonadErroreEffect CoroutineType