z!      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Trustworthy0AJTDDynamic values equipped with the ability to compare to other values.An empty WeakDict.Size of a WeakDict."Filtering contents by a predicate.sInsert a key-value pair into the dictionary, in such a way as that the pair does not keep the key (or value) alive. :Deletes a key-value pair, updating the original structure. IDeletes a key-value pair, so that the original structure is not affected. Look up a value based on a key.    Safe02TA simple RPC server.   Trustworthy0Thrown by the writer function. Construct a channel from a list.^Take the first element from a channel, and a channel representing the remainder of the output.Create a new channel. The first return value is a function that can be used to add values to the channel. The second return value is the channel itself.The first return value is a thunk that returns values from the channel successively, starting from the position of the parameter channel. The second thunk can be used to retrieve the position of the channel after all the reads made using the first thunk.HCreate a channel which is initially empty, but accumulates new elements.   Trustworthy09:;T=A type class of arrows that support some form of concurrency.Runs an associative folding function on the given array. Note: this function only spawns enough threads to make effective use of the  capabilities. Any two list elements may be processed sequentially or concurrently. To get parallelism, you have to set the numCapabilities value, e.g. using GHC's +RTS -N flag.TThe first parameter is the number of computations which are indexed from 0 to n - 1.For internal errors. If a procedure throws this, some threads it created may still be running. It is thrown separately from ExceptionList.%For exceptions caused by caller code.The next function takes an implicit parameter ?seq. Set it to True if you want to only spawn threads for the capabilities (same as  assocFold^; good for speed). If you need all the actions to be executed concurrently, set it to False.2Version of concF specialized for two computations.mRuns several computations in parallel, and returns one of their results (terminating the other computations). Trustworthy02IT PMeasurements are a basic building block for pull-based FRP. They are like futures in that: when you have something running on a separate thread, you can use a Measurement to wait on it. They also establish a measurement of an an event occurrence time. Primitives for Measurements, make this measurement inside an STM (software transactional memory) block. The STM system induces a global time ordering of transactions. I piggyback on top of this mechanism to get a global time ordering of measurement as well. This is an attempt to answer the tricky question of how to measure.&(Wait for a time, then measure that time.'Give the parameter time as the time of the measurement. This is "blind" to system lags that may disrupt the timing of a control signal.+Decide which of the  s comes first. I rely on the , subsystem to find a consistent ordering..*Extract value and time of the measurement. !"#$%&'()*+,-./01234567 !"#$%&'()*+,-./0 !"#$%&'()*+,-./0 !"#$%&'()*+,-./01234567 Trustworthy02JT :Prooty self-explanatory.;7The "scan" primitive is analogous to "scanl" for lists.<qA primitive like "switch" is the main way of implementing behaviors that can be switched in and out as required.=oThe main use of "withRemainder" is to implement manual aging of inputs. It helps prevent space and time leaks.>8Construct a channel in order to receive external events.?2Gets the current time along with every occurrence.@Event streams are here presented using the publisher-subscriber model (push-based handling in contrast to the pull-based handling of MeasurementWrapper). Such an event is represented by a subscription function and a callback. The subscription function finishes fast allowing the caller to continue.AThe motivation for introducing this data type is that, while the "'Measurement'/'MeasurementWrapper' system is fast, its intensive use of memory cells that need to be garbage collected means that it may not be fast enough for some purposes.C Extracts an @h from a list of measurements. No attempt has been made to sync up the time order of different calls to C4. For this reason, it is not true that "eFromML ml " eFromML ml2" equals "eFromML (ml merge8 ml2)"; please do any necessary syncing before calling C.EMRun an event -- see .Basic module for a way to run with a Windows event loop.9:;<=>?@ABCDEFGHIJKLMNOPQ9:;<=>?@ABCDEFGHIJ@ABCDE9:;<=>?FGHIJ9:;<=>?@ABCDEFGHIJKLMNOPQSafe02 STUVWXYZ[\]^_STUVWXYSTUVWXY STUVWXYZ[\]^_ Trustworthy2c7A convenience to generate a tick on a regular interval.d8This functional can be used to terminate an event early.fGive the event times of e!, but latching onto the ticks of e2 . Prior to e2 ticking, gives x.KSame deal as the previous, but holding is delayed. That is, if a tick from e follows a value from e2: but happens at the same nominal time, the prior value of e2 is used and not said value.hPair values from e" to simultaneous occurrences from a0. Multiple occurrences are paired up as with . Excess occurrences from aG are discarded, while excess WithAtoms falses atomsoccurrences from e! are paired with 'N(E simultE #-)i+Set-theoretical operations on event streamspCalms? an event stream so that only one event occurs at a given time.rEvent versions of  and .wGet the remainder events of e0 looking forward from particular occurrences in ax Waits until a ticks before it starts ticking.yDivides e# into chunks based on the ticks of aE, and returns those chunks in an event stream. The occurrences of e" prior to the first occurrence of a are omitted.Keep a history of tB seconds as a "moving window" -- giving values for the behavior, t^ seconds prior to the current time. Outside of this moving window, gives a constant behavior.`This functional should be enough for all "history-dependent" behaviors -- there should be some tQ which is a constant bound on a behavior's history, in order to conserve memory.A scan for behaviors.[Collect the event occurrences and add them together into a single behavior, using a monoid.)Each event occurrence casts a shadow for t seconds in the behavior. Delay by t+ seconds before continuing as the behavior.&Slow down the behavior by a factor of x.&Estimate the derivative of a behavior."Adaptively supersample a behavior.Integral of behaviorsGiven a differentiable behavior, find the times at which a certain value could be found. The result is an event which ticks when (an approximation of) the value is encountered.5bcdefghijklmnopqrstuvwxyz{|}~*bcdefghijklmnopqrstuvwxyz{|}~*cdefghjiklmnopqsrtuvwxyb{|}~z4bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGGHIJKLMNOPQRSTUVWXYYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~7 ( ')reactivity-0.3.2.4-JnwQDwjLwRlIMlYBT9d8TI Data.WeakDictFRP.Reactivity.RPCFRP.Reactivity.MeasurementFRP.Reactivity.AlternateEvent!FRP.Reactivity.MeasurementWrapperFRP.Reactivity.CombinatorsControl.CUtils.FChanControl.CUtils.ConcWeakDictDynvaluemakeDyn emptyWeaksizeWeak assocsWeak filterWeak insertWeakfastDeleteWeak deleteWeak lookupWeakfastDeleteWeakDyn$fEqDynRpcFinishedExceptionRPCunRPCrpcFork_nonDispatchedIO rpcFinally rpcServer killRpcServer$fExceptionRpcFinishedException$fMonadCatchRPC$fMonadThrowRPC $fMonadIORPC$fApplicativeRPC $fMonadRPC $fFunctorRPC$fShowRpcFinishedException MeasurementEmptywait stmActionassertMeasurementmeasureawait blindAwaitfromList assertChanchanfirstleMeas mergeStreamsgetValuecopointtime$fAlternativeMeasurement$fMonoidMeasurement$fMonadPlusMeasurement$fApplicativeMeasurement$fMonadMeasurement$fEqMeasurement$fShowMeasurement$fFunctorMeasurement EventStream eventFromListscanswitch withRemainderchannel adjoinTimeEventunEventeFromMLnonDispatchedIOrunEvent filterMaybesdelaydelaysfmap'scan'$fEventStreamEvent$fAlternativeEvent$fApplicativeEvent$fMonadIOEvent $fMonoidEvent$fMonadPlusEvent $fMonadEvent$fFunctorEventMeasurementWrapperunMeasurementWrapperwrapOne extractMW measUntil wrapperToList$fEventStreamMeasurementWrapper$fAlternativeMeasurementWrapper$fApplicativeMeasurementWrapper$fMonoidMeasurementWrapper$fMonadPlusMeasurementWrapper$fMonadMeasurementWrapper$fFunctorMeasurementWrapper$fShowMeasurementWrapperBehaviortickuntilEeitherOfholdEzipEsimultE differenceE intersectEunionEfilterEjustE duplicateEwithPrevcalmEcountdropEtakeEonceeveryNthslowErestsstartAtsplitEsumEswitchersteppersnapshotflipFlophistoryscanBmonoidthrottledelayBslowextractB duplicateB derivative supersampleintegral threshold$fApplicativeBehavior$fAlternativeBehavior$fMonoidBehavior$fFunctorBehavior WeakDict0ConsDoneReadingException listToChantakeChannewChan makeConsumerdupChanChanaddChan tryTakeChan chanContents$fExceptionDoneReadingException Concurrent arr_assocFold arr_concF_ ConcException ExceptionListconcconcPoneOf arr_concF arr_oneOfF simpleConc_divideUp getExceptions assocFold partConc_concF_concFconc_ unsafeFreeze' partConcF progressConcF partOneOfFoneOfF$fConcurrent(->)$fConcurrentKleisli$fExceptionConcException$fExceptionExceptionListbase GHC.Conc.SyncSTMeitherOr_assertMeasurement delayUntilGHC.Basemplus retryLoop eventSwitchswapGHC.ListzipdroptakeSwitchercozipgroupOnungroup_monoidcutoffepsilon