3ϻ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe%,-;=>?FQSTVh & "    $#"!   None p0      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~None 7;=CFTV=| %KA class of transformers that can run their effects in the underlying monad. The following laws need to hold.  \t -> do st <- ( res <-  (* t st) ) res == R o f :: (forall a. m a -> m a) \m s -> runTransformer (lift (f m)) s == \m s -> f (runTransformer (lift m) s) &DThe type of value that needs to be provided to run this transformer.'=The type of the result you get when you run this transformer.(Get the current state value.)/If given a result, reconstruct the computation.*pGiven the required state value and a computation, run the effects of the transformer in the underlying monad.-+A class of monads that have a run function.The 2 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 !,  and (- m, % t,  (t m)) => - (t m)6 are given so users should only provide additional % instances instead of - ones..>The type of value that needs to be provided to run this monad./7The type of the result you get when you run this monad.0Get the current state value.15If given a result, reconstruct a monadic compitation.2Given 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 .4 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 * function.%*)('&+,-210/. -./0122+,%&'()*543CBA@?>=<;:9876%&'()*+,-./0122None-.07;<=>?FKQSTV?C DEFGHIJKLMNOJKLMMNNHIPEFGUTSRQODEFGHIJKLMMNNNone&'-6<>?FQTVhQme-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 @Intf&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 5gTransform 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)h`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 h to satisfy the H constraint. 3implementStateViaStateT @Int 0 f :: Monad m => m ()i&Handle the state requirement using an +. If you have a function with a type like &f :: MonadEffect (State Int) m => m () you can use i to replace the H constraint with +. This is convenient if you already have a , constraint and you don't want to use the  transformer for some reason. 4implementStateViaIORef @Int 0 f :: MonadIO m => m ()DEFGHIJKLMNbcdOaefghi alkbcdefgjhilkbcdNone<VRVnopqrnopqrNone&'+-.6;<=>?FQSTVw t5The handle function will return a value of this type.uGive a value to the caller of z and keep going.vLContinue the execution after the handler. The handler will return this value{SThrow a signal with no possible recovery. The handler is forced to only return the v. constructor because it cannot construct a  value.$If this function is used along with handleAsException9, this module behaves like regular checked exceptions.|lHandle signals of a computation. The handler function has the option to provide a value to the caller of zt and continue execution there, or do what regular exception handlers do and continue execution after the handler.}RThis handler can only behave like a regular exception handler. If used along with {8 this module behaves like regular checked exceptions.~See documentation for }. This handler gives you an .Discard all the w and y< effects. If any exception was thrown the result will be .Satisfies all the w and y constraints if they all throw Oable exceptions. The first thrown exception will be shown and returned as a  result.>Use this function to handle exceptions without discarding the w 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.uSince 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.~ that doesn't discard Throws' constraints. See documentation for .3^_DEFGHIJKLMNKOstuvwxyz{|}~tuvy{|w}~sxztuvx None &'-6<FTV}Read a value of type eL. Use with the TypeApplications extension to help with type inference  readEnv @Int`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.DEFGHIJKLMNONone &'-<>?FQTV Get 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.ASignals 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 U but the folding function has the ability to terminate early by returning Nothing.@Executes only the effects needed to produce the first n results.<Executes only the effects needed to produce a single result.2Execute all the effects but discard their results.! None&'-;<=>?FQTV:Allows you to return early from a function. Make sure you ! to get the actual result out.XGet the result from a computation. Either the early returned one, or the regular result.9Only do the given action and exit early with it's result.$Early return the given value if the   is 4. Otherwise, contnue with the value inside of it.QOnly do the given action and early return with it's result if the given value is 5. Otherwise continue with the value inside of the  .If the value is a V, get the value, process it and early return the result. Otherwise just return the   value.If the value is a [, get the value, process it and only do the resulting action. Otherwise just return the   value.DEFGHIJKLMNK  O  None 3<>?FKQTV`=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.The name of the effecteFork 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 int he 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 hx then setting the state in the forked thread will just modify the thread-local value. On the other hand, if we use ir then both the main thread and the new thread will use the same reference meaning they can interact through it.^Wait for the thread to finish and return it's result. The monadic context will also be merged.Example:  f @Int 1 th <-  $ do f @Int 2  th print =<< e @Int -- Outputs 2 This will discard the H  m constraint by forcing m to be \. The functions doesn't actually do anything, the real implementation is given by the H  IO instance which uses the async package.The  implementation uses the async library. K  None -6<FTV]hOutput 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. 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. Implement  through an Y. The result is a monadic action (the inner one) that returns one yielded value or J if the computation is finished. All subsequent calls will also return q. 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, i 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 , this implementation is suitable to be run with multiple threads. Scheduling which thread gets continued is defined by the semantics of s. Note# will block in this implementation. Implements  through a R. The resulting monadic action (the inner one) reads one value from the queue.  means the provided computation is done. If the provided computation forks new threads and doesn't wait for them to finish, e may be written prematurely (in the sense that maybe there's still a live thread yielding values). Note will not block in this implementation.A convenience function to go through all the yielded results. Use in combination with one of the implementations. Collects a list of values.A convenience function to go through all the yielded results. Use in combination with one of the implementations. Discards the computed values. K  None{NoneγNoneNone -<>?FThs K ! !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~~          ~       !"#$%&'()*+,-./0123456789:;<=>?>?>@>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !""#$$%&'())*+,+-+./0123456768696:6;6<6=6>6>6?@A@A@BCDCECFCGHIHIHJKLKLKMKNKNKOKPKPKQKRKSKSKTKUKUKVWXWXYZY[Y[Y\Y\]^]_`a`bcdefghijklmnopqrstuvwxCyCyz{|{|}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~}~^{{{{{{{r     {{{ !"#$%!&{'{({)*+,-./01!2 3 4 5 5 6 789:;<=>?@ABCDEFGHI.simple-effects-0.10.0.1-BJGDfwwqobhGBgofTtOFMdControl.Effects.SignalControl.Effects.GenericControl.Monad.RunnableControl.EffectsControl.Effects.StateControl.Effects.ParallelControl.Effects.ReaderControl.Effects.ListControl.Effects.EarlyControl.Effects.AsyncControl.Effects.YieldImportTutorial.T1_IntroductionTutorial.T2_DetailsTutorial.T3_CustomEffects Tutorial.Test+transformers-0.5.5.0-1bbDhu8ypp8LC8lJMFju65Control.Monad.Trans.MaybeMaybeT runMaybeT MonadicMethod mergeMethodProductOfMonadicMethodsmergeMonadicProductsMonadicMethodsmergeMonadicMethodsIndependentOfMFuncRes SimpleMethod LiftedMethod liftMethodProductOfSimpleMethodsLiftedProducts liftProducts SimpleMethods liftSimpleMgenericLiftThroughgenericMergeContext&$fProductOfSimpleMethods(->)kk:*::*:mt$fSimpleMethodskamt$fSimpleMethodkabmt$fSimpleMethodTYPEaMmt*$fProductOfSimpleMethods(->)(->)(->)M1M1mt$fIndependentOfMkam$fIndependentOfM(->)Mm$fIndependentOfMkam0$fSimpleMethodTYPEf(->)mt&$fProductOfMonadicMethodsk(->):*::*:am$fMonadicMethodsam$fMonadicMethodkaffMm$fMonadicMethodTYPEaf(->)m$fMonadicMethodTYPEabMm$$fProductOfMonadicMethodsk(->)M1M1am RunnableTransTransformerStateTransformerResultcurrentTransStaterestoreTransStaterunTransformer PureRunnable runPureMonadRunnable MonadicState MonadicResultcurrentMonadicStaterestoreMonadicStaterunMonad $fRunnableIO$fPureRunnableIdentity$fRunnableIdentity$fRunnableTransListT$fRunnableTransMaybeT$fRunnableTransExceptT$fRunnableTransErrorT$fRunnableTransIdentityT$fRunnableTransRWST$fRunnableTransRWST0$fRunnableTransReaderT$fRunnableTransWriterT$fRunnableTransWriterT0$fRunnableTransStateT$fRunnableTransStateT0$fPureRunnablet $fRunnablet MonadEffectsRuntimeImplementedgetRuntimeImplemented MonadEffecteffectEffect EffMethodsCanLift liftThrough mergeContext implement$fMonadEffectet $fMonadEffecteRuntimeImplemented!$fRunnableTransRuntimeImplemented%$fMonadBaseControlbRuntimeImplemented $fMonadReaderrRuntimeImplemented$fMonadTransRuntimeImplemented$fFunctorRuntimeImplemented$fApplicativeRuntimeImplemented$fMonadRuntimeImplemented$fMonadPlusRuntimeImplemented$fAlternativeRuntimeImplemented$fMonadStateRuntimeImplemented$fMonadIORuntimeImplemented$fMonadCatchRuntimeImplemented$fMonadThrowRuntimeImplemented$fMonadRandomRuntimeImplemented$fMonadBaseRuntimeImplementedState StateMethods _getState _setStategetStatesetState modifyStateimplementStateViaStateTimplementStateViaIORef$fMonadEffectStateStateTD:R:EffMethodsStatem0 $fEffectState$fGenericEffMethods forkThread appendStateparallelWithRestoreparallelWithSequenceparallelHandleException ResumeOrBreakResumeBreakThrow SomeSignalSignalsignal throwSignal handleSignalhandleExceptionhandleToEitherdiscardAllExceptionsshowAllExceptionshandleWithoutDiscardinghandleToEitherRecursive%$fMonadEffectSignalRuntimeImplemented$fMonadEffectSignalMaybeT$fMonadEffectSignalExceptT$fEffectSignal$fMonadEffectSignalExceptT0$fMonadEffectSignalIO#$fMonadEffectHandleExceptionExceptT$fEffectHandleException$fEqSomeSignal$fOrdSomeSignal$fReadSomeSignal$fShowSomeSignalReadEnvReadEnvMethods_readEnvreadEnvimplementReadEnvD:R:EffMethodsReadEnvm0$fEffectReadEnvNonDeterminismNonDeterminismMethods_choosechoosedeadEndevaluateToListtraverseAllResultsfoldAllResultsfoldWithEarlyTerminationevaluateNResultsevaluateOneResult evaluateAll $fMonadEffectNonDeterminismListTD:R:EffMethodsNonDeterminismm0$fEffectNonDeterminismEarly earlyReturn handleEarlyonlyDoifNothingEarlyReturn ifNothingDoifLeftEarlyReturnifLeftDo$fMonadEffectEarlyExceptT $fEffectEarly AsyncThreadAsync AsyncMethods_async _waitAsyncasync waitAsyncimplementAsyncViaIO$fMonadEffectAsyncIOD:R:EffMethodsAsyncm0 $fEffectAsync$fFunctorAsyncThread$fEqAsyncThread$fOrdAsyncThreadYield YieldMethods_yieldyieldimplementYieldViaNonDeterminismimplementYieldViaMVarimplementYieldViaChantraverseYieldedtraverseYielded_D:R:EffMethodsYieldm0 $fEffectYieldbaseGHC.Baseaugmentbuildghc-primGHC.Primseq realWorld#void# unsafeCoerce# nullAddr# GHC.MagiclazyoneShotrunRW# breakpointbreakpointCondinlineGHC.Exts groupWith$ magicDictcoerce Control.MonadguardIsListItem fromListNproxy#joinMonadfailreturn>>=>>Functorfmap<$Control.Monad.FixMonadFixmfix Data.StringIsString fromString Applicativepure<*>*>liftA2<*Data.TraversablemapMsequenceData.Semigroup Semigroup<>sconcatstimesMonoidmemptymappendmconcatAddr#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# 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#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#readCharArray#readWideCharArray# readIntArray#readWordArray#readAddrArray#readFloatArray#readDoubleArray#readStablePtrArray#readInt8Array#readInt16Array#readInt32Array#readInt64Array#readWord8Array#readWord16Array#readWord32Array#readWord64Array#writeCharArray#writeWideCharArray#writeIntArray#writeWordArray#writeAddrArray#writeFloatArray#writeDoubleArray#writeStablePtrArray#writeInt8Array#writeInt16Array#writeInt32Array#writeInt64Array#writeWord8Array#writeWord16Array#writeWord32Array#writeWord64Array#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#check#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#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-LLUGZ7T9DqQ5vN0Jbcd0We 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.2-L9xXSHNcnHK5lB15ncBkleControl.Monad.State.Classmodify(MonadRandom-0.5.1-7bJVwxw4lEQ1cqJrrNER0IControl.Monad.Trans.Random.Lazy evalRandTIO evalRandIO withRandTmapRandT execRandT evalRandTrunRandT liftRandTwithRandmapRandexecRandevalRandrunRandliftRandRandRandTControl.Monad.Random.Class uniformMayuniform fromListMayfromList weightedMayweighted MonadRandom getRandomR getRandom getRandomRs getRandoms MonadSplitgetSplitMonadInterleave interleavediffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOption Data.VoidvacuousabsurdVoid traceEventsortWiththe maxTupleSizeSpecConstrAnnotation NoSpecConstrForceSpecConstrControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.IdentityIdentity runIdentity GHC.Exception Exception toException fromExceptiondisplayExceptionData.Functor.ConstConstgetConst Data.MonoidDualgetDualEndoappEndoAllgetAllgetAnySumgetSumProduct getProductData.OrdDown Data.Proxy asProxyTypeOfProxyKProxyGHC.IntuncheckedIShiftRA64#uncheckedIShiftL64#GHC.WorduncheckedShiftRL64#uncheckedShiftL64#&on<$> GHC.Stack.CCScurrentCallStack iShiftRL# iShiftRA#iShiftL#shiftRL#shiftL#flip.constidliftA3liftA<**> Alternativeempty<|>somemany SomeExceptionisTrue#Control.Monad.Trans.ExceptExceptT(exceptions-0.10.0-Cx0RYXPydnpApyWkGSN03dControl.Monad.CatchbracketOnErrorfinallybracket_bracketonError onExceptioncatchestryJusttry handleJusthandleIf handleAll handleIOErrorhandle catchJustcatchIf catchIOErrorcatchAlluninterruptibleMask_mask_ MonadThrowthrowM MonadCatchcatch MonadMaskmaskuninterruptibleMaskgeneralBracketExitCaseExitCaseSuccessExitCaseException ExitCaseAbortHandler.transformers-base-0.4.4-GNTesDMEQS1GbEFD2YgleyControl.Monad.BaseliftBaseDefault mapMaybeTmaybeToExceptTexceptToMaybeTControl.Monad.Trans.Reader withReaderT mapReaderT withReader mapReader runReaderReader+monad-control-1.0.2.3-H5Ofp7Hti3qJD892PpFTOControl.Monad.Trans.ControlRunInBaseDefault ComposeSt RunInBaseMonadBaseControlStM liftBaseWithrestoreM RunDefault2 RunDefaultRunMonadTransControlStTliftWithrestoreTdefaultLiftWithdefaultRestoreTdefaultLiftWith2defaultRestoreT2defaultLiftBaseWithdefaultRestoreMcontrolcaptureTcaptureM liftBaseOp liftBaseOp_liftBaseDiscardliftBaseOpDiscardControl.Monad.Trans.ErrorErrorstrMsgnoMsgReaderT runReaderT MonadBaseliftBase#list-t-1.0.1-3HqZ1zIK7dm1JhsxoS30S5ListTslicedroptaketraverserepeatunfoldMunfoldfromMVar fromFoldableconssplitAt traverse_ toReverseListtoList foldMaybefoldnulltailheadunconsControl.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.2.2-EakMpasry3jA6OIwSZhq9M Data.TextpackData.Text.ShowunpackData.Text.InternalTextcatchEthrowEexcept catchError throwError ErrorListlistMsgIO GHC.IORefIORef Data.EitherEitherNothingGHC.ShowShowLeftliftPass liftListen liftCallCC SignalMethodsHandleExceptionMethods_signal_handleWithoutDiscarding getSomeSignalD:R:EffMethodsSignalm0D:R:EffMethodsHandleExceptionm0MaybeRight EarlyMethods _earlyReturn EarlyValue getEarlyValueD:R:EffMethodsEarlym0GHC.MVarMVarControl.Concurrent.ChanChan ForkMethods_forkForkaddFruitmain1main2main3main4fork testMethodmain5 $fEffectForkD:R:EffMethodsForkm0