úÎM|IW=      !"#$%&'()*+,-./0123456789:;<NoneHM7Type of functions capable of combining two coroutines' " values into a third one. Module "Monad.Coroutine.SuspensionFunctors contains several  examples.HType of functions that can weave two coroutines into a single coroutine.Type of functions that can bind two monadic values together, used to combine two coroutines' step results. The two functions provided here are  and .The t functor instance doesn't contain anything and cannot be constructed. Used for building non-suspendable coroutines.+Suspending, resumable monadic computations.Run the next step of a j computation. The result of the step execution will be either a suspension or the final coroutine result.Suspend the current . Change the base monad of a . #Change the suspension functor of a . *Modify the first upcoming suspension of a . Convert a non-suspending  to the base monad. $Runs a single step of a suspendable W, using a function that extracts the coroutine resumption from its suspension functor.Runs a suspendable  to its completion.'Runs a suspendable coroutine much like K, but allows the resumption function to thread an arbitrary state as well.A E that runs the two steps sequentially before combining their results.A % that runs the two steps in parallel. Lifting a  onto a  monad transformer.(Weaves two coroutines into one, given a . to run the next step of each coroutine and a & to combine the results of the steps.ŠWeaves a list of coroutines with the same suspension functor type into a single coroutine. The coroutines suspend and resume in lockstep. =>?@ABC    =>?@ABCNone 2346=HKM %Class of functors that can be lifted.iConvert the ancestor functor into its descendant. The descendant functor typically contains the ancestor.3Class of functors that can contain another functor.=Type of functions capable of combining two child coroutines' 8 values into a parent coroutine. Use with the function .bCombines two alternative functors into one, applying one or the other. Used for nested coroutines.Like D! for the EitherFunctor data type.*Change the suspension functor of a nested .  Run a nested . that can suspend both itself and the current .!3Converts a coroutine into a child nested coroutine."8Converts a coroutine into a descendant nested coroutine. !"EFGH !" !"  !"EFGHNone:HM# Combines a 0 of a $ with an . for a %.&Final result chunk'2A part of the result with the reader of more input)9Reader of more input, plus the result if there isn't any.*>A part of the result with the reader of more input and the EOF+;Final result chunk with the unconsumed portion of the input,The , functor instance combines a 0 of a request with an . for a response..The .± functor instance is equivalent to (->) but more descriptive. A coroutine with this suspension functor demands a value whenever it suspends, before it can resume its execution.0The 0Ž functor instance is equivalent to (,) but more descriptive. A coroutine with this suspension functor provides a value with every suspension.2/Suspend the current coroutine yielding a value.38Suspend the current coroutine until a value is provided.45Suspend yielding a request and awaiting the response.5Suspend yielding a # and awaiting the %.6TConverts a coroutine yielding collections of values into one yielding single values.7TConverts a coroutine awaiting single values into one awaiting collections of values.8Weaves the suspensions of a 0 and an .! coroutine together into a plain I coroutine. If the 0! coroutine terminates first, the .1 one is resumed using the argument default value.9Like 8 , except the . coroutine expects J-wrapped values. After the 0 coroutine terminates, the . coroutine receives only K.:Weaves two complementary ,( coroutine suspensions into a coroutine 2‰ing both requests. If one coroutine terminates before the other, the remaining coroutine is fed the appropriate default value argument.;.The consumer coroutine requests input through # and gets %n in response. The producer coroutine receives the unconsumed portion of its last requested chunk as response.<Like ; but for nested coroutines.#L$%&'()*+,-./0123456789:;<MNOP#$%&'()*+,-./0123456789:;<01./,-#%'&$(+*)23456789:;<#L$%'&(+*),-./0123456789:;<MNOPQ       !"#$%&'()*+,-.//001123456789:;<=>?@ABCDEFGHIJKLMDNODNP&QRSTUmonad-coroutine-0.8.0.1Control.Monad.CoroutineControl.Monad.Coroutine.Nested*Control.Monad.Coroutine.SuspensionFunctors WeaveStepperWeaver PairBinderNaughtCoroutineStepResult CoroutineresumesuspendmapMonad mapSuspensionmapFirstSuspension runCoroutinebounce pogoStickfoldRunsequentialBinderparallelBinder liftBinderweavemergeAncestorFunctor liftFunctor ChildFunctorParentwrapNestWeaveStepper EitherFunctorRightFLeftF eitherFunctormapNestedSuspensionpogoStickNested liftParent liftAncestor ReadRequestReader ReadingResult FinalResult ResultPartReadingDeferredAdvanceFinalRequestAwaitYieldyieldawaitrequest requestRead concatYields concatAwaitsweaveAwaitYieldweaveAwaitMaybeYield weaveRequestsweaveReadWriteRequestsweaveNestedReadWriteRequests$fFunctorNaught$fMonadIOCoroutine$fMonadTransCoroutine$fMonadParallelCoroutine$fMonadCoroutine$fApplicativeCoroutine$fFunctorCoroutinebase Data.Eithereither$fAncestorFunctorad$fAncestorFunctoraa$fChildFunctorEitherFunctor$fFunctorEitherFunctortransformers-0.4.2.0Data.Functor.IdentityIdentity Data.MaybeMaybeNothing$fFunctorReadRequest$fFunctorRequest$fFunctorAwait$fFunctorYield