!       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~               Safe%.=>?@AHSUVXfk !"#$%&#$!" %& None5b  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"# $%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVNone 8=?EHVXL <simple-effectsKA class of transformers that can run their effects in the underlying monad. The following laws need to hold: 11Running a computation that only uses the effects of the transformer (represented here by stating that the computation is polymorphic in the underlying monad) using the current state, and then restoring the result is the same as doing nothing. kt :: forall m. Monad m => t m a t == (currentTransState >>= lift . runTransformer t >>= restoreTransState) 21Running a computation that only uses the effects of the underlying monada (represented here by stating that the computation is polymorphic in the transformer) using anyH state, and then restoring the result is the same as doing nothing. et :: forall t. MonadTrans t => t m a -> t m a t == (lift (runTransformer t s) >>= restoreTransState) =simple-effectsDThe type of value that needs to be provided to run this transformer.>simple-effects=The type of the result you get when you run this transformer.?simple-effectsGet the current state value.@simple-effectsZGiven a result, interpret it as a computation. This restores the state of the transformer.Asimple-effectspGiven the required state value and a computation, run the effects of the transformer in the underlying monad.Dsimple-effects+A class of monads that have a run function.The I function gives the result inside of IO. The only reason for this is to allow an instance for IO to be written. Other instances do not perform any aditional IO.Instances for , W and (D m, < t, $ (t m)) => D (t m)6 are given so users should only provide additional < instances instead of D ones.Esimple-effects>The type of value that needs to be provided to run this monad.Fsimple-effects7The type of the result you get when you run this monad.Gsimple-effectsGet the current state value.Hsimple-effects5If given a result, reconstruct a monadic compitation.Isimple-effectsGiven the required state value and a computation, run the computation up to the IO effect. This should effectively run each layer in the transformer stack. The E4 should hold all the needed information to do so.TA more formal description of what it means to run a transformer is given for the A function.<A@?>=BCDIHGFEDIHGFEBC<A@?>=None-./18=>?@ACHMSUVXM [\]^_`abcdefg [\]^_`abcdefgNone&'.7=>?@AHSVXk`simple-effects-Get current value of the state with the type sY. You can use type applications to tell the type checker which type of state you want.  getState @Intsimple-effects&Set a new value for the state of type s^ You can use type applications to tell the type checker which type of state you're setting. setState @Int 5simple-effectsTransform the state of type sz using the given function. You can use type applications to tell the type checker which type of state you're modifying. modifyState @Int (+ 1)simple-effects`Implement the state effect via the StateT transformer. If you have a function with a type like &f :: MonadEffect (State Int) m => m () you can use  to satisfy the ` constraint. 3implementStateViaStateT @Int 0 f :: Monad m => m ()simple-effects&Handle the state requirement using an X+. If you have a function with a type like &f :: MonadEffect (State Int) m => m () you can use  to replace the ` constraint with A+. This is convenient if you already have a A+ constraint and you don't want to use the $ transformer for some reason. 4implementStateViaIORef @Int 0 f :: MonadIO m => m ()[\]^_`abcdefg{|}~ {|}~None&',./7=>?@AHSUVX simple-effects5The handle function will return a value of this type.simple-effectsGive a value to the caller of  and keep going.simple-effectsLContinue the execution after the handler. The handler will return this valuesimple-effectsSThrow a signal with no possible recovery. The handler is forced to only return the . constructor because it cannot construct a e value.$If this function is used along with handleAsException9, this module behaves like regular checked exceptions.simple-effectslHandle signals of a computation. The handler function has the option to provide a value to the caller of t and continue execution there, or do what regular exception handlers do and continue execution after the handler.simple-effectsRThis handler can only behave like a regular exception handler. If used along with 8 this module behaves like regular checked exceptions.simple-effectsSee documentation for . This handler gives you an Y.simple-effectsDiscard all the  and < effects. If any exception was thrown the result will be Z.simple-effectsSatisfies all the  and  constraints if they all throw [Oable exceptions. The first thrown exception will be shown and returned as a \ result.simple-effects>Use this function to handle exceptions without discarding the  effect. 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.tSince this function doesn't discard constraints, you still need to handle the exception on the whole computation.$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 :)  $I findIndex x l) & handleWithoutDiscarding (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  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.simple-effects that doesn't discard Throws' constraints. See documentation for .3<=>?@AB]^_PQR[\]^_`abcdefgNone,./=>?@AHSUVX_simple-effectsSClass of transformers that don't introduce additional exit points to a computation. Examples: $ s,  e, *Counter-examples:  e, ' e, , simple-effects acq cln use" acquires the resource by running acq. If this computation aborts, the exception won't be handled and no cleanup will be performed since the resource wasn't acquired. Then use, is called with the resource. Regardless if use3 threw an exception/aborted or finished normally, cln> is called with the resource and possibly with the result of usey (if it didn't abort). If there was an exception, it's rethrown: bracket is not meant to be used for exception handling.5An exception in this context is anything from actual IO' exceptions for pure ones "thrown" by  or  . In case of WI, the resource acquisition and cleanup are masked from async exceptions.xSince this function can be used on almost any transformer stack, care needs to be taken that all the transformers that can throw exceptions get handled. This is why the effect isn't implicitly lifted through unknown transformers, only though ones that are instances of . If your transformer doesn't introduce new exit points, give it an instance of that class. There are no methods to implement.simple-effectsA simpler version of 0 that doesn't use the results of the parameters.simple-effectsSource: _http://hackage.haskell.org/package/exceptions-0.10.0/docs/src/Control-Monad-Catch.html#line-674simple-effects3Identity can't throw or acquire in a meaningful waysimple-effects,Use bracketing and masking for IO exceptionssimple-effects2Warn about unknown transformers with a type error.None &'.7>HVXsimple-effectsRead a value of type eL. Use with the TypeApplications extension to help with type inference  readEnv @Intsimple-effects`Use the given action in the underlying monad to provide environment values. You can think of implementReadEnv x m as replacing all  calls in m with x.[\]^_`abcdefg None-.=>?@AHVXksimple-effectsUA useful newtype for any effect. Just provide a unique tag, like a type level string.simple-effects+If we have a computation using some effect original?, we can convert it into a computation that uses the effect newtyped$ instead. Provided, of course, that newtyped! is really a newtype over the original effect. f :: ` ({U Int) m => m () f = getState >>= i -> setState (i + 1) newtype MyState m = MyState ({ Int m) -- inferred: g :: ` MyState m => m () g =  @MyState @({ Int) f simple-effectsRename an effect without explicitly declaring a new newtype. Just provide a tag. This is useful if you have two functions using the same effect that you want to combine but you don't want their effects to interact. For example, maybe they both work with IntA states but you don't want them to modify each other's number.simple-effectsOnce you tag your effect, it's slightly inconvenient that you have to wrap your implementation when you want to handle it. This function doees the wrapping for you. f :: ` ({ Int) m => m () f =  >>= \s ->  (s * 2) g :: ` ({ Int) m => m () g =  >>= \s -> 4 (s * 3) combine :: Monad m => m Int combine =  5 $  @"s2" (|  ) $  0 $  @"s1" (|  ) $ do r1 <-  @"s1" @({ Int) (f >>  ) r2 <-  @"s2" @({ Int) (g >> () return (r1 + r2) -- results in 15 None &'.>@AHSVX! simple-effectsGet a value from the list. The choice of which value to take is non-deterministic in a sense that the rest of the computation will be ran once for each of them.simple-effectsASignals that this branch of execution failed to produce a result.simple-effectsExecute 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.simple-effects.Given a function, apply it to all the results.simple-effects\Given a folding function, fold over every result. If you want to terminate eary, use the  instead.simple-effectsSame as U but the folding function has the ability to terminate early by returning Nothing.simple-effects@Executes only the effects needed to produce the first n results.simple-effects<Executes only the effects needed to produce a single result.simple-effects2Execute all the effects but discard their results.! !  None&'.=>?@AHSVXsimple-effects:Allows you to return early from a function. Make sure you ! to get the actual result out.simple-effectsXGet the result from a computation. Either the early returned one, or the regular result.simple-effects9Only do the given action and exit early with it's result.simple-effects$Early return the given value if the ` is Z4. Otherwise, contnue with the value inside of it.simple-effectsQOnly do the given action and early return with it's result if the given value is Z5. Otherwise continue with the value inside of the `.simple-effectsIf the value is a \V, get the value, process it and early return the result. Otherwise just return the a value.simple-effectsIf the value is a \[, get the value, process it and only do the resulting action. Otherwise just return the a value.[\]^_`abcdefg None4=>?@AHMSVX simple-effects=The type that represents the forked computation in the monad m- that eventually computes a value of type ah. Depending on the monad, the computation may produce zero, one or even multiple values of that type.simple-effectseFork a new thread to run the given computation. The monadic context is forked into the new thread.For example, if we use state, the current state value will be visible in the forked computation. Depending on how we ultimately implement the state, modifying it may or may not be visible from the main thread. If we use implementStateViaStateTx then setting the state in the forked thread will just modify the thread-local value. On the other hand, if we use implementStateViaIORefr then both the main thread and the new thread will use the same reference meaning they can interact through it.simple-effects^Wait for the thread to finish and return it's result. The monadic context will also be merged.Example:  setState @Int 1 th <-  $ do setState @Int 2  th print =<< getState @Int -- Outputs 2 simple-effectsZCheck if the asynchronous computation has finished (either normally, or with an exception)simple-effects Abort the asynchronous exceptionsimple-effectsThis will discard the `  m constraint by forcing m to be W\. The functions doesn't actually do anything, the real implementation is given by the `  IO instance which uses the async package.simple-effectsLike 6 but the supplied function is run in parallel asynchronously on all the elements. The results will be in the same order as the inputs.simple-effectsSame as  but discards the result.simple-effectsThe W implementation uses the async library. None.7=>?@AHVX_ksimple-effectsOutput a value of type a. The semantics are determined by the implementation, but usually this will block until the next value is requested by the consumer.simple-effects Implement e by using non-determinism to output each of the values. This means you can use the functions from Control.Effects.List6 to choose how to consume them. For example, using ? will give you a list of all yielded values. It also means the l calls won't block since all the values are requested. Other consumer functions give you more control.simple-effects Implement  through an bY. The result is a monadic action (the inner one) that returns one yielded value or ZJ if the computation is finished. All subsequent calls will also return Zq. Each execution of this action continues execution in the provided computation, which is otherwise suspended.SIf the provided computation forks new threads and doesn't wait for them to finish, Zi may be returned prematurely (in the sense that maybe there's still a live thread yielding values).,Since the yielding is done through a shared b, this implementation is suitable to be run with multiple threads. Scheduling which thread gets continued is defined by the semantics of bs. Note# will block in this implementation.simple-effects Implements  through a cR. The resulting monadic action (the inner one) reads one value from the queue. Z means the provided computation is done. If the provided computation forks new threads and doesn't wait for them to finish, Ze may be written prematurely (in the sense that maybe there's still a live thread yielding values). Note will not block in this implementation.simple-effectsA convenience function to go through all the yielded results. Use in combination with one of the implementations. Collects a list of values. simple-effectsA convenience function to go through all the yielded results. Use in combination with one of the implementations. Discards the computed values.   NoneNoneNoneNone .>@AHVk defghijklmno !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvwxyz{|}~                                        !"#!"$!"%!"&!"'!()!(*!(+,-!(./01!"2!"345/6/7/8!"9:;<=>?@ABCDCEFGFHIJKLMNOPOQRSTU!"V!"W!"X!"Y!Z[!Z\!"]!Z^!Z_!"`!Za!Zb!"c!Zd!Ze!"f!"g!"h!"i!"j!"k!"l!"m!Zn!"o!"p!"q!"r!"s!"t!"u!Zv!Zw!"x!"y!"z!"{|}|}|~|~!"!"!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!Z!"!Z!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !" !" !" !" !"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !"!!""!"#!"$!"%!"&!"'!"(!")!"*!"+!",!"-!".!"/!"0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!">!"?!"@!"A!"B!"C!"D!"E!"F!"G!"H!"I!"J!"K!"L!"M!"N!"O!"P!"Q!"R!"S!"T!"U!"V!"W!"X!"Y!"Z!"[!"\!"]!"^!"_!"`!"a!"b!"c!"d!"e!"f!"g!"h!"i!"j!"k!"l!"m!"n!"o!"p!"q!"r!"s!"t!"u!"v!"w!"x!"y!"z!"{!"|!"}!"~!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !" !" !" !" !"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !"!!""!"#!"$!"%!"&!"'!"(!")!"*!"+!",!"-!".!"/!"0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!">!"?!"@!"A!"B!"C!"D!"E!"F!"G!"H!"I!"J!"K!"L!"M!"N!"O!"P!"Q!"R!"S!"T!"U!"V!"W!"X!"Y!"Z!"[!"\!"]!"^!"_!"`!"a!"b!"c!"d!"e!"f!"g!"h!"i!"j!"k!"l!"m!"n!"o!"p!"q!"r!"s!"t!"u!"v!"w!"x!"y!"z!"{!"|!"}!"~!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !" !" !" !" !"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !"!!""!"#!"$!"%!"&!"'!"(!")!"*!"+!",!"-!".!"/!"0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!">!"?!"@!"A!"B!"C!"D!"E!"F!"G!"H!"I!"J!"K!"L!"M!"N!"O!"P!"Q!"R!"S!"T!"U!"V!"W!"X!"Y!"Z!"[!"\!"]!"^!"_!"`!"a!"b!"c!"d!"e!"f!"g!"h!"i!"j!"k!"l!"m!"n!"o!"p!"q!"r!"s!"t!"u!"v!"w!"x!"y!"z!"{!"|!"}!"~!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !" !" !" !" !"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !"!!""!"#!"$!"%!"&!"'!"(!")!"*!"+!",!"-!".!"/!"0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!">!"?!"@!"A!"B!"C!"D!"E!"F!"G!"H!"I!"J!"K!"L!"M!"N!"O!"P!"Q!"R!"S!"T!"U!"V!"W!"X!"Y!"Z!"[!"\!"]!"^!"_!"`!"a!"b!"c!"d!"e!"f!"g!"h!"i!"j!"k!"l!"m!"n!"o!"p!"q!"r!"s!"t!"u!"v!"w!"x!"y!"z!"{!"|!"}!"~!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !" !" !" !" !"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!"!" !"!!""!"#!"$!"%!"&!"'()*()+(),()-().()/()0()1()2()3()4()5()6()7()8()9():;<;=>?@ABCDEFGHIJKLMNMOMPMQOR4S4T4U4V4W4X4Y4Z4[4\4]4^4_4`abacdefghighjghkghlghmghnghoghpghqghrghsghtghughvghwghxgyzgy{gy|gy}gy~gygygygygygygygygygy///////KKI!Z      !"#!"$!"%!"&!"'!"(!")!"*!"+!",!"-!".!"/!"0!"1!"2!"3!"4!"5!"6!"7!"8!"9!":!";!"<!"=!"w>?>@>ABBCDEFGHGHGI>J>J>KLMLMLN!"O!"PLQdeRdeSdeTdeUdeVdeWdXYdXZdX[dX\dX]>^_`abcdeGGfGgGhGiGjGkGlGmGnopqorsotuvwx>y>z>{>|!Z}~.simple-effects-0.13.0.0-CkkfVtQm23r7lDFbMuonrnControl.Effects.SignalControl.Effects.ListControl.Effects.GenericControl.Monad.RunnableControl.EffectsControl.Effects.StateControl.Effects.ResourceControl.Effects.ReaderControl.Effects.NewtypeControl.Effects.EarlyControl.Effects.AsyncControl.Effects.YieldImportTutorial.T1_IntroductionTutorial.T2_DetailsTutorial.T3_CustomEffects Tutorial.Testtransformers-0.5.5.0Control.Monad.Trans.MaybeMaybeT runMaybeT#list-t-1.0.1-48JG9nf0ASQ8J1lfjnxqhxListTslicedroptraverserepeatunfoldMunfoldfromMVar fromFoldableconssplitAt traverse_ toReverseListtoList foldMaybefoldnulltailheaduncons ForceError MonadicMethodmergeMonadicMethodMonadicMethodsRepmergeMonadicMethodsRepMonadicMethodsmergeMonadicMethods SimpleMethod liftMethodSimpleMethodsRep liftSimpleRep SimpleMethods liftSimplegenericLiftThroughgenericMergeContext$fSimpleMethodsRepV1V1mt$fSimpleMethodsRepU1U1mt$fSimpleMethodsRep:+::+:mt$fSimpleMethodsRep:*::*:mt$fSimpleMethodsRepM1M1mt$fSimpleMethodsamt$fSimpleMethodmtmt$fSimpleMethod->->mt$fSimpleMethodsRepK1K1mt$fMonadicMethodsRepU1m$fMonadicMethodsRep:*:m$fMonadicMethodsRepM1m$fMonadicMethodsam$fMonadicMethodmm$fMonadicMethod->m$fMonadicMethodsRepK1m$fMonadicMethodam$fMonadicMethodsRepV1m$fMonadicMethodsRep:+:m$fSimpleMethodabmt$fSimpleMethod->->mt0 RunnableTransTransformerStateTransformerResultcurrentTransStaterestoreTransStaterunTransformer PureRunnable runPureMonadRunnable MonadicState MonadicResultcurrentMonadicStaterestoreMonadicStaterunMonad $fRunnableIO$fPureRunnableIdentity$fRunnableIdentity$fRunnableTransListT$fRunnableTransMaybeT$fRunnableTransExceptT$fRunnableTransErrorT$fRunnableTransIdentityT$fRunnableTransRWST$fRunnableTransRWST0$fRunnableTransReaderT$fRunnableTransWriterT$fRunnableTransWriterT0$fRunnableTransStateT$fRunnableTransStateT0$fPureRunnablet $fRunnablet UniqueEffect MonadEffectsRuntimeImplementedgetRuntimeImplemented MonadEffecteffectEffectCanLiftExtraConstraint liftThrough mergeContext implement$fMonadEffectet $fMonadEffecteRuntimeImplemented!$fRunnableTransRuntimeImplemented%$fMonadBaseControlbRuntimeImplemented $fMonadReaderrRuntimeImplemented$fMonadTransRuntimeImplemented$fUniqueEffectkkeffNameta$fFunctorRuntimeImplemented$fApplicativeRuntimeImplemented$fMonadRuntimeImplemented$fMonadPlusRuntimeImplemented$fAlternativeRuntimeImplemented$fMonadStateRuntimeImplemented$fMonadIORuntimeImplemented$fMonadCatchRuntimeImplemented$fMonadThrowRuntimeImplemented$fMonadRandomRuntimeImplemented$fMonadMaskRuntimeImplemented$fMonadBaseRuntimeImplementedState StateMethods _getState _setStategetStatesetState modifyStateimplementStateViaStateTimplementStateViaIORef$fMonadEffectStateStateT,$fUniqueEffect->TYPEStateRuntimeImplementeds $fUniqueEffect->TYPEStateStateTs $fEffectState$fGenericStateHandleExceptionHandleExceptionMethods_handleWithoutDiscarding ResumeOrBreakResumeBreakThrow SomeSignalSignal SignalMethods_signalsignal throwSignal handleSignalhandleExceptionhandleToEitherdiscardAllExceptionsshowAllExceptionshandleWithoutDiscardinghandleToEitherRecursive%$fMonadEffectSignalRuntimeImplemented$fMonadEffectSignalMaybeT$fMonadEffectSignalExceptT$fEffectSignal$fMonadEffectSignalExceptT0$fMonadEffectSignalIO#$fMonadEffectHandleExceptionExceptT$fEffectHandleException$fGenericSignal$fEqSomeSignal$fOrdSomeSignal$fReadSomeSignal$fShowSomeSignalUnexceptionalErrorBracketBracketMethods_bracket Unexceptionalbracketbracket_!$fUnexceptionalRuntimeImplemented$fUnexceptionalReaderT$fUnexceptionalIdentityT$fUnexceptionalRWST$fUnexceptionalRWST0$fUnexceptionalWriterT$fUnexceptionalWriterT0$fUnexceptionalStateT$fUnexceptionalStateT0$fMonadEffectBracketMaybeT$fMonadEffectBracketExceptT$fMonadEffectBracketIdentity$fMonadEffectBracketIO$fEffectBracket$fUnexceptionaltReadEnvReadEnvMethods_readEnvreadEnvimplementReadEnv$fEffectReadEnv$fGenericReadEnvEffTageffectAsNewtype tagEffectimplementTagged%$fMonadEffectEffTagRuntimeImplemented$fEffectEffTagNonDeterminismNonDeterminismMethods_choosechoosedeadEndevaluateToListtraverseAllResultsfoldAllResultsfoldWithEarlyTerminationevaluateNResultsevaluateOneResult evaluateAll $fMonadEffectNonDeterminismListT$fEffectNonDeterminismEarly EarlyMethods _earlyReturn earlyReturn handleEarlyonlyDoifNothingEarlyReturn ifNothingDoifLeftEarlyReturnifLeftDo$fMonadEffectEarlyExceptT $fEffectEarly AsyncThreadThreadIdentifier mapThreadAsync AsyncMethods_async _waitAsync _isAsyncDone _cancelAsyncasync waitAsync isAsyncDone cancelAsyncimplementAsyncViaIO parallelMapM parallelMapM_/$fUniqueEffect->->AsyncRuntimeImplementedthread $fEffectAsync$fMonadEffectAsyncIO$$fUniqueEffect->->AsyncIOAsyncThread$fThreadIdentifierAsyncThread$fFunctorAsyncThread$fEqAsyncThread$fOrdAsyncThreadYield YieldMethods_yieldyieldimplementYieldViaNonDeterminismimplementYieldViaMVarimplementYieldViaChantraverseYieldedtraverseYielded_,$fUniqueEffect->TYPEYieldRuntimeImplementeda $fEffectYield$fGenericYieldbaseGHC.Baseaugmentbuildghc-primGHC.Primseq realWorld#void# unsafeCoerce# nullAddr# GHC.MagiclazyoneShotrunRW# breakpointbreakpointCondinlineGHC.Exts groupWith$ magicDictcoerce Control.MonadguardIsListItem fromListNproxy#joinMonadreturn>>=>>failFunctorfmap<$Control.Monad.FixMonadFixmfix Data.StringIsString fromString Applicativepure<*>*>liftA2<*Data.TraversablemapMsequence Semigroup<>sconcatstimesAddr#Array# ByteArray#Char# GHC.TypesCharC#Double#DoubleD#Float#FloatF#Int#IntI#Int32#Int64#Weak# MutableArray#MutableByteArray#MVar# RealWorld StablePtr#~~ ArrayArray#MutableArrayArray#State# StableName#MutVar#Void#Word#WordW#Word32#Word64# ThreadId#BCO#GHC.PtrPtrFunPtrTVar#Compact# Constraint RuntimeRepVecRepTupleRepSumRep LiftedRep UnliftedRepIntRepWordRepInt64Rep Word64RepAddrRepFloatRep DoubleRepVecCountVec2Vec4Vec8Vec16Vec32Vec64VecElem Int8ElemRep Int16ElemRep Int32ElemRep Int64ElemRep Word8ElemRep Word16ElemRep Word32ElemRep Word64ElemRep FloatElemRep DoubleElemRep CoercibleProxy#Any SmallArray#SmallMutableArray#Int8X16#Int16X8#Int32X4#Int64X2#Int8X32# Int16X16#Int32X8#Int64X4#Int8X64# Int16X32# Int32X16#Int64X8# Word8X16# Word16X8# Word32X4# Word64X2# Word8X32# Word16X16# Word32X8# Word64X4# Word8X64# Word16X32# Word32X16# Word64X8#FloatX4# DoubleX2#FloatX8# DoubleX4# FloatX16# DoubleX8#gtChar#geChar#eqChar#neChar#ltChar#leChar#ord#+#-#*#mulIntMayOflo#quotInt#remInt# quotRemInt#andI#orI#xorI#notI# negateInt#addIntC#subIntC#>#>=#==#/=#<#<=#chr# int2Word# int2Float# int2Double# word2Float# word2Double#uncheckedIShiftL#uncheckedIShiftRA#uncheckedIShiftRL# plusWord# addWordC# subWordC# plusWord2# minusWord# timesWord# timesWord2# quotWord#remWord# quotRemWord# quotRemWord2#and#or#xor#not#uncheckedShiftL#uncheckedShiftRL# word2Int#gtWord#geWord#eqWord#neWord#ltWord#leWord#popCnt8# popCnt16# popCnt32# popCnt64#popCnt#pdep8#pdep16#pdep32#pdep64#pdep#pext8#pext16#pext32#pext64#pext#clz8#clz16#clz32#clz64#clz#ctz8#ctz16#ctz32#ctz64#ctz# byteSwap16# byteSwap32# byteSwap64# byteSwap# narrow8Int# narrow16Int# narrow32Int# narrow8Word# narrow16Word# narrow32Word#>##>=##==##/=##<##<=##+##-##*##/## negateDouble# fabsDouble# double2Int# double2Float# expDouble# logDouble# sqrtDouble# sinDouble# cosDouble# tanDouble# asinDouble# acosDouble# atanDouble# sinhDouble# coshDouble# tanhDouble#**##decodeDouble_2Int#decodeDouble_Int64#gtFloat#geFloat#eqFloat#neFloat#ltFloat#leFloat# plusFloat# minusFloat# timesFloat# divideFloat# negateFloat# fabsFloat# float2Int# expFloat# logFloat# sqrtFloat# sinFloat# cosFloat# tanFloat# asinFloat# acosFloat# atanFloat# sinhFloat# coshFloat# tanhFloat# powerFloat# float2Double#decodeFloat_Int# newArray#sameMutableArray# readArray# writeArray# sizeofArray#sizeofMutableArray# indexArray#unsafeFreezeArray#unsafeThawArray# copyArray#copyMutableArray# cloneArray#cloneMutableArray# freezeArray# thawArray# casArray#newSmallArray#sameSmallMutableArray#readSmallArray#writeSmallArray#sizeofSmallArray#sizeofSmallMutableArray#indexSmallArray#unsafeFreezeSmallArray#unsafeThawSmallArray#copySmallArray#copySmallMutableArray#cloneSmallArray#cloneSmallMutableArray#freezeSmallArray#thawSmallArray#casSmallArray# newByteArray#newPinnedByteArray#newAlignedPinnedByteArray#isMutableByteArrayPinned#isByteArrayPinned#byteArrayContents#sameMutableByteArray#shrinkMutableByteArray#resizeMutableByteArray#unsafeFreezeByteArray#sizeofByteArray#sizeofMutableByteArray#getSizeofMutableByteArray#indexCharArray#indexWideCharArray#indexIntArray#indexWordArray#indexAddrArray#indexFloatArray#indexDoubleArray#indexStablePtrArray#indexInt8Array#indexInt16Array#indexInt32Array#indexInt64Array#indexWord8Array#indexWord16Array#indexWord32Array#indexWord64Array#indexWord8ArrayAsChar#indexWord8ArrayAsWideChar#indexWord8ArrayAsAddr#indexWord8ArrayAsFloat#indexWord8ArrayAsDouble#indexWord8ArrayAsStablePtr#indexWord8ArrayAsInt16#indexWord8ArrayAsInt32#indexWord8ArrayAsInt64#indexWord8ArrayAsInt#indexWord8ArrayAsWord16#indexWord8ArrayAsWord32#indexWord8ArrayAsWord64#indexWord8ArrayAsWord#readCharArray#readWideCharArray# readIntArray#readWordArray#readAddrArray#readFloatArray#readDoubleArray#readStablePtrArray#readInt8Array#readInt16Array#readInt32Array#readInt64Array#readWord8Array#readWord16Array#readWord32Array#readWord64Array#readWord8ArrayAsChar#readWord8ArrayAsWideChar#readWord8ArrayAsAddr#readWord8ArrayAsFloat#readWord8ArrayAsDouble#readWord8ArrayAsStablePtr#readWord8ArrayAsInt16#readWord8ArrayAsInt32#readWord8ArrayAsInt64#readWord8ArrayAsInt#readWord8ArrayAsWord16#readWord8ArrayAsWord32#readWord8ArrayAsWord64#readWord8ArrayAsWord#writeCharArray#writeWideCharArray#writeIntArray#writeWordArray#writeAddrArray#writeFloatArray#writeDoubleArray#writeStablePtrArray#writeInt8Array#writeInt16Array#writeInt32Array#writeInt64Array#writeWord8Array#writeWord16Array#writeWord32Array#writeWord64Array#writeWord8ArrayAsChar#writeWord8ArrayAsWideChar#writeWord8ArrayAsAddr#writeWord8ArrayAsFloat#writeWord8ArrayAsDouble#writeWord8ArrayAsStablePtr#writeWord8ArrayAsInt16#writeWord8ArrayAsInt32#writeWord8ArrayAsInt64#writeWord8ArrayAsInt#writeWord8ArrayAsWord16#writeWord8ArrayAsWord32#writeWord8ArrayAsWord64#writeWord8ArrayAsWord#compareByteArrays#copyByteArray#copyMutableByteArray#copyByteArrayToAddr#copyMutableByteArrayToAddr#copyAddrToByteArray# setByteArray#atomicReadIntArray#atomicWriteIntArray# casIntArray#fetchAddIntArray#fetchSubIntArray#fetchAndIntArray#fetchNandIntArray#fetchOrIntArray#fetchXorIntArray#newArrayArray#sameMutableArrayArray#unsafeFreezeArrayArray#sizeofArrayArray#sizeofMutableArrayArray#indexByteArrayArray#indexArrayArrayArray#readByteArrayArray#readMutableByteArrayArray#readArrayArrayArray#readMutableArrayArrayArray#writeByteArrayArray#writeMutableByteArrayArray#writeArrayArrayArray#writeMutableArrayArrayArray#copyArrayArray#copyMutableArrayArray# plusAddr# minusAddr#remAddr# addr2Int# int2Addr#gtAddr#geAddr#eqAddr#neAddr#ltAddr#leAddr#indexCharOffAddr#indexWideCharOffAddr#indexIntOffAddr#indexWordOffAddr#indexAddrOffAddr#indexFloatOffAddr#indexDoubleOffAddr#indexStablePtrOffAddr#indexInt8OffAddr#indexInt16OffAddr#indexInt32OffAddr#indexInt64OffAddr#indexWord8OffAddr#indexWord16OffAddr#indexWord32OffAddr#indexWord64OffAddr#readCharOffAddr#readWideCharOffAddr#readIntOffAddr#readWordOffAddr#readAddrOffAddr#readFloatOffAddr#readDoubleOffAddr#readStablePtrOffAddr#readInt8OffAddr#readInt16OffAddr#readInt32OffAddr#readInt64OffAddr#readWord8OffAddr#readWord16OffAddr#readWord32OffAddr#readWord64OffAddr#writeCharOffAddr#writeWideCharOffAddr#writeIntOffAddr#writeWordOffAddr#writeAddrOffAddr#writeFloatOffAddr#writeDoubleOffAddr#writeStablePtrOffAddr#writeInt8OffAddr#writeInt16OffAddr#writeInt32OffAddr#writeInt64OffAddr#writeWord8OffAddr#writeWord16OffAddr#writeWord32OffAddr#writeWord64OffAddr# newMutVar# readMutVar# writeMutVar# sameMutVar#atomicModifyMutVar# casMutVar#catch#raise#raiseIO#maskAsyncExceptions#maskUninterruptible#unmaskAsyncExceptions#getMaskingState# atomically#retry# catchRetry# catchSTM#newTVar# readTVar# readTVarIO# writeTVar# sameTVar#newMVar# takeMVar# tryTakeMVar#putMVar# tryPutMVar# readMVar# tryReadMVar# sameMVar# isEmptyMVar#delay# waitRead# waitWrite#fork#forkOn# killThread#yield# myThreadId# labelThread#isCurrentThreadBound# noDuplicate# threadStatus#mkWeak#mkWeakNoFinalizer#addCFinalizerToWeak# deRefWeak# finalizeWeak#touch#makeStablePtr#deRefStablePtr# eqStablePtr#makeStableName# eqStableName#stableNameToInt# compactNew#compactResize#compactContains#compactContainsAny#compactGetFirstBlock#compactGetNextBlock#compactAllocateBlock#compactFixupPointers# compactAdd#compactAddWithSharing# compactSize#reallyUnsafePtrEquality#par#spark#seq# getSpark# numSparks# dataToTag# tagToEnum# addrToAny# anyToAddr# mkApUpd0#newBCO#unpackClosure#getApStackVal# getCCSOf#getCurrentCCS# clearCCS# traceEvent# traceMarker#getThreadAllocationCounter#setThreadAllocationCounter#broadcastInt8X16#broadcastInt16X8#broadcastInt32X4#broadcastInt64X2#broadcastInt8X32#broadcastInt16X16#broadcastInt32X8#broadcastInt64X4#broadcastInt8X64#broadcastInt16X32#broadcastInt32X16#broadcastInt64X8#broadcastWord8X16#broadcastWord16X8#broadcastWord32X4#broadcastWord64X2#broadcastWord8X32#broadcastWord16X16#broadcastWord32X8#broadcastWord64X4#broadcastWord8X64#broadcastWord16X32#broadcastWord32X16#broadcastWord64X8#broadcastFloatX4#broadcastDoubleX2#broadcastFloatX8#broadcastDoubleX4#broadcastFloatX16#broadcastDoubleX8# packInt8X16# packInt16X8# packInt32X4# packInt64X2# packInt8X32# packInt16X16# packInt32X8# packInt64X4# packInt8X64# packInt16X32# packInt32X16# packInt64X8# packWord8X16# packWord16X8# packWord32X4# packWord64X2# packWord8X32#packWord16X16# packWord32X8# packWord64X4# packWord8X64#packWord16X32#packWord32X16# packWord64X8# packFloatX4# packDoubleX2# packFloatX8# packDoubleX4# packFloatX16# packDoubleX8#unpackInt8X16#unpackInt16X8#unpackInt32X4#unpackInt64X2#unpackInt8X32#unpackInt16X16#unpackInt32X8#unpackInt64X4#unpackInt8X64#unpackInt16X32#unpackInt32X16#unpackInt64X8#unpackWord8X16#unpackWord16X8#unpackWord32X4#unpackWord64X2#unpackWord8X32#unpackWord16X16#unpackWord32X8#unpackWord64X4#unpackWord8X64#unpackWord16X32#unpackWord32X16#unpackWord64X8#unpackFloatX4#unpackDoubleX2#unpackFloatX8#unpackDoubleX4#unpackFloatX16#unpackDoubleX8#insertInt8X16#insertInt16X8#insertInt32X4#insertInt64X2#insertInt8X32#insertInt16X16#insertInt32X8#insertInt64X4#insertInt8X64#insertInt16X32#insertInt32X16#insertInt64X8#insertWord8X16#insertWord16X8#insertWord32X4#insertWord64X2#insertWord8X32#insertWord16X16#insertWord32X8#insertWord64X4#insertWord8X64#insertWord16X32#insertWord32X16#insertWord64X8#insertFloatX4#insertDoubleX2#insertFloatX8#insertDoubleX4#insertFloatX16#insertDoubleX8# plusInt8X16# plusInt16X8# plusInt32X4# plusInt64X2# plusInt8X32# plusInt16X16# plusInt32X8# plusInt64X4# plusInt8X64# plusInt16X32# plusInt32X16# plusInt64X8# plusWord8X16# plusWord16X8# plusWord32X4# plusWord64X2# plusWord8X32#plusWord16X16# plusWord32X8# plusWord64X4# plusWord8X64#plusWord16X32#plusWord32X16# plusWord64X8# plusFloatX4# plusDoubleX2# plusFloatX8# plusDoubleX4# plusFloatX16# plusDoubleX8# minusInt8X16# minusInt16X8# minusInt32X4# minusInt64X2# minusInt8X32#minusInt16X16# minusInt32X8# minusInt64X4# minusInt8X64#minusInt16X32#minusInt32X16# minusInt64X8#minusWord8X16#minusWord16X8#minusWord32X4#minusWord64X2#minusWord8X32#minusWord16X16#minusWord32X8#minusWord64X4#minusWord8X64#minusWord16X32#minusWord32X16#minusWord64X8# minusFloatX4#minusDoubleX2# minusFloatX8#minusDoubleX4#minusFloatX16#minusDoubleX8# timesInt8X16# timesInt16X8# timesInt32X4# timesInt64X2# timesInt8X32#timesInt16X16# timesInt32X8# timesInt64X4# timesInt8X64#timesInt16X32#timesInt32X16# timesInt64X8#timesWord8X16#timesWord16X8#timesWord32X4#timesWord64X2#timesWord8X32#timesWord16X16#timesWord32X8#timesWord64X4#timesWord8X64#timesWord16X32#timesWord32X16#timesWord64X8# timesFloatX4#timesDoubleX2# timesFloatX8#timesDoubleX4#timesFloatX16#timesDoubleX8#divideFloatX4#divideDoubleX2#divideFloatX8#divideDoubleX4#divideFloatX16#divideDoubleX8# quotInt8X16# quotInt16X8# quotInt32X4# quotInt64X2# quotInt8X32# quotInt16X16# quotInt32X8# quotInt64X4# quotInt8X64# quotInt16X32# quotInt32X16# quotInt64X8# quotWord8X16# quotWord16X8# quotWord32X4# quotWord64X2# quotWord8X32#quotWord16X16# quotWord32X8# quotWord64X4# quotWord8X64#quotWord16X32#quotWord32X16# quotWord64X8# remInt8X16# remInt16X8# remInt32X4# remInt64X2# remInt8X32# remInt16X16# remInt32X8# remInt64X4# remInt8X64# remInt16X32# remInt32X16# remInt64X8# remWord8X16# remWord16X8# remWord32X4# remWord64X2# remWord8X32# remWord16X16# remWord32X8# remWord64X4# remWord8X64# remWord16X32# remWord32X16# remWord64X8#negateInt8X16#negateInt16X8#negateInt32X4#negateInt64X2#negateInt8X32#negateInt16X16#negateInt32X8#negateInt64X4#negateInt8X64#negateInt16X32#negateInt32X16#negateInt64X8#negateFloatX4#negateDoubleX2#negateFloatX8#negateDoubleX4#negateFloatX16#negateDoubleX8#indexInt8X16Array#indexInt16X8Array#indexInt32X4Array#indexInt64X2Array#indexInt8X32Array#indexInt16X16Array#indexInt32X8Array#indexInt64X4Array#indexInt8X64Array#indexInt16X32Array#indexInt32X16Array#indexInt64X8Array#indexWord8X16Array#indexWord16X8Array#indexWord32X4Array#indexWord64X2Array#indexWord8X32Array#indexWord16X16Array#indexWord32X8Array#indexWord64X4Array#indexWord8X64Array#indexWord16X32Array#indexWord32X16Array#indexWord64X8Array#indexFloatX4Array#indexDoubleX2Array#indexFloatX8Array#indexDoubleX4Array#indexFloatX16Array#indexDoubleX8Array#readInt8X16Array#readInt16X8Array#readInt32X4Array#readInt64X2Array#readInt8X32Array#readInt16X16Array#readInt32X8Array#readInt64X4Array#readInt8X64Array#readInt16X32Array#readInt32X16Array#readInt64X8Array#readWord8X16Array#readWord16X8Array#readWord32X4Array#readWord64X2Array#readWord8X32Array#readWord16X16Array#readWord32X8Array#readWord64X4Array#readWord8X64Array#readWord16X32Array#readWord32X16Array#readWord64X8Array#readFloatX4Array#readDoubleX2Array#readFloatX8Array#readDoubleX4Array#readFloatX16Array#readDoubleX8Array#writeInt8X16Array#writeInt16X8Array#writeInt32X4Array#writeInt64X2Array#writeInt8X32Array#writeInt16X16Array#writeInt32X8Array#writeInt64X4Array#writeInt8X64Array#writeInt16X32Array#writeInt32X16Array#writeInt64X8Array#writeWord8X16Array#writeWord16X8Array#writeWord32X4Array#writeWord64X2Array#writeWord8X32Array#writeWord16X16Array#writeWord32X8Array#writeWord64X4Array#writeWord8X64Array#writeWord16X32Array#writeWord32X16Array#writeWord64X8Array#writeFloatX4Array#writeDoubleX2Array#writeFloatX8Array#writeDoubleX4Array#writeFloatX16Array#writeDoubleX8Array#indexInt8X16OffAddr#indexInt16X8OffAddr#indexInt32X4OffAddr#indexInt64X2OffAddr#indexInt8X32OffAddr#indexInt16X16OffAddr#indexInt32X8OffAddr#indexInt64X4OffAddr#indexInt8X64OffAddr#indexInt16X32OffAddr#indexInt32X16OffAddr#indexInt64X8OffAddr#indexWord8X16OffAddr#indexWord16X8OffAddr#indexWord32X4OffAddr#indexWord64X2OffAddr#indexWord8X32OffAddr#indexWord16X16OffAddr#indexWord32X8OffAddr#indexWord64X4OffAddr#indexWord8X64OffAddr#indexWord16X32OffAddr#indexWord32X16OffAddr#indexWord64X8OffAddr#indexFloatX4OffAddr#indexDoubleX2OffAddr#indexFloatX8OffAddr#indexDoubleX4OffAddr#indexFloatX16OffAddr#indexDoubleX8OffAddr#readInt8X16OffAddr#readInt16X8OffAddr#readInt32X4OffAddr#readInt64X2OffAddr#readInt8X32OffAddr#readInt16X16OffAddr#readInt32X8OffAddr#readInt64X4OffAddr#readInt8X64OffAddr#readInt16X32OffAddr#readInt32X16OffAddr#readInt64X8OffAddr#readWord8X16OffAddr#readWord16X8OffAddr#readWord32X4OffAddr#readWord64X2OffAddr#readWord8X32OffAddr#readWord16X16OffAddr#readWord32X8OffAddr#readWord64X4OffAddr#readWord8X64OffAddr#readWord16X32OffAddr#readWord32X16OffAddr#readWord64X8OffAddr#readFloatX4OffAddr#readDoubleX2OffAddr#readFloatX8OffAddr#readDoubleX4OffAddr#readFloatX16OffAddr#readDoubleX8OffAddr#writeInt8X16OffAddr#writeInt16X8OffAddr#writeInt32X4OffAddr#writeInt64X2OffAddr#writeInt8X32OffAddr#writeInt16X16OffAddr#writeInt32X8OffAddr#writeInt64X4OffAddr#writeInt8X64OffAddr#writeInt16X32OffAddr#writeInt32X16OffAddr#writeInt64X8OffAddr#writeWord8X16OffAddr#writeWord16X8OffAddr#writeWord32X4OffAddr#writeWord64X2OffAddr#writeWord8X32OffAddr#writeWord16X16OffAddr#writeWord32X8OffAddr#writeWord64X4OffAddr#writeWord8X64OffAddr#writeWord16X32OffAddr#writeWord32X16OffAddr#writeWord64X8OffAddr#writeFloatX4OffAddr#writeDoubleX2OffAddr#writeFloatX8OffAddr#writeDoubleX4OffAddr#writeFloatX16OffAddr#writeDoubleX8OffAddr#indexInt8ArrayAsInt8X16#indexInt16ArrayAsInt16X8#indexInt32ArrayAsInt32X4#indexInt64ArrayAsInt64X2#indexInt8ArrayAsInt8X32#indexInt16ArrayAsInt16X16#indexInt32ArrayAsInt32X8#indexInt64ArrayAsInt64X4#indexInt8ArrayAsInt8X64#indexInt16ArrayAsInt16X32#indexInt32ArrayAsInt32X16#indexInt64ArrayAsInt64X8#indexWord8ArrayAsWord8X16#indexWord16ArrayAsWord16X8#indexWord32ArrayAsWord32X4#indexWord64ArrayAsWord64X2#indexWord8ArrayAsWord8X32#indexWord16ArrayAsWord16X16#indexWord32ArrayAsWord32X8#indexWord64ArrayAsWord64X4#indexWord8ArrayAsWord8X64#indexWord16ArrayAsWord16X32#indexWord32ArrayAsWord32X16#indexWord64ArrayAsWord64X8#indexFloatArrayAsFloatX4#indexDoubleArrayAsDoubleX2#indexFloatArrayAsFloatX8#indexDoubleArrayAsDoubleX4#indexFloatArrayAsFloatX16#indexDoubleArrayAsDoubleX8#readInt8ArrayAsInt8X16#readInt16ArrayAsInt16X8#readInt32ArrayAsInt32X4#readInt64ArrayAsInt64X2#readInt8ArrayAsInt8X32#readInt16ArrayAsInt16X16#readInt32ArrayAsInt32X8#readInt64ArrayAsInt64X4#readInt8ArrayAsInt8X64#readInt16ArrayAsInt16X32#readInt32ArrayAsInt32X16#readInt64ArrayAsInt64X8#readWord8ArrayAsWord8X16#readWord16ArrayAsWord16X8#readWord32ArrayAsWord32X4#readWord64ArrayAsWord64X2#readWord8ArrayAsWord8X32#readWord16ArrayAsWord16X16#readWord32ArrayAsWord32X8#readWord64ArrayAsWord64X4#readWord8ArrayAsWord8X64#readWord16ArrayAsWord16X32#readWord32ArrayAsWord32X16#readWord64ArrayAsWord64X8#readFloatArrayAsFloatX4#readDoubleArrayAsDoubleX2#readFloatArrayAsFloatX8#readDoubleArrayAsDoubleX4#readFloatArrayAsFloatX16#readDoubleArrayAsDoubleX8#writeInt8ArrayAsInt8X16#writeInt16ArrayAsInt16X8#writeInt32ArrayAsInt32X4#writeInt64ArrayAsInt64X2#writeInt8ArrayAsInt8X32#writeInt16ArrayAsInt16X16#writeInt32ArrayAsInt32X8#writeInt64ArrayAsInt64X4#writeInt8ArrayAsInt8X64#writeInt16ArrayAsInt16X32#writeInt32ArrayAsInt32X16#writeInt64ArrayAsInt64X8#writeWord8ArrayAsWord8X16#writeWord16ArrayAsWord16X8#writeWord32ArrayAsWord32X4#writeWord64ArrayAsWord64X2#writeWord8ArrayAsWord8X32#writeWord16ArrayAsWord16X16#writeWord32ArrayAsWord32X8#writeWord64ArrayAsWord64X4#writeWord8ArrayAsWord8X64#writeWord16ArrayAsWord16X32#writeWord32ArrayAsWord32X16#writeWord64ArrayAsWord64X8#writeFloatArrayAsFloatX4#writeDoubleArrayAsDoubleX2#writeFloatArrayAsFloatX8#writeDoubleArrayAsDoubleX4#writeFloatArrayAsFloatX16#writeDoubleArrayAsDoubleX8#indexInt8OffAddrAsInt8X16#indexInt16OffAddrAsInt16X8#indexInt32OffAddrAsInt32X4#indexInt64OffAddrAsInt64X2#indexInt8OffAddrAsInt8X32#indexInt16OffAddrAsInt16X16#indexInt32OffAddrAsInt32X8#indexInt64OffAddrAsInt64X4#indexInt8OffAddrAsInt8X64#indexInt16OffAddrAsInt16X32#indexInt32OffAddrAsInt32X16#indexInt64OffAddrAsInt64X8#indexWord8OffAddrAsWord8X16#indexWord16OffAddrAsWord16X8#indexWord32OffAddrAsWord32X4#indexWord64OffAddrAsWord64X2#indexWord8OffAddrAsWord8X32#indexWord16OffAddrAsWord16X16#indexWord32OffAddrAsWord32X8#indexWord64OffAddrAsWord64X4#indexWord8OffAddrAsWord8X64#indexWord16OffAddrAsWord16X32#indexWord32OffAddrAsWord32X16#indexWord64OffAddrAsWord64X8#indexFloatOffAddrAsFloatX4#indexDoubleOffAddrAsDoubleX2#indexFloatOffAddrAsFloatX8#indexDoubleOffAddrAsDoubleX4#indexFloatOffAddrAsFloatX16#indexDoubleOffAddrAsDoubleX8#readInt8OffAddrAsInt8X16#readInt16OffAddrAsInt16X8#readInt32OffAddrAsInt32X4#readInt64OffAddrAsInt64X2#readInt8OffAddrAsInt8X32#readInt16OffAddrAsInt16X16#readInt32OffAddrAsInt32X8#readInt64OffAddrAsInt64X4#readInt8OffAddrAsInt8X64#readInt16OffAddrAsInt16X32#readInt32OffAddrAsInt32X16#readInt64OffAddrAsInt64X8#readWord8OffAddrAsWord8X16#readWord16OffAddrAsWord16X8#readWord32OffAddrAsWord32X4#readWord64OffAddrAsWord64X2#readWord8OffAddrAsWord8X32#readWord16OffAddrAsWord16X16#readWord32OffAddrAsWord32X8#readWord64OffAddrAsWord64X4#readWord8OffAddrAsWord8X64#readWord16OffAddrAsWord16X32#readWord32OffAddrAsWord32X16#readWord64OffAddrAsWord64X8#readFloatOffAddrAsFloatX4#readDoubleOffAddrAsDoubleX2#readFloatOffAddrAsFloatX8#readDoubleOffAddrAsDoubleX4#readFloatOffAddrAsFloatX16#readDoubleOffAddrAsDoubleX8#writeInt8OffAddrAsInt8X16#writeInt16OffAddrAsInt16X8#writeInt32OffAddrAsInt32X4#writeInt64OffAddrAsInt64X2#writeInt8OffAddrAsInt8X32#writeInt16OffAddrAsInt16X16#writeInt32OffAddrAsInt32X8#writeInt64OffAddrAsInt64X4#writeInt8OffAddrAsInt8X64#writeInt16OffAddrAsInt16X32#writeInt32OffAddrAsInt32X16#writeInt64OffAddrAsInt64X8#writeWord8OffAddrAsWord8X16#writeWord16OffAddrAsWord16X8#writeWord32OffAddrAsWord32X4#writeWord64OffAddrAsWord64X2#writeWord8OffAddrAsWord8X32#writeWord16OffAddrAsWord16X16#writeWord32OffAddrAsWord32X8#writeWord64OffAddrAsWord64X4#writeWord8OffAddrAsWord8X64#writeWord16OffAddrAsWord16X32#writeWord32OffAddrAsWord32X16#writeWord64OffAddrAsWord64X8#writeFloatOffAddrAsFloatX4#writeDoubleOffAddrAsDoubleX2#writeFloatOffAddrAsFloatX8#writeDoubleOffAddrAsDoubleX4#writeFloatOffAddrAsFloatX16#writeDoubleOffAddrAsDoubleX8#prefetchByteArray3#prefetchMutableByteArray3#prefetchAddr3#prefetchValue3#prefetchByteArray2#prefetchMutableByteArray2#prefetchAddr2#prefetchValue2#prefetchByteArray1#prefetchMutableByteArray1#prefetchAddr1#prefetchValue1#prefetchByteArray0#prefetchMutableByteArray0#prefetchAddr0#prefetchValue0#!random-1.1-3ypV4EIycgb35PKjTYYr5q System.RandomRandomrandomrandomRrandomRsrandoms randomRIOrandomIOStdGen RandomGensplitnextgenRangemkStdGen setStdGen getStdGen newStdGen getStdRandomControl.Monad.Trans.Class MonadTranslift MonadPlusmzeromplus=<<whenliftMliftM2liftM3liftM4liftM5ap Data.Functorvoid Data.Functionfix Data.FoldablemapM_forM_ sequence_msumforMfilterM>=><=<forever mapAndUnzipMzipWithM zipWithM_foldMfoldM_ replicateM replicateM_unless<$!>mfilterControl.Monad.IO.ClassMonadIOliftIO mtl-2.2.2Control.Monad.State.Classmodify*MonadRandom-0.5.1.1-BzljSu5UeV7CMzQFadrdArControl.Monad.Trans.Random.Lazy evalRandTIO evalRandIO withRandTmapRandT execRandT evalRandTrunRandT liftRandTwithRandmapRandexecRandevalRandrunRandliftRandRandRandTControl.Monad.Random.Class uniformMayuniform fromListMayfromList weightedMayweighted MonadRandom getRandomR getRandom getRandomRs getRandoms MonadSplitgetSplitMonadInterleave interleave Data.VoidvacuousabsurdVoidData.Semigroupoption mtimesDefaultdiffcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOption traceEventsortWiththe maxTupleSizeSpecConstrAnnotation NoSpecConstrForceSpecConstrControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.IdentityIdentity runIdentityGHC.Exception.Type Exception toException fromExceptiondisplayExceptionData.Functor.ConstConstgetConstData.Semigroup.Internal stimesMonoidstimesIdempotentDualgetDualEndoappEndoAllgetAllgetAnySumgetSumProduct getProductData.OrdDown Data.Proxy asProxyTypeOfProxyKProxyGHC.IntuncheckedIShiftRA64#uncheckedIShiftL64#GHC.WorduncheckedShiftRL64#uncheckedShiftL64#&on<$> GHC.Stack.CCScurrentCallStack iShiftRL# iShiftRA#iShiftL#shiftRL#shiftL#flip.constidliftA3liftA<**> Alternativeempty<|>somemanystimesIdempotentMonoid SomeExceptionisTrue#Control.Monad.Trans.ExceptExceptT'exceptions-0.10.0-KStaZHFhmg9WV0B4Gib1EControl.Monad.CatchbracketOnErrorfinallyonError onExceptioncatchestryJusttry handleJusthandleIf handleAll handleIOErrorhandle catchJustcatchIf catchIOErrorcatchAlluninterruptibleMask_mask_ MonadThrowthrowM MonadCatchcatch MonadMaskmaskuninterruptibleMaskgeneralBracketExitCaseExitCaseSuccessExitCaseException ExitCaseAbortHandler0transformers-base-0.4.5.2-KAEk9EpmJcPKrshJPOAtwLControl.Monad.BaseliftBaseDefault mapMaybeTmaybeToExceptTexceptToMaybeTControl.Monad.Trans.Reader withReaderT mapReaderT withReader mapReader runReaderReader,monad-control-1.0.2.3-7nkbYj3vGDkFaD9mDe8p7yControl.Monad.Trans.ControlRunInBaseDefault ComposeSt RunInBaseMonadBaseControlStM liftBaseWithrestoreM RunDefault2 RunDefaultRunMonadTransControlStTliftWithrestoreTdefaultLiftWithdefaultRestoreTdefaultLiftWith2defaultRestoreT2defaultLiftBaseWithdefaultRestoreMcontrolcaptureTcaptureM liftBaseOp liftBaseOp_liftBaseDiscardliftBaseOpDiscardControl.Monad.Trans.ErrorErrorstrMsgnoMsgReaderT runReaderT MonadBaseliftBasetakeControl.Monad.Trans.State.LazyStateT runStateTErrorT runErrorTControl.Monad.Trans.Identity IdentityT runIdentityTembed_embed mapIdentityTgetsmodify' MonadStategetputstateControl.Monad.Reader.Classasks MonadReaderlocalaskreader mapErrorTExcept runExcept mapExcept withExcept runExceptT mapExceptT withExceptTrunState evalState execStatemapState withState evalStateT execStateT mapStateT withStateT text-1.2.3.1 Data.TextpackData.Text.ShowunpackData.Text.InternalTextcatchEthrowEexcept catchError throwError ErrorListlistMsgIO GHC.IORefIORef Data.EitherEither GHC.MaybeNothingGHC.ShowShowLeftliftPass liftListen liftCallCCMaybeRightGHC.MVarMVarControl.Concurrent.ChanChanFork ForkMethods_forkaddFruitmain1main2main3main4fork testMethodmain5