[      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ Safe-Infered (A time-varying value, British spelling. ?A monad for transactional reactive operations. Execute it from [ using . @A stream of events. The individual firings of events are called 'event occurrences'. )A time-varying value, American spelling. Execute the specified / within a new transaction, blocking the caller P until all resulting processing is complete and all callbacks have been called. E This operation is thread-safe, so it may be called from any thread. State changes to  ? values occur after processing of the transaction is complete. HReturns an event, and a push action for pushing a value into the event. /Listen for firings of this event. The returned IO () is an IO action > that unregisters the listener. This is the observer pattern. To listen to a  use listen (values b) handler An event that never fires. .Merge two streams of events of the same type. DIn the case where two event occurrences are simultaneous (i.e. both B within the same transaction), both will be delivered in the same E transaction. If the event firings are ordered for some reason, then D their ordering is retained. In many common cases the ordering will  be undefined. GUnwrap Just values, and discard event occurrences with Nothing values. FCreate a behavior with the specified initial value, that gets updated - by the values coming through the event. The ' current value' of the behavior # is notionally the value as it was 'at the start of the transaction'. L That is, state updates caused by event firings get processed at the end of  the transaction. :An event that gives the updates for the behavior. It doesn't do any equality % comparison as the name might imply. GAn event that is guaranteed to fire once when you listen to it, giving @ the current value of the behavior, and thereafter behaves like  , ' firing for each update to the behavior' s value. CSample the behavior at the time of the event firing. Note that the ' current value'  of the behavior that':s sampled is the value as at the start of the transaction I before any state changes of the current transaction are applied through  s. OUnwrap an event inside a behavior to give a time-varying event implementation. ZUnwrap a behavior inside another behavior to give a time-varying behavior implementation. Execute the specified  action inside an event. (Obtain the current value of a behavior. If there'Bs more than one firing in a single transaction, combine them into - one using the specified combining function. IIf the event firings are ordered, then the first will appear at the left 9 input of the combining function. In most common cases it's best not to K make any assumptions about the ordering, and the combining function would  ideally be commutative. ;Throw away all event occurrences except for the first one.  Create a new / along with an action to push changes into it.  American spelling.  Create a new / along with an action to push changes into it.  British spelling. EMerge two streams of events of the same type, combining simultaneous  event occurrences. HIn the case where multiple event occurrences are simultaneous (i.e. all I within the same transaction), they are combined using the same logic as  . BOnly keep event occurrences for which the predicate returns true. 2Variant of snapshotWith that throws away the event'!s value and captures the behavior's. 4Let event occurrences through only when the behavior's value is True.  Note that the behavior'6s value is as it was at the start of the transaction, P that is, no state changes from the current transaction are taken into account. QTransform an event with a generalized state loop (a mealy machine). The function S is passed the input and the old state and returns the new state and output value. STransform a behavior with a generalized state loop (a mealy machine). The function S is passed the input and the old state and returns the new state and output value. ?Accumulate on input event, outputting the new state each time. *Accumulate on input event, holding state. CCount event occurrences, starting with 1 for the first occurrence. ![Count event occurrences, giving a behavior that starts with 0 before the first occurrence. " Initial behavior value Initial behavior value  !"  !"  !  !None/*(A time-varying value, British spelling. +)A time-varying value, American spelling. ,@A stream of events. The individual firings of events are called 'event occurrences'. -?A monad for transactional reactive operations. Execute it from [ using 0. .Phantom type for use with  type class. 0Execute the specified -/ within a new transaction, blocking the caller P until all resulting processing is complete and all callbacks have been called. E This operation is thread-safe, so it may be called from any thread. State changes to 6? values occur after processing of the transaction is complete. 1HReturns an event, and a push action for pushing a value into the event. 2/Listen for firings of this event. The returned IO () is an IO action > that unregisters the listener. This is the observer pattern. To listen to a + use listen (values b) handler 3An event that never fires. 4.Merge two streams of events of the same type. DIn the case where two event occurrences are simultaneous (i.e. both B within the same transaction), both will be delivered in the same E transaction. If the event firings are ordered for some reason, then D their ordering is retained. In many common cases the ordering will  be undefined. 5GUnwrap Just values, and discard event occurrences with Nothing values. 6FCreate a behavior with the specified initial value, that gets updated - by the values coming through the event. The ' current value' of the behavior # is notionally the value as it was 'at the start of the transaction'. L That is, state updates caused by event firings get processed at the end of  the transaction. 7:An event that gives the updates for the behavior. It doesn't do any equality % comparison as the name might imply. 8HAn event that is guaranteed to fires once when you listen to it, giving @ the current value of the behavior, and thereafter behaves like 7, ' firing for each update to the behavior' s value. 9CSample the behavior at the time of the event firing. Note that the ' current value'  of the behavior that':s sampled is the value as at the start of the transaction I before any state changes of the current transaction are applied through 6s. :OUnwrap an event inside a behavior to give a time-varying event implementation. ;ZUnwrap a behavior inside another behavior to give a time-varying behavior implementation. <Execute the specified - action inside an event. =(Obtain the current value of a behavior. >If there'Bs more than one firing in a single transaction, combine them into - one using the specified combining function. IIf the event firings are ordered, then the first will appear at the left 9 input of the combining function. In most common cases it's best not to K make any assumptions about the ordering, and the combining function would  ideally be commutative. ?;Throw away all event occurrences except for the first one. @ Create a new +/ along with an action to push changes into it.  American spelling. A Create a new +/ along with an action to push changes into it.  British spelling. BEMerge two streams of events of the same type, combining simultaneous  event occurrences. HIn the case where multiple event occurrences are simultaneous (i.e. all D within the same transaction), they are combined using the supplied D function. The output event is guaranteed not to have more than one # event occurrence per transaction. HThe combine function should be commutative, because simultaneous events , should be considered to be order-agnostic. C=Only keep event occurrences for which the predicate is true. D Variant of 9 that throws away the event'!s value and captures the behavior's. E4Let event occurrences through only when the behavior's value is True.  Note that the behavior'6s value is as it was at the start of the transaction, P that is, no state changes from the current transaction are taken into account. FQTransform an event with a generalized state loop (a mealy machine). The function S is passed the input and the old state and returns the new state and output value. GSTransform a behavior with a generalized state loop (a mealy machine). The function S is passed the input and the old state and returns the new state and output value. H?Accumulate on input event, outputting the new state each time. I*Accumulate on input event, holding state. JCCount event occurrences, starting with 1 for the first occurrence. K[Count event occurrences, giving a behavior that starts with 0 before the first occurrence. \EQueue the specified atomic to run at the end of the priority 1 queue OUnwrap an event's listener machinery. P/Listen for firings of this event. The returned IO () is an IO action > that unregisters the listener. This is the observer pattern. Q Variant of 2: that allows you to initiate more activity in the current 6 transaction. Useful for implementing new primitives. R Returns a $: for registering listeners, and a push action for pushing  a value into the event. SHReturns an event, and a push action for pushing a value into the event. TAdd a finalizer to an event. UAdd a finalizer to a listener. ]Add a finalizer to a Reactive. VListen to an input event/behavior and return an " that can be # attached to an output event using W. WHCause the things listened to with unlistenize to be unlistened when the 0 specified listener is not referenced any more. ^EListen to the value of this behavior with an initial callback giving I the current value. Can get multiple values per transaction, the last of ; which is considered valid. You would normally want to use  listenValue, * which removes the extra unwanted values. YEQueue the specified atomic to run at the end of the priority 2 queue Z Variant of  listenValue: that allows you to initiate more activity in the current 6 transaction. Useful for implementing new primitives. |"_`abc#defghijkl$%&mnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@Initial behavior value AInitial behavior value BCDEFGHIJKL\MNOPQRSTU]VWX^YZz"_`abc#defghijkl$%&mnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL\MNOPQRSTU]VWX^YZ]"_`abc#defghijkl$%&mnopqrstuvwxyz{|}~'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL\MNOPQRSTU]VWX^YZNone"#$%&'()/1LMNOPQRSTUVWXYZQZYM$%&ONP#S1RTUL"W'()/XVNone!*+,-.0123456789:;<=>?@ABCDEFGHIJK!.-01@A2,+*3456789:;<=>BCDEFGHIJK?      !"#$%&'())*++, -.    !"#$%& /0123456789:;<=>?@AB'CCDE(FGHIIJKLMMNOPPQQRSTUVVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{ |}~sodium-0.5.0.2FRP.Sodium.ContextFRP.Sodium.Internal FRP.SodiumFRP.Sodium.Plain BehaviourContextReactiveEventBehaviorsync ioReactivenewEventlistennevermerge filterJustholdchangesvalues snapshotWithswitchEswitchexecutesamplecoalesceonce newBehavior newBehaviour mergeWithfilterEsnapshotgatecollectEcollectaccumEaccumcountEcount UnlistenerNodeListen runListen_Sample unSample_PlainunSample scheduleLast runListen getListen linkedListen listenTrans newEventImplnewEventLinked finalizeEventfinalizeListen unlistenizeaddCleanup_ListenaddCleanup_SampleschedulePrioritizedlistenValueTransghc-prim GHC.TypesIO scheduleEarlyfinalizeSamplelistenValueRaw BehaviorState bsCurrentbsUpdatenoIDnoRank noListenersObserverobNextID obListeners obFirings PartitionpaLock paNextNodeIDNodeID ReactiveStateasQueue1asQueue2asFinalID PriorityQueue pqNextSeqpqDirtypqQueuepqDataSequencePriorityQueueable priorityOf modifyMVar modifyMVar_putMVar partitionnewPriorityQueuepushPriorityQueuedirtyPriorityQueuepopPriorityQueue unReactivenewNodewraptouchlinkNodeensureBiggerThan unlinkNodeconstantdirtyPrioritizedlastFiringOnlyeventify$fApplicativeBehavior$fFunctorBehavior$fFunctorEvent$fMonadFixReactive$fMonadReactive$fApplicativeReactive$fFunctorReactive$fPriorityQueueableMaybe$fContextPlain getListenRaw evCacheRefunderlyingEvent behSample