h&B"      Safe-Inferred0"%&')*-/135689:;<  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-Inferred0"%&')*-/135689:;<   theatre-dev=Get a list of all entries in the queue without removing them.  theatre-devStarting from "stm" 2.5.2.0 "flushTBQueue" is broken. We're fixing it here.  Safe-Inferred0"%&')*-/135689:;< `  Safe-Inferred0"%&')*-/135689:;<   theatre-dev9Action producing a message or nothing, after it's killed.  Safe-Inferred0"%&')*-/135689:;<   Safe-Inferred0"%&')*-/135689:;<  Safe-Inferred0"%&')*-/135689:;< theatre-devThink of an actor that does not process any messages and simply interrupts between each iteration to check whether it's still alive.  theatre-devKill the daemon.  theatre-dev8Wait for the daemon to die due to error or being killed. Safe-Inferred0"%&')*-/135689:;< theatre-dev;Controls of an actor, which processes the messages of type message3. The processing runs on a dedicated green thread.Provides abstraction over the message channel, thread-forking and killing.Monoid instance is not provided for the same reason it is not provided for numbers. This type supports both sum and product composition. See  ,  and .  theatre-devSend a message to the actor.  theatre-devKill the actor.  theatre-dev7Wait for the actor to die due to error or being killed.  theatre-dev5IDs of the constituent actors. Useful for debugging. theatre-devDistribute the message stream across actors. The message gets delivered to the first available one.0E.g., using this combinator in combination with  you can construct pools: spawnPool :: Int -> IO (Actor message) -> IO (Actor message) spawnPool size spawn = firstAvailableOneOf <$> replicateM size spawn;You can consider this being an interface to the Sum monoid. theatre-dev7Dispatch the message across actors based on a key hash.This lets you ensure of a property that messages with the same key will arrive to the same actor, letting you maintain a local associated state in the actors.The implementation applies a modulo equal to the amount of actors to the hash and thus determines the index of the actor to dispatch the message to. This is inspired by how partitioning is done in Kafka.  theatre-dev5Distribute the message stream to all provided actors.?You can consider this being an interface to the Product monoid.  theatre-dev?Spawn an actor which processes messages in isolated executions.  theatre-devSpawn an actor which processes all available messages in one execution.  theatre-devSpawn an actor which processes messages in isolated executions and threads state.  theatre-devSpawn an actor which processes all available messages in one execution and threads state. theatre-devAdd a message to the end of the queue of the messages to be processed by the provided actor. theatre-devCommand the actor to stop registering new messages, process all the registered ones and execute the clean up action.This action executes immediately. If you want to block waiting for the actor to actually die, after  you can run . theatre-devBlock waiting for the actor to die either due to getting killed or due to its interpreter action throwing an exception. The exception will get rethrown here. theatre-dev?@A@BCDEDFDGDHDIDJDKDLDMDNDODPQRQSQTUVUWUXUYUZU[U\U]U^U_U`UaUbUcUdUeUfUgUhUiUjUkUl9m9n9o9p9q9r9s9t9u9v9w9xyz{|}~}}}}}}}}}}}}}}QQQQQQQQ99UUUUUUUUUUUUUUU99999999$@@5}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}<<<<<<<<<<<<<<1111111111111&&&&&&&&&&&&>>>>>>>///////////////////////////////////////////////////////////////////////$$$$@@@UUU                                                                   9 9 9 9 9 9 9 9 9 9               ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !                  ( ( (                                                    Q Q Q                                 &theatre-dev-0.4-KJiZh6OSlfGIYjB9Vw01NeTheatreDev.DaemonTheatreDev.ActorTheatreDev.PreludeTheatreDev.ExtrasFor.TBQueueTheatreDev.ExtrasFor.ListTheatreDev.StmStructures.RunnerTheatreDev.TellTheatreDev.WaitDaemonspawnkillwait$fMonoidDaemon$fSemigroupDaemonActorfirstAvailableOneOfbyKeyHashOneOfallOfspawnStatelessIndividualspawnStatelessBatchedspawnStatefulIndividualspawnStatefulBatchedtell$fDecidableActor$fDivisibleActor$fContravariantActorbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip GHC.Stable newStablePtr System.IOprint Data.Tuplefstsnd otherwiseassert GHC.MagiclazyGHC.IO.Exception assertError Debug.TracetraceinlinemapGHC.Exts groupWith$coerceGHC.Real fromIntegral realToFrac Control.Monadguard Data.DynamictoDyn Unsafe.CoerceunsafeEqualityProof unsafeCoerce#joinGHC.EnumBoundedmaxBoundminBoundEnumsuccpredenumFromThenTo enumFromTo enumFromThenenumFromfromEnumtoEnum GHC.ClassesEq==/= GHC.FloatFloatingtanhtansqrtsinhsinpilogBaselog1pexplog1plog1mexplogexpm1expcoshcosatanhatanasinhasinacosh**acos Fractionalrecip fromRational/IntegralremquotRemquotmoddivMod toIntegerdivMonad>>>>=return Data.DataDatatoConstrgunfoldgmapTgmapQrgmapQlgmapQigmapQgmapMpgmapMogmapMgfoldl dataTypeOf dataCast1 dataCast2Functorfmap<$GHC.NumNumsignumabs*+negate fromInteger-Ord<<=>maxmincompare>=GHC.ReadReadreadPrec readListPrec readsPrecreadListReal toRational RealFloat significand scaleFloatisNegativeZeroisNaN isInfiniteisIEEEisDenormalized floatRange floatRadix floatDigitsexponent encodeFloatatan2 decodeFloatRealFractruncateroundproperFractionceilingfloorGHC.ShowShowshowListshow showsPrecGHC.IxIxindexinRange rangeSizerangeData.Typeable.InternalTypeableControl.Monad.FixMonadFixmfixControl.Monad.Fail MonadFailfail Data.StringIsString fromString ApplicativeliftA2<**><*>pure Data.FoldableFoldablefoldr'foldMap'foldMapfoldsumproductnullminimummaximumfoldr1foldl1foldl'elemtoListfoldrlengthfoldlData.Traversable TraversabletraversesequencemapM sequenceA GHC.GenericsGeneric Semigroupstimes<>sconcatMonoidmconcatmemptymappend GHC.TypesBoolFalseTrueStringCharDoubleFloatIntGHC.IntInt8Int16Int32Int64 ghc-bignumGHC.Num.IntegerInteger GHC.MaybeMaybeNothingJustOrderingGTLTEQRatioRational RealWorld StablePtrIOWordGHC.WordWord8Word16Word32Word64GHC.PtrPtrFunPtr Data.EitherEitherRightLeftNonEmpty:| CoercibleUnsafeEquality UnsafeReflTyConGHC.ForeignPtr ForeignPtrGHC.IO.Handle.TypesHandleGHC.STSTData.Functor.Contravariant Predicate getPredicateOpgetOp EquivalencegetEquivalence Contravariant>$ contramap Comparison getComparisonphantomdefaultEquivalencedefaultComparisoncomparisonEquivalence>$<>$$<$< Data.ComplexComplex:+realPartpolarphasemkPolar magnitudeimagPart conjugatecis Data.FixedUniPicoNanoMilliMicro HasResolution resolutionFixedMkFixedE9E6E3E2E12E1E0DeciCenti showFixedmod'divMod'div' Data.VoidVoidvacuousabsurdData.Semigroup WrappedMonoid WrapMonoid unwrapMonoidMingetMinMaxgetMaxLastgetLastFirstgetFirstArgMinArgMaxArg mtimesDefaultdiffcycle1sortWithFixityInfixPrefixDataTypeDataRepNoRepCharRepAlgRepIntRepFloatRep ConstrRep IntConstr FloatConstr AlgConstr CharConstrConstrConIndex tyconUQname tyconModule showConstr repConstr readConstr mkRealConstr mkNoRepTypemkIntegralConstr mkIntType mkFloatType mkDataType mkConstrTagmkConstr mkCharType mkCharConstrmaxConstrIndex isNorepType isAlgType indexConstr fromConstrM fromConstrB fromConstr dataTypeRep dataTypeNamedataTypeConstrs constrType constrRep constrIndex constrFixity constrFieldsSystem.TimeoutTimeouttimeoutControl.ConcurrentthreadWaitWriteSTMthreadWaitWritethreadWaitReadSTMthreadWaitReadrunInUnboundThreadrunInBoundThreadrtsSupportsBoundThreadsisCurrentThreadBoundforkOSWithUnmaskforkOS forkFinallyControl.Concurrent.ChanChanwriteList2Chan writeChanreadChannewChangetChanContentsdupChanControl.Concurrent.QSemQSemwaitQSem signalQSemnewQSemControl.Concurrent.QSemNQSemN waitQSemN signalQSemNnewQSemNData.Bifunctor BifunctorsecondbimapfirstData.List.NonEmptynonEmptyControl.Monad.IO.ClassMonadIOliftIO Data.RatioapproxRational Data.STRef modifySTRef' modifySTRef Data.UniqueUnique newUnique hashUniqueGHC.StableName StableNamemakeStableNamehashStableName eqStableNameSystem.Environment withProgNamewithArgsunsetEnvsetEnv lookupEnv getProgNamegetEnvironmentgetEnvgetArgs!System.Environment.ExecutablePathgetExecutablePath System.ExitexitWith exitSuccess exitFailuredie System.MemperformMinorGCperformMajorGC performGC Text.PrintfprintfhPrintf zipWithM_zipWithMunless replicateM_ replicateMmfilter mapAndUnzipMforeverfoldM_foldMfilterM>=><=<<$!> Data.Version showVersion parseVersion traceStack traceShowM traceShowId traceShow traceMarkerIO traceMarkertraceMtraceIdtraceIO traceEventIO traceEvent putTraceMsg flushEventLog mapAccumR mapAccumLforMforfoldMapDefault fmapDefaultControl.ApplicativeZipList getZipList WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowoptional Control.ArrowKleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowMonad ArrowLooploop ArrowChoicerightleft|||+++ ArrowApplyappArrow&&&***arrreturnAleftApp^>>^<<>>^<<^ writeFilereadLnreadIOreadFileputStrLnputStrputCharinteractgetLine getContentsgetChar appendFile GHC.IO.HandlehClose GHC.Conc.IO threadDelay registerDelayioManagerCapabilitiesChangedensureIOManagerIsRunning closeFdWithGHC.Conc.SignalSignal HandlerFun setHandler runHandlersControl.Concurrent.MVarwithMVarMaskedwithMVarswapMVar modifyMVar_modifyMVarMasked_modifyMVarMasked modifyMVar mkWeakMVaraddMVarFinalizerSystem.IO.Unsafe unsafeFixIOControl.ExceptionHandlercatchesallowInterruptControl.Monad.ST.ImpfixSTSystem.IO.Error userErrorType tryIOErrorresourceVanishedErrorTypepermissionErrorType modifyIOError mkIOErrorisUserErrorType isUserErrorisResourceVanishedErrorTypeisResourceVanishedErrorisPermissionErrorTypeisPermissionErrorisIllegalOperationErrorTypeisIllegalOperationisFullErrorType isFullErrorisEOFErrorType isEOFErrorisDoesNotExistErrorTypeisDoesNotExistErrorisAlreadyInUseErrorTypeisAlreadyInUseErrorisAlreadyExistsErrorTypeisAlreadyExistsErrorioeSetLocation ioeSetHandleioeSetFileNameioeSetErrorTypeioeSetErrorStringioeGetLocation ioeGetHandleioeGetFileNameioeGetErrorTypeioeGetErrorStringillegalOperationErrorType fullErrorType eofErrorTypedoesNotExistErrorType catchIOErrorannotateIOErroralreadyInUseErrorTypealreadyExistsErrorTypeControl.Exception.Base TypeError RecUpdError RecSelError RecConErrorPatternMatchFailNonTermination NoMethodErrorNestedAtomicallytryJusttry onException mapException handleJusthandlefinally catchJustbracket_bracketOnErrorbracket GHC.Conc.Sync ThreadStatus ThreadRunningThreadFinished ThreadBlocked ThreadDiedThreadIdTVarSTMPrimMVar BlockReason BlockedOnSTMBlockedOnOther BlockedOnMVarBlockedOnForeignCallBlockedOnBlackHoleBlockedOnExceptionyield writeTVar unsafeIOToSTMthrowTothrowSTM threadStatusthreadCapabilitysetUncaughtExceptionHandlersetNumCapabilitiessetAllocationCounter runSparksretryreportStackOverflowreportHeapOverflow reportError readTVarIOreadTVarpseqparorElse numSparksnumCapabilities newTVarIOnewTVarnewStablePtrPrimMVar myThreadIdmkWeakThreadId labelThread killThreadgetUncaughtExceptionHandlergetNumProcessorsgetNumCapabilitiesgetAllocationCounterforkOnWithUnmaskforkOnforkIOWithUnmaskforkIOenableAllocationLimitdisableAllocationLimit childHandlercatchSTM atomicallyDynamic fromDynamicfromDyn dynTypeRepdynApplydynAppSomeAsyncException IOErrorType UserErrorUnsupportedOperationUnsatisfiedConstraints TimeExpired SystemErrorResourceVanishedResourceExhausted ResourceBusy ProtocolErrorPermissionDenied OtherError NoSuchThingInvalidArgument InterruptedInappropriateTypeIllegalOperation HardwareFaultEOF AlreadyExistsFixIOExceptionExitCode ExitFailure ExitSuccessDeadlockCompactionFailedBlockedIndefinitelyOnSTMBlockedIndefinitelyOnMVarAsyncException UserInterrupt ThreadKilled HeapOverflow StackOverflowAssertionFailedArrayExceptionIndexOutOfBoundsUndefinedElementAllocationLimitExceededuntangle stackOverflow ioExceptionioError heapOverflowcannotCompactPinnedcannotCompactMutablecannotCompactFunctionblockedIndefinitelyOnSTMblockedIndefinitelyOnMVarasyncExceptionToExceptionasyncExceptionFromExceptionallocationLimitExceeded Data.IORef modifyIORef' modifyIORef mkWeakIORefatomicWriteIORefatomicModifyIORefForeign.ForeignPtr.ImpnewForeignPtrEnv newForeignPtrmallocForeignPtrArray0mallocForeignPtrArray FinalizerPtrFinalizerEnvPtrwithForeignPtrtouchForeignPtrplusForeignPtrnewForeignPtr_mallocForeignPtrBytesmallocForeignPtrfinalizeForeignPtrcastForeignPtraddForeignPtrFinalizerEnvaddForeignPtrFinalizer GHC.IORefIORef writeIORef readIORefnewIORefatomicModifyIORef'GHC.IO MaskingStateUnmaskedMaskedInterruptibleMaskedUninterruptibleFilePathuninterruptibleMask_uninterruptibleMaskthrowIOstToIOmask_mask interruptiblegetMaskingStateevaluatecatch IOExceptionioe_type ioe_location ioe_handle ioe_filename ioe_errnoIOErrorioe_description userErrorunsupportedOperation GHC.Exception ErrorCallErrorCallWithLocationthrowGHC.Exception.Type Exception toExceptiondisplayException fromExceptionArithExceptionRatioZeroDenominatorLossOfPrecision DivideByZeroDenormal UnderflowOverflow Data.TypeableTypeRep typeRepTyContypeRepFingerprint typeRepArgstypeReptypeOf7typeOf6typeOf5typeOf4typeOf3typeOf2typeOf1typeOf splitTyConApp showsTypeRep rnfTypeRepmkFunTygcast2gcast1gcast funResultTyeqTcast tyConPackage tyConName tyConModuletyConFingerprint trLiftedReprnfTyConData.Functor.ConstConstgetConst traverse_ sequence_ sequenceA_ornotElemmsum minimumBy maximumBymapM_for_forM_foldrMfoldlMfind concatMapconcatasumanyandall Data.OldListzipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4wordsunzip7unzip6unzip5unzip4unwordsunlinesunionByunionunfoldr transposetails subsequences stripPrefixsortBysort singleton permutations partitionnubBynublines isSuffixOf isPrefixOf isInfixOf intersperse intersectBy intersect intercalateinsertByinsertinitsgroupBygroup genericTakegenericSplitAtgenericReplicate genericLength genericIndex genericDrop findIndices findIndex elemIndices elemIndex dropWhileEnddeleteFirstsBydeleteBydelete\\ Data.MonoidApgetApData.Semigroup.InternalSumgetSumProduct getProductEndoappEndoDualgetDualAnygetAnygetAltAllgetAll stimesMonoidstimesIdempotentData.OrdDowngetDown comparingclamp Foreign.PtrWordPtrIntPtr wordPtrToPtr ptrToWordPtr ptrToIntPtr intPtrToPtrfreeHaskellFunPtrForeign.StorableStorable pokeElemOff pokeByteOffpoke peekElemOff peekByteOffpeeksizeOf alignment freeStablePtrdeRefStablePtrcastStablePtrToPtrcastPtrToStablePtrunsafeCoerceUnliftedunsafeCoerceAddr unsafeCoerce Data.BitsXorgetXorIorgetIorIffgetIffAndgetAndoneBits Data.Char isSeparatorisNumberisMarkisLetter digitToInt Text.Readreads readMaybe readEitherreadrightspartitionEithersleftsisRightisLeft fromRightfromLefteither Data.ProxyProxyKProxy asProxyTypeOfControl.CategoryCategoryid.>>><<<Data.Type.Equality:~~:HRefl:~:ReflplusPtrnullPtr nullFunPtrminusPtrcastPtrToFunPtrcastPtrcastFunPtrToPtr castFunPtralignPtrNumericshowOct showIntAtBaseshowIntshowHex showHFloat showGFloatAlt showGFloat showFFloatAlt showFFloat showEFloatshowBin readSignedreadOctreadIntreadHex readFloatreadDecreadBin readParen readLitChar lexLitChar lexDigitslexText.ParserCombinators.ReadPrecReadPrec readS_to_Prec readPrec_to_S readPrec_to_P readP_to_PrecText.ParserCombinators.ReadPReadS showFloatfromRat floatToDigits byteSwap64 byteSwap32 byteSwap16 bitReverse8 bitReverse64 bitReverse32 bitReverse16 GHC.UnicodeGeneralCategoryUppercaseLetterTitlecaseLetter SurrogateSpacingCombiningMarkSpace PrivateUseParagraphSeparator OtherSymbolOtherPunctuation OtherNumber OtherLetterOpenPunctuation NotAssignedNonSpacingMarkModifierSymbolModifierLetter MathSymbolLowercaseLetter LineSeparator LetterNumber InitialQuoteFormat FinalQuote EnclosingMark DecimalNumberDashPunctuationCurrencySymbolConnectorPunctuationControlClosePunctuationtoUppertoTitletoLowerisUpperisSymbolisSpace isPunctuationisPrint isOctDigitisLowerisLatin1 isHexDigitisDigit isControl isAsciiUpper isAsciiLowerisAscii isAlphaNumisAlphageneralCategoryGHC.Bits FiniteBits finiteBitSizecountLeadingZeroscountTrailingZerosBitszeroBitsxor unsafeShiftR unsafeShiftLtestBitshiftRshiftLshiftsetBitrotateRrotateLrotatepopCountisSigned complementBit complementclearBit bitSizeMaybebitSizebit.&..|.toIntegralSizedtestBitDefaultpopCountDefault bitDefault showSignedodd numeratorlcmgcdeven denominator^^^%GHC.Charchr GHC.STRefSTRef writeSTRef readSTRefnewSTRefrunSTShowSshows showString showParen showLitCharshowChar intToDigitzipWith3zipWithzip3unzip3unzip takeWhiletaketailsplitAtspanscanr1scanrscanl1scanl'scanlreverse replicaterepeatlookuplastiterate'iterateinitheadfoldl1' dropWhiledropcyclebreak!! Data.Maybe maybeToListmaybemapMaybe listToMaybe isNothingisJust fromMaybefromJust catMaybes Data.Boolbool Data.Functiononfix& Data.Functorvoid<&><$>$>uncurryswapcurryVersion versionTags versionBranch makeVersion GHC.IO.UnsafeunsafePerformIOunsafeInterleaveIOunsafeDupablePerformIOGHC.MVarMVar tryTakeMVar tryReadMVar tryPutMVartakeMVarreadMVarputMVarnewMVar newEmptyMVar isEmptyMVarsubtract MonadPlusmplusmzero Alternativesomemany<|>emptywhenuntilordliftM5liftM4liftM3liftM2liftMliftA3liftAflipconstasTypeOfap=<<<**>$!GHC.Err undefinederrorWithoutStackTraceerrorstimesIdempotentMonoid SomeException&&not||*contravariant-1.5.5-596ADKsI2Mu9h4lPQxvtWT$Data.Functor.Contravariant.DivisiblechosenlostliftD conquereddivided Divisibledivideconquer Decidablechooselose stm-2.5.0.2Control.Monad.STMcheckControl.Concurrent.STM.TArrayTArrayControl.Concurrent.STM.TVarswapTVar stateTVar modifyTVar' modifyTVar mkWeakTVarControl.Concurrent.STM.TQueueTQueue writeTQueue unGetTQueue tryReadTQueue tryPeekTQueue readTQueue peekTQueue newTQueueIO newTQueue isEmptyTQueue flushTQueueControl.Concurrent.STM.TMVarTMVar tryTakeTMVar tryReadTMVar tryPutTMVar takeTMVar swapTMVar readTMVarputTMVar newTMVarIOnewTMVarnewEmptyTMVarIO newEmptyTMVar mkWeakTMVar isEmptyTMVarControl.Concurrent.STM.TChanTChan writeTChan unGetTChan tryReadTChan tryPeekTChan readTChan peekTChan newTChanIOnewTChannewBroadcastTChanIOnewBroadcastTChan isEmptyTChandupTChan cloneTChanControl.Concurrent.STM.TBQueueTBQueue writeTBQueue unGetTBQueuetryReadTBQueuetryPeekTBQueue readTBQueue peekTBQueue newTBQueueIO newTBQueue lengthTBQueue isFullTBQueueisEmptyTBQueue flushTBQueue)uuid-types-1.0.5.1-Lsrmlh5d3vAIpeTuWzSRL3Data.UUID.Types.InternalUUIDinspectTBQueuecorrectFlushTBQueueflushNonEmptyTBQueuesplitWhileJust receiveSingleRunnergetIdstartreceiveMultiplereleaseWithExceptionreleaseNormallyTellbothoneWait$sel:kill:Daemon$sel:wait:Daemon$sel:tell:Actor$sel:kill:Actor$sel:wait:Actor$sel:ids:Actor