]}X{F      !"#$%&'()*+,-./012345678 9 : ; < = > ? @ A B C D E 9Fast type-aligned queue optimized to effectful functions.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXSafe!"'Left view deconstruction data structureMNon-empty tree. Deconstruction operations make it more and more left-leaning+Build a leaf from a single operation [O(1)]3Append an operation to the right of the tree [O(1)]An alias for '(|>)'%Append two trees of operations [O(1)]An alias for '(><)' 'Left view deconstruction [average O(1)] FG   FG >Open unions (type-indexed co-products) for extensible effects.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone!"&'(3457>KLNHIJKLMNOPQ RSTUV  HIJKLMNOPQ  RSTUVMechanisms to make effects workAlej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone !"(4>IKLN 3A data type for representing nondeterminstic choiceThe Eff representation.Status of a coroutine (client): * Val: Done with the value of type a * E : Sending a request of type Union r with the continuation Arrs r b aAn effectful function from a to b that is a composition of several effectful functions. The paremeter r describes the overall effect. The composition members are accumulated in a type-aligned queue.QEffectful arrow type: a function from a to b that also does effects denoted by rFFunction application in the context of an array of effects, Arrs r b w`Composition of effectful arrows Allows for the caller to change the effect environment, as well#send a request and wait for a replyRuns a set of Effects. Requires that all effects are consumed. Typically composed as follows: > run . runEff1 eff1Arg . runEff2 eff2Arg1 eff2Arg2 (program)Runs a set of Effects. Requires that all effects are consumed, except for a single effect known to be a monad. The value returned is a computation in that monad. This is useful for plugging in traditional transformer stacks..Given a request, either handle it or relay it.Parameterized  Allows sending along some state to be handled for the target effect, or relayed to a handler that can handle the target effect. GIntercept the request and possibly reply to it, but leave it unhandled!%A handler for nondeterminstic effects !"WXYZ[  !" !"  !"WXYZ[#Composable coroutine effects layer.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.combrokenPOSIXNone(-4KL#dStatus of a thread: done or reporting the value of the type a and resuming with the value of type b&A type representing a yielding of control a: The current type b: The input to the continuation function v: The output of the continuation'6Lifts a value and a function into the Coroutine effect(%Launch a thread and report its status#$%&\'(#$%&'(&'#$%(#$%&\'( An Exception effect and handler.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone(4KL)'Exceptions of the type e; no resumption+.Throws an error carrying information of type e,Handler for exception effects If there are no exceptions thrown, returns Right If exceptions are thrown and not handled, returns Left, interrupting the execution of any other effect handlers.-FA catcher for Exceptions. Handlers are allowed to rethrow exceptions.)*+,-)*+,-)*+,-)*+,- An implementation of logical CutAlej Cabrera 2015BSD-3cpp.cabrera@gmail.combrokenPOSIXNone(4KL/0Implementation of logical Cut using Exc effects..]/././.]/*Generation of fresh integers as an effect.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.combrokenPOSIXNone!"(4KL0Fresh effect model1Request a fresh effect2;Handler for Fresh effects, with an Int for a starting value0^120120120^120Reader effects, for encapsulating an environmentAlej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone !"(4KLN5#Request a value for the environment6Handler for reader effects7Locally rebind the value in the dynamic environment This function is like a relay; it is both an admin for Reader requests, and a requestor of them34567345673456734567 /State effects, for state-carrying computations.Alej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone !"(4KLN8;Strict State effects: one can either Get values or Put them9Retrieve state: Store state; Modify state<Handler for State effects=An encapsulated State handler, for transactional semantics The global state is updated only if the transactionState finished successfully8_`9:;<=89:;<=89:;<=8_`9:;<= Composable Writer effects -Alej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone!"(4KL>6Writer effects - send outputs to an effect environment@)Send a change to the attached environmentA!Simple handler for Writer effects>?@A>?@A>?@A>?@A 'State effects in terms of Reader/WriterAlej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone!"(4KLB*State handler, using Reader/Writer effectsB35>@BB3>@5B Composable Trace effectsAlej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone!"(4KLC2A Trace effect; takes a String and performs outputDPrinting a string in a traceEAn IO handler for Trace effectsCaDECDECDECaDE %Freer - an extensible effects libraryAlej Cabrera 2015BSD-3cpp.cabrera@gmail.com experimentalPOSIXNone !" !"b !"#$%&'()*+,-./01234567789:;<=>?@@ABC D E F G H I J J K L M N O PQRSTUVWXXYZ[\]^_`abcde4;= f g Nhfreer_HFJIO12KfRe9K4xXpizFtJ Data.FTCQueueData.Open.UnionControl.Monad.Freer.InternalControl.Monad.Freer.CoroutineControl.Monad.Freer.ExceptionControl.Monad.Freer.CutControl.Monad.Freer.FreshControl.Monad.Freer.ReaderControl.Monad.Freer.StateControl.Monad.Freer.WriterControl.Monad.Freer.StateRWControl.Monad.Freer.TraceControl.Monad.FreerViewLTOne:|FTCQueue tsingleton|>snoc><appendtviewlMembersMemberinjprjUniondecompweaken NonDetEffMZeroMPlusEffValEArrsArrqAppqCompsendrunrunM handleRelay handleRelayS interpose makeChoiceAmsplitStatusDoneContinueYieldyieldrunCExc throwErrorrunError catchErrorCutFalsecutFalseFreshfresh runFresh'Readerask runReaderlocalStategetputmodifyrunStatetransactionStateWritertell runWriter runStateRTracetracerunTraceLeafNodeEQUFindElemMember'inj'prj'PNatSZUNowUNext $fMember'trS $fMember'trZ $fMembertr$fMonadPlusEff$fAlternativeEff $fMonadEff$fApplicativeEff $fFunctorEffGetPut