\T"r      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqNone*/29;<=DIORTThe  is really just a rE carrying around the function that knows how to handle the effect. Use the effect described by eff.Handle the effect described by eff.       None /29;<=DIRThe  is really just a rE carrying around the function that knows how to handle the effect.!Use the effect described by eff.$Handle the effect described by eff.  !"#$%&'()  !"#$ #" !)('&%$  !"#$%&'()None :<=DORT4:Allows you to return early from a function. Make sure you 5! to get the actual result out.5XGet the result from a computation. Either the early returned one, or the regular result.34s56  !"#$34534534s56None :<=DRT8<Runs the rest of the computation for every value in the list9ASignals that this branch of execution failed to produce a result.:Execute all the effects and collect the result in a list. Note that this forces all the results, no matter which elements of the result list you end up actually using. For lazyer behavior use the other handlers.;.Given a function, apply it to all the results.<\Given a folding function, fold over every result. If you want to terminate eary, use the = instead.=Same as <T but the folding function has the ability to terminate eary by returning Nothing.>@Executes only the effects needed to produce the first n results.?<Executes only the effects needed to produce a single result. 789:;<=>?@tuvwxyz{|}~789:;<=>? 7@89:;<=>? 789:;<=>?@None:DRTABCD  !"#$ABCDABCDABCDNone*,79:;<=DOQRTE:A class of monads that throw and catch exceptions of type e^. An overlappable instance is given so you just need to make sure your transformers have a  instance.F>Use this function to handle exceptions without discarding the J constraint. You'll want to use this if you're writing a recursive function. Using the regular handlers in that case will result with infinite types.ZSince this function doesn't discard constraints, you still need to handle the whole thing.$Here's a slightly contrived example. ? data NotFound = NotFound data Tree a = Leaf a | Node (Tree a) (Tree a) data Step = GoLeft | GoRight findIndex :: (Handles NotFound m, Eq a) => a -> Tree a -> m [Step] findIndex x (Leaf a) | x == a = return [] | otherwise = throwSignal NotFound findIndex x (Node l r) = ((GoLeft :)  $A findIndex x l) & handleRecursive (NotFound -> (GoRight :)  $ findIndex x r) {Note: When you finally handle the exception effect, the order in which you handle it and other effects determines whether F rolls back other effects if an exception occured or it preserves all of them up to the point of the exception. Handling exceptions last and handling them first will produce the former and latter behaviour respectively.G5The handle function will return a value of this type.HGive a value to the caller of L and keep going.IOContinue the execution after the handler. The handler will return this valueKThis class allows you to "throw" a signal. For the most part signals are the same as checked exceptions. The difference here is that the handler has the option to provide the value that will be the result of calling the L functionw. This effectively allows you to have recoverable exceptions at the call site, instead of just at the handling site.*This class can be considered an alias for   ( a b)9 so your code isn't required to provide any instances.LOThere are no restrictions on the type of values that can be thrown or returned.MSThrow a signal with no possible recovery. The handler is forced to only return the I. constructor because it cannot construct a  value.$If this function is used along with handleAsException9, this module behaves like regular checked exceptions.NlHandle signals of a computation. The handler function has the option to provide a value to the caller of Lt and continue execution there, or do what regular exception handlers do and continue execution after the handler.ORThis handler can only behave like a regular exception handler. If used along with M8 this module behaves like regular checked exceptions.PSee documentation for O. This handler gives you an .QDiscard all the J and K@ constraints. If any exception was thrown the result will be .RSatisfies all the J and K constraints if they all throw Oable exceptions. The first thrown exception will be shown and returned as a  result.SP that doesn't discard J' constraints. See documentation for F.#EFGHIJKLMNOPQRSTUVWXYZ[\]^_5  !"#$EFGHIJKLMNOPQRSKLGHIMNJOPQREFSEFGHIJKLMNOPQRSTUVWXYZ[\]^_None *:<=DORTdefghijklmnopq   !"#$defghijklmnogfqpedhijklmnodefghijklmnopq         !"#$$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}{|~{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{|{||{||z-simple-effects-0.6.0.1-GfSclN4YQLnCxkFqCEYiUXControl.Effects.SignalControl.Effects1Control.EffectsControl.Effects.EarlyControl.Effects.ListControl.Effects.ReaderControl.Effects.Statetransformers-0.5.2.0Control.Monad.Trans.Maybe runMaybeTMaybeTEffectHandler1unpackEffectHandler1 EffHandling1 getHandling1 MonadEffect1effect1 EffectCon1 EffectRes1 EffectMsg1 handleEffect1$fMonadEffect1effEffectHandler1$fMonadEffect1efft"$fMonadBaseControlIOEffectHandler1$fMonadReadersEffectHandler1$fMonadTransEffectHandler1$fFunctorEffectHandler1$fApplicativeEffectHandler1$fMonadEffectHandler1$fMonadStateEffectHandler1$fMonadIOEffectHandler1$fMonadCatchEffectHandler1$fMonadThrowEffectHandler1$fMonadRandomEffectHandler1$fMonadBaseEffectHandler1 EffectHandlerunpackEffectHandler MonadEffecteffect EffectRes EffectMsg handleEffect$fMonadEffecteffEffectHandler$fMonadEffectefft!$fMonadBaseControlIOEffectHandler$fMonadReadersEffectHandler$fMonadTransEffectHandler$fFunctorEffectHandler$fApplicativeEffectHandler$fMonadEffectHandler$fMonadStateEffectHandler$fMonadIOEffectHandler$fMonadCatchEffectHandler$fMonadThrowEffectHandler$fMonadRandomEffectHandler$fMonadBaseEffectHandlerEarly earlyReturn handleEarly$fMonadEffectEarlyExceptTNonDeterministicchoosedeadEndevaluateToListtraverseAllResultsfoldAllResultsfoldWithEarlyTerminationevaluateNResultsevaluateOneResult#$fMonadEffect1NonDeterministicListTReadEnvreadEnv handleReadEnvhandleSubreaderHandleshandleRecursive ResumeOrBreakResumeBreakThrowsMonadEffectSignalsignal throwSignal handleSignalhandleExceptionhandleToEitherdiscardAllExceptionsshowAllExceptionshandleToEitherRecursive $fHandleset$fHandleseExceptT$fMonadEffectSignalabt$fMonadEffectSignalabIO$fMonadEffectSignalebExceptT$fMonadEffectSignalebExceptT0$fMonadEffectSignalabMaybeT"$fMonadEffectSignalacEffectHandler$fMonadEffectSignalIO$fMonadEffectSignalMaybeT$fMonadEffectSignalExceptT$fMonadEffectSignalExceptT0$fEqSomeSignal$fOrdSomeSignal$fReadSomeSignal$fShowSomeSignalEffectHandlerStateMonadEffectStateSetStateGetStategetStatesetState modifyStatehandleGetStatehandleSetState handleState handleStateIO handleStateT$fMonadEffectSetStateStateT$fMonadEffectGetStateStateTControl.Monad.Trans.ReaderReaderTcollapseEitherlist-t-1-Drk2jj3rrUEI617WaOjkxJListTslicedroptraverserepeatunfoldMunfoldfromMVar fromFoldableconssplitAt traverse_ toReverseListtoList foldMaybefoldnulltailheaduncons,monad-control-1.0.1.0-1xoC3YihUKYHLar1SsWtYeControl.Monad.Trans.ControlMonadTransControlSignalbase Data.VoidVoid Data.EitherEitherGHC.BaseNothingGHC.ShowShowLeftUnhandledError SomeSignal getSomeSignal resumeOrBreakmapLeftControl.Monad.Trans.Except runExceptT runExceptExceptExceptT mapExcept withExcept mapExceptT withExceptTliftPass liftListen liftCallCCcatchEthrowEexcept