:12q<      !"#$%&'()*+,-./0123456789:;Safe"'()3579;>KLNU  Signal flow3A little like a function: takes a value of type a and returns one of type cTurn the result of % into something you can use in an  graphTPass in a signal flow graph and get back a reference you can use to hot-swap with}Given a node in the graph, and an input to that node, return the output of that node and the "new node" with updated state$Apply a function to the input signal:Compose two signal flows into one. The equivalent of '(.)',Accumulate a value. "Folding over the past". Like 3 but with no default. Useful for functions like min> which don't have a semantics of a result from one argument This name may change NZip two signal flows together into one which returns a signal of two-tuples AFilter out the incoming signal by a predicate. Also check out QSwap out part or whole of a signal flow graph with a new one of the same type.<=>?@ABCDE FGHI    <=>?@ABCDE FGHISafe"UVRepresentation of side-effecting actions. Usually the final result of the FRP graphHot-swap in a fold functioncFirst argument is the default value, in case the graph you're replacing hasn't fired at all yetHandy for developing$Add all values from the input streamHotswap version of )Multiply all values from the input streamHotswap version of JCount of all values -- essentially the number of times the SFlow has fired:(If you want to count e.g. what's passed the predicate in   , use  instead)Count the number of J values we've seen(Useful after e.g. a  )Hotswap version of  countJust by steps -- e.g. [0,3,6] instead of [0,1,2] Hotswap version of !Max of all values"Hotswap version of !#Min of all values$Hotswap version of #%K new values onto the right&Hotswap version of %'K new values onto the left(Hotswap version of ')K all input signal values@(If you care whether they're appended on the right or left, use ' or %)*Hotswap version of )+FReturn True if all input signal values have been True, otherwise False,5Return True if any input signal values have been true-KReturn True if any input signals have passed the predicate, False otherwise.Hotswap version of -/KReturn True if all input signals have passed the predicate, False otherwise0Hotswap version of /1OReturns list of all values - at the head of the list is the most-recent element3JReturn True if the input signal has ever contained the element, else False4KReturn True if the input signal has never contained the element, else False* !"#$%&'()*+,-L./M0123456( !"#$%&'()*+,-./0123456(!"#$+,-./0)*'(%&123456 ( !"#$%&'()*+,-L./M0123456Safe789789978789SafeNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789SafeU::::Safe;;;;Safe:;      !"#$%&'()*+,-./0123456789:;<=>??@ABCDEFGHIJKLMNOPQRSQRTUVQWXQYZQY[QY\QY]QY^QY_QY`QYaQYbQYcQYdQYeQYfQYghijhklhmnhmohmphmqhrshrthruhrvhrwhrxhryhrzhr{hr|hr}hr~hrhrhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhmidai_6LeFGt7pJfNAmN2oDahNjz Midair.Core Midair.HandyMidair.GetCharMidair.Examples.HotswapCountMidair.Examples.MaxToMinsFilterWDefaultMidairMidair.Examples SFNodeRefSFlownRef mkNodeRef fireGraph fireGraphIOsMapsComposesFoldsFoldNoDefault sFoldAccumsZipsFilter hotSwapSTMhotSwapFxFx_Void Fx_ReturnrunFxsFoldHSsPrint sPutStrLnsSumsSumHSsProduct sProductHS sCountFires sCountFiresBysCountFiresByHS sCountJust sCountJustHS sCountJustBysCountJustByHSsMaxsMaxHSsMinsMinHS sMappendR sMappendRHS sMappendL sMappendLHSsMappend sMappendHSsAndsOrsAnysAnyHSsAllsAllHSsToList sToListHSsElemsNotElem sMapMaybeGetChar runGetChar hotswapCounthotswapMaxToMinSFNodeRef_InternalSF_Map SF_ComposeSF_FoldP SF_FoldAccumSF_Zip SF_Filter SF_NodeRef mkNodeRefSTM fireGraph' $fArrowSFlow$fCategory*SFlow$fApplicativeSFlow$fFunctorSFlowbaseGHC.BaseJustmappendsAnyFsAllF GHC.Conc.IO registerDelay GHC.Conc.Sync writeTVarreadTVar readTVarIO newTVarIOnewTVaralwaysalwaysSucceedscatchSTMthrowSTMorElseretry atomicallySTMTVarstm_EyxFXFfnfY05IrjGaqCxeDControl.Monad.STMcheckControl.Concurrent.STM.TArrayTArrayControl.Concurrent.STM.TVar mkWeakTVarswapTVar modifyTVar' modifyTVarControl.Concurrent.STM.TMVar mkWeakTMVar isEmptyTMVar swapTMVar tryReadTMVar readTMVar tryPutTMVarputTMVar tryTakeTMVar takeTMVarnewEmptyTMVarIO newEmptyTMVar newTMVarIOnewTMVarTMVarControl.Concurrent.STM.TChan cloneTChan isEmptyTChan unGetTChandupTChan tryPeekTChan peekTChan tryReadTChan readTChan writeTChannewBroadcastTChanIOnewBroadcastTChan newTChanIOnewTChanTChanControl.Concurrent.STM.TQueue isEmptyTQueue unGetTQueue tryPeekTQueue peekTQueue tryReadTQueue readTQueue writeTQueue newTQueueIO newTQueueTQueueControl.Concurrent.STM.TBQueue isFullTBQueueisEmptyTBQueue unGetTBQueuetryPeekTBQueue peekTBQueuetryReadTBQueue readTBQueue writeTBQueue newTBQueueIO newTBQueueTBQueue fToStartWith fToSwapInshowVal wait10Secs