n      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m  Ertugrul Soeylemez <es@ertes.de>The state of the wire. Random number generator. Request counter. ,A wire is a network of signal transformers.  Time. 4Signal functions are wires over the identity monad. Functor for output signals. >Events are signals, which can be absent. They usually denote ( discrete occurences of certain events. BInhibition exception with an informative message. This exception @ is the result of signal inhibition, where no further exception  information is available. Clean up wire state.  Construct an  wrapped in a n. Initialize wire state. @Create a generic wire from the given function. This is a smart , constructor. Please use it instead of the  constructor.  Construct an  wrapped in a n with a 9 message indicating that a certain event did not happen. +Extract the transition function of a wire. o)Map over the result of a signal network. p7Identity signal network and signal network sequencing. q The zero arrow always inhibits. r;Left-biased signal network combination. If the left arrow = inhibits, the right arrow is tried. If both inhibit, their  combination inhibits. s@Value recursion. Warning: Recursive signal networks must never  inhibit. Use FRP.NetWire.Tools.exhibit or FRP.NetWire.Event.event. tCSignal routing. Unused routes are frozen, until they are put back  into use. u$Arrow interface to signal networks. v*Applicative interface to signal networks. w!This instance corresponds to the x and y  instances.       Ertugrul Soeylemez <es@ertes.de> AReactive sessions with the given input and output types over the % given monad. The monad must have a z instance to be % usable with the stepping functions. False, if in use. State of the last instant. Time of the last instant. Wire for the next instant. CFeed the given input value into the reactive system performing the  next instant using real time.  Input value. Session to step. System' s output. CFeed the given input value into the reactive system performing the * next instant using the given time delta.  Time delta.  Input value. Session to step. System' s output. CFeed the given input value into the reactive system performing the = next instant, which is at the given time. This function is  thread-safe. )Absolute time of the instant to perform.  Input value. Session to step. System' s output. CFeed the given input value into the reactive system performing the = next instant, which is at the given time. This function is not  thread-safe. )Absolute time of the instant to perform.  Input value. Session to step. System' s output. {&Perform an interlocked step function. &The session to mark as locked for the $ duration of the given computation. Computation to perform. Result. 7Initialize a reactive session and pass it to the given  continuation. Initial wire of the session. !Continuation, which receives the  session data.  Continuation' s result.     Ertugrul Soeylemez <es@ertes.de>!APerform the next instant of a pure wire over the identity monad. ")Perform the next instant of a pure wire. !"!"!" Ertugrul Soeylemez <es@ertes.de>#>Override the output value at the first non-inhibited instant. <Same inhibition properties as argument wire. Same feedback  properties as argument wire. $;Override the input value, until the wire starts producing. <Same inhibition properties as argument wire. Same feedback  properties as argument wire. %Apply a function to the wire'$s output at the first non-inhibited  instant. <Same inhibition properties as argument wire. Same feedback  properties as argument wire. &Apply a function to the wire's input, until the wire starts  producing. <Same inhibition properties as argument wire. Same feedback  properties as argument wire. '!This function corresponds to the | function for lists. F Begins with an initial output value. Each time an input function is F received, it is applied to the current accumulator and the new value  is emitted. "Never inhibits. Direct feedback. (8The constant wire. Please use this function instead of  arr (const  c). Never inhibits. )BOne-instant delay. Delay the signal for an instant returning the E argument value at the first instant. This wire is mainly useful to , add feedback support to wires, which wouldn't support it by  themselves. For example, the FRP.NetWire.Analyze.avg wire does not 6 support feedback by itself, but the following works:  ' do rec x <- delay 1 <<< avg 1000 -< x "Never inhibits. Direct feedback. *@Turn a continuous signal into a discrete one. This transformer E picks values from the right signal at intervals of the left signal. 4The interval length is followed in real time. If it' s zero, then  this wire acts like  second id. $Never inhibits. Feedback by delay. +Duplicate a value to a tuple. ,This function corresponds to }! for exceptions, allowing you to & observe inhibited signals. See also FRP.NetWire.Event.event. <Never inhibits. Same feedback properties as argument wire. -,Floating point modulo operation. Note that fmod n 0 = 0. .'Inhibit, when the left signal is true. ,Inhibits on true left signal. No feedback. /@Effectively prevent a wire from rewiring itself. This function C will turn any stateful wire into a stateless wire, rendering most  wires useless. CNote: This function should not be used normally. Use it only, if  you know exactly what you' re doing. DSame inhibition properties as first instant of argument wire. Same 8 feedback properties as first instant of argument wire. 0Keep the latest output. ?Inhibits until first signal from argument wire. Same feedback  properties as argument wire. 11Identity signal transformer. Outputs its input. $Never inhibits. Feedback by delay. 2>Unconditional inhibition with the given inhibition exception. Always inhibits. 3-Keep the value in the first instant forever. $Never inhibits. Feedback by delay. 4$Apply an arrow to a list of inputs. 5(Inhibit, when the left signal is false. -Inhibits on false left signal. No feedback. 6BSample the given wire at specific intervals. Use this instead of  *9, if you want to prevent the signal from passing through 9 the wire all the time. Returns the most recent result. CThe left signal interval is allowed to become zero, at which point 9 the signal is passed through the wire at every instant. >Inhibits until the first result from the argument wire. Same ' feedback properties as argument wire. 7CWait for the first signal from the given wire and keep it forever. ?Inhibits until signal from argument wire. Direct feedback, if 6 argument wire never inhibits, otherwise no feedback. 8Swap the values in a tuple. 9Get the local time. Never inhibits. :=Get the local time, assuming it starts from the given value. Never inhibits. #$%&'()*+,-./0123456789:(19:')*03.25,/67#$%&4+-8#$%&'()*+,-./0123456789: Ertugrul Soeylemez <es@ertes.de> ;Decoupled variant of A. <Decoupled variant of B. =Decoupled variant of C. >Decoupled variant of D. ?DRoute signal to a collection of signal functions using the supplied D routing function. If any of the wires inhibits, the whole network  inhibits. @ABroadcast signal to a collection of signal functions. If any of ? the wires inhibits, then the whole parallel network inhibits. A>Recurrent parallel routing switch. This combinator acts like  ?@, but takes an additional event signal, which can transform the 2 set of wires. This is the most powerful switch.  Just like ?1 if any of the wires inhibits, the whole network  inhibits. B@Recurrent parallel broadcast switch. This combinator acts like  @@, but takes an additional event signal, which can transform the  set of wires.  Just like @1 if any of the wires inhibits, the whole network  inhibits. C>Combinator for recurrent switches. The wire produced by this F switch takes switching events and switches to the wires contained in 6 the events. The first argument is the initial wire. DCThis is the most basic switching combinator. It is an event-based  one-time switch. FThe first argument is the initial wire, which may produce a switching D event at some point. When this event is produced, then the signal E path switches to the wire produced by the second argument function. ;<=>?@ABCD D>C=@B<?A; ;<=>?@ABCD Ertugrul Soeylemez <es@ertes.de>E:Choose a unique identifier when switching in and keep it. Never inhibits. EEE Ertugrul Soeylemez <es@ertes.de>F6Impure noise between 0 (inclusive) and 1 (exclusive). Never inhibits. G7Impure noise between -1 (inclusive) and 1 (exclusive). Never inhibits. HImpure noise. Never inhibits. I8Impure noise between 0 (inclusive) and the input signal C (exclusive). Note: The noise is generated by multiplying with a  ~", hence the precision is limited. $Never inhibits. Feedback by delay. J Pure noise. For impure wires it' s recommended to use the impure  noise generators. Never inhibits. K+Pure noise in a range. For impure wires it's recommended to use  the impure noise generators. $Never inhibits. Feedback by delay. LImpure random boolean. Never inhibits. FGHIJKLFGHILJKFGHIJKL Ertugrul Soeylemez <es@ertes.de>M<Execute the IO action in the input signal at every instant. ENote: If the action throws an exception, then this wire inhibits the  signal. %Inhibits on exception. No feedback. NDLift the given monadic computation to a wire. The action is run at  every instant. CNever inhibits. Same feedback behaviour as the given computation. MNMNMN  Ertugrul Soeylemez <es@ertes.de>OAProduce a signal once after the specified delay and never again.  The event'0s value will be the input signal at that point. P@Produce an event according to the given list of time deltas and G event values. The time deltas are relative to each other, hence from ! the perspective of switching in [(1, a), (2, b), (3, c)]  produces the event a after one second, b after three seconds  and c after six seconds. QBEvent dam. Collects all values from the input list and emits one  value at each instant. CNote that this combinator can cause event congestion. If you feed 9 values faster than it can produce, it will leak memory. R6Delay events by the time interval in the left signal. CNote that this event transformer has to keep all delayed events in A memory, which can cause event congestion. If events are fed in B faster than they can be produced (for example when the framerate , starts to drop), it will leak memory. Use delayEventSafe to  prevent this. SADelay events by the time interval in the left signal. The event B queue is limited to the maximum number of events given by middle G signal. If the current queue grows to this size, then temporarily no  further events are queued. =As suggested by the type, this maximum can change over time.  However, if it'1s decreased below the number of currently queued % events, the events are not deleted. T@Drop the given number of events, before passing events through. U?Timed event gate for the right signal, which begins closed and > opens after the time interval in the left signal has passed. V?Produce a single event with the right signal whenever the left  signal switches from  to . W;Whenever the predicate in the first argument switches from   to ; for the input signal, produce an event carrying the value E given by applying the second argument function to the input signal. X?Produce a single event carrying the value of the input signal, ' whenever the input signal switches to . Y Variant of ,, which produces a  instead of an  . <Never inhibits. Same feedback properties as argument wire. Z/Never produce an event. This is equivalent to 2 , but with 4 a contextually more appropriate exception message. [$Suppress the first event occurence. \7Produce an event at the first instant and never again. ]?Emit the right signal event each time the left signal interval  passes. ^DEach time the signal interval passes emit the next element from the  given list. _BPass only the first given number of events. Then suppress events  forever. `CTimed event gate for the right signal, which starts open and slams 2 shut after the left signal time interval passed. OPQRSTUVWXYZ[\]^_`OPVWXZ\]^QRSTU[_`YOPQRSTUVWXYZ[\]^_`  Ertugrul Soeylemez <es@ertes.de>aConcurrent version of $. Passes its input signals to both  argument wires concurrently. bConcurrent version of #. Passes its input signal to both  argument wires concurrently. cConcurrent version of #. Passes its input signal to both E argument wires concurrently, returning the result of the first wire  which does not inhibit. 5Pass the given input to the given wire concurrently. Is this a left value? Is this a right value? abcabcabc  Ertugrul Soeylemez <es@ertes.de>dDifferentiate over time. Inhibits at first instant. e?Differentiate over time. The argument is the value before the  first instant. "Never inhibits. Direct feedback. f@Integrate over time. The argument is the integration constant. "Never inhibits. Direct feedback. defdefdef  Ertugrul Soeylemez <es@ertes.de>gBCalculate the average of the signal over the given number of last = samples. This wire has O(n) space complexity and O(1) time  complexity. FIf you need an average over all samples ever produced, consider using  h instead. $Never inhibits. Feedback by delay. h6Calculate the average of the signal over all samples. BPlease note that somewhat surprisingly this wire runs in constant $ space and is generally faster than g, but most applications will 7 benefit from averages over only the last few samples. $Never inhibits. Feedback by delay. iBCalculate the average number of frames per virtual second for the  last given number of frames. FPlease note that this wire uses the clock, which you give the network ! using the stepping functions in FRP.NetWire.Session. If this clock  doesn'7t represent real time, then the output of this wire won't  either. Never inhibits. j>Emits an event, whenever the input signal changes. The event C contains the last input value and the time elapsed since the last  change. Inhibits on no change. kReturn the high peak. $Never inhibits. Feedback by delay. lReturn the low peak. $Never inhibits. Feedback by delay. m9Return the high peak with the given comparison function. $Never inhibits. Feedback by delay. ghijklmjghiklmghijklm  Ertugrul Soeylemez <es@ertes.de>dz  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm  !" !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x yz{|}~zzzzzzzzzz  netwire-1.2.2FRP.NetWire.WireFRP.NetWire.SessionFRP.NetWire.PureFRP.NetWire.ToolsFRP.NetWire.SwitchFRP.NetWire.RequestFRP.NetWire.RandomFRP.NetWire.IOFRP.NetWire.EventFRP.NetWire.ConcurrentFRP.NetWire.CalculusFRP.NetWire.Analyze FRP.NetWire WireState PureState ImpureStatewsDTimewsRndGenwsReqVarWireWIdWGenWConstWArrTimeSFOutputInhibitExceptioncleanupWireState inhibitEx initWireStatemkGennoEventtoGenSession sessFreeVar sessStateRef sessTimeRef sessWireRefstepWire stepWireDelta stepWireTime stepWireTime'withWirestepSF stepWirePure-->>---=>>=-accumconstantdelaydiscretedupexhibitfmodforbidfreezeholdidentityinhibitkeepmapArequiresampleswallowswaptimetimeFrom drpSwitch drpSwitchBdrSwitchdSwitchparparBrpSwitch rpSwitchBrSwitchswitch identifiernoisenoise1noiseGennoiseR pureNoise pureNoiseR wackelkontaktexecuteliftWireafter afterEachdam delayEventsdelayEventsSafe dropEventsdropForedgeedgeByedgeJusteventnevernotYetonce repeatedlyrepeatedlyList takeEventstakeFor~*~~&~~+~ derivativederivativeFromintegralavgavgAllavgFpsdiffhighPeaklowPeakpeakBybase GHC.Exception SomeException $fFunctorWire$fCategoryWire$fArrowZeroWire$fArrowPlusWire$fArrowLoopWire$fArrowChoiceWire $fArrowWire$fApplicativeWire$fAlternativeWire Control.Arrow ArrowPlus ArrowZeromonad-control-0.2.0.3Control.Monad.IO.ControlMonadControlIO withBlockGHC.ListiterateControl.Exception.Basetryghc-prim GHC.TypesDoubleFalseTrue Data.MaybeJustMaybe Data.EitherEither***&&&<+>forkWireisLeftisRighttransformers-0.2.2.0Control.Monad.IO.ClassMonadIO liftIOOp_liftIOOp controlIO liftControlIOliftIOData.Functor.Identity runIdentityIdentity