't|      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab c d e f g h i j k l m n o p q r s t u v w x y z { | } ~   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. 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 . 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  with a 9 message indicating that a certain event did not happen. +Extract the transition function of a wire. Efficient signal sharing. ,Efficient forward-composition of two wires. -Run two signals through two signal networks. )Map over the result of a signal network. 7Identity signal network and signal network sequencing.  The zero arrow always inhibits. ;Left-biased signal network combination. If the left arrow = inhibits, the right arrow is tried. If both inhibit, their  combination inhibits. @Value recursion. Warning: Recursive signal networks must never  inhibit. Make use of FRP.NetWire.Tools.exhibit or  FRP.NetWire.Event.event. CSignal routing. Unused routes are frozen, until they are put back  into use. $Arrow interface to signal networks. *Applicative interface to signal networks. !This instance corresponds to the  and   instances.      Ertugrul Soeylemez <es@ertes.de>AReactive sessions with the given input and output types over the % given monad. The monad must have a  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. Start a wire session. Clean up a wire session. 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. /"Inhibit, when the signal is true. 'Inhibits on true signal. No feedback. 0@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. 1Keep the latest output. ?Inhibits until first signal from argument wire. Same feedback  properties as argument wire. 21Identity signal transformer. Outputs its input. $Never inhibits. Feedback by delay. 3>Unconditional inhibition with the given inhibition exception. Always inhibits. 4<Unconditional inhibition with default inhibition exception. Always inhibits. 5Inject the input  signal.  Inhibits on  signals. 6Inject the input  signal.  Inhibits on  signals. 7-Keep the value in the first instant forever. $Never inhibits. Feedback by delay. 8$Apply an arrow to a list of inputs. 9(Inhibit, when the left signal is false. -Inhibits on false left signal. No feedback. :#Inhibit, when the signal is false. (Inhibits on false signal. No feedback. ;BSample 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. <CWait 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. =Swap the values in a tuple. >Get the local time. Never inhibits. ?=Get the local time, assuming it starts from the given value. Never inhibits. #$%&'()*+,-./0123456789:;<=>?(2>?')*1567./349:,0;<#$%&8+-=#$%&'()*+,-./0123456789:;<=>? Ertugrul Soeylemez <es@ertes.de> @Decoupled variant of F. ADecoupled variant of G. BDecoupled variant of H. CDecoupled variant of I. DDRoute signal to a collection of signal functions using the supplied D routing function. If any of the wires inhibits, the whole network  inhibits. EABroadcast signal to a collection of signal functions. If any of ? the wires inhibits, then the whole parallel network inhibits. F>Recurrent parallel routing switch. This combinator acts like  D@, but takes an additional event signal, which can transform the 2 set of wires. This is the most powerful switch.  Just like D1 if any of the wires inhibits, the whole network  inhibits. G@Recurrent parallel broadcast switch. This combinator acts like  E@, but takes an additional event signal, which can transform the  set of wires.  Just like E1 if any of the wires inhibits, the whole network  inhibits. H>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. ICThis 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. @ABCDEFGHI ICHBEGADF@ @ABCDEFGHI Ertugrul Soeylemez <es@ertes.de>J#Messages to wire managers (see the X wire). K2Delete the wire with the given key, if it exists. L?Add the given wire with the given key. If the manager already . has a wire with this key, it is overwritten. M&Perform two operations in an instant. N+Do nothing. Send this, if the wire shouldn't be changed in an  instant. OCMake the given wire context-sensitive. The left input signal is a F context and the argument wire will mutate individually for each such  context. CInherits inhibition and feedback behaviour from the current context's  wire. PSimplified variant of O . Takes a context signal only. QSpecialized version of O". Use this one, if your contexts  are s and you have a lot of them. CInherits inhibition and feedback behaviour from the current context's  wire. RSimplified variant of Q . Takes a context signal only. SSame as O+, but with a time limit. The first signal F specifies a threshold and the second signal specifies a maximum age. C If the current number of contexts exceeds the threshold, then all 1 contexts exceeding the maximum age are deleted. CInherits inhibition and feedback behaviour from the current context's  wire. TSimplified variant of S. Takes a context signal  only. USpecialized version of S. Use this one, if your  contexts are s and you have a lot of them. CInherits inhibition and feedback behaviour from the current context's  wire. VSimplified variant of U. Takes a context signal  only. W1Choose a new unique identifier at every instant. $Never inhibits. Feedback by delay. XDWire manager, which can be manipulated during the session. This is 0 a convenient alternative to parallel switches. EThis wire manages a set of subwires, each indexed by a key. Through F messages new subwires can be added and existing ones can be deleted. @Inhibits, whenever one of the managed wires inhibits. Inherits 1 feedback behaviour from the worst managed wire. <The monoid instance can be used to combine multiple manager D operations. They are performed from left to right. This instance < tries hard to optimize operations away without sacrificing  performance. JKLMNOPQRSTUVWXJNMLKXOQSUPRTVWJNMLKKLMNOPQRSTUVWX Ertugrul Soeylemez <es@ertes.de>Y6Impure noise between 0 (inclusive) and 1 (exclusive). Never inhibits. Z7Impure noise between -1 (inclusive) and 1 (exclusive). Never inhibits. [Impure noise. Never inhibits. \8Impure 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. ] Pure noise. For impure wires it' s recommended to use the impure  noise generators. Never inhibits. ^+Pure noise in a range. For impure wires it's recommended to use  the impure noise generators. $Never inhibits. Feedback by delay. _Impure random boolean. Never inhibits. YZ[\]^_YZ[\_]^YZ[\]^_ Ertugrul Soeylemez <es@ertes.de>`<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. aDLift the given monadic computation to a wire. The action is run at  every instant. CNever inhibits. Same feedback behaviour as the given computation. `a`a`a  Ertugrul Soeylemez <es@ertes.de>bAProduce a signal once after the specified delay and never again.  The event'0s value will be the input signal at that point. c@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. dBEvent 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. e6Delay 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. fADelay 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. g@Drop the given number of events, before passing events through. h?Timed event gate for the right signal, which begins closed and > opens after the time interval in the left signal has passed. i?Produce a single event with the right signal whenever the left  signal switches from  to . j;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. k?Produce a single event carrying the value of the input signal, ' whenever the input signal switches to . l Variant of ,, which produces a  instead of an  . <Never inhibits. Same feedback properties as argument wire. m/Never produce an event. This is equivalent to 3 , but with 4 a contextually more appropriate exception message. n$Suppress the first event occurence. o7Produce an event at the first instant and never again. pEmits a '()'7 signal each time the signal interval passes. This is  a simpler variant of q. q?Emit the right signal event each time the left signal interval  passes. rDEach time the signal interval passes emit the next element from the  given list. sBPass only the first given number of events. Then suppress events  forever. tCTimed event gate for the right signal, which starts open and slams 2 shut after the left signal time interval passed. bcdefghijklmnopqrstbcijkmopqrdefghnstlbcdefghijklmnopqrst  Ertugrul Soeylemez <es@ertes.de>uConcurrent version of $. Passes its input signals to both  argument wires concurrently. vConcurrent version of #. Passes its input signal to both  argument wires concurrently. wConcurrent 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? uvwuvwuvw  Ertugrul Soeylemez <es@ertes.de>xDifferentiate over time. Inhibits at first instant. y?Differentiate over time. The argument is the value before the  first instant. $Never inhibits. Feedback by delay. z@Integrate over time. The argument is the integration constant. $Never inhibits. Feedback by delay. xyzxyzxyz  Ertugrul Soeylemez <es@ertes.de> {BCalculate 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  | instead. $Never inhibits. Feedback by delay. |6Calculate the average of the signal over all samples. BPlease note that somewhat surprisingly this wire runs in constant $ space and is generally faster than {, but most applications will 7 benefit from averages over only the last few samples. $Never inhibits. Feedback by delay. }BCalculate 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. ~CCollects all the inputs ever received. This wire uses O(n) memory F and runs in O(log n) time, where n is the number of inputs collected  so far. $Never inhibits. Feedback by delay. >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. Return the high peak. $Never inhibits. Feedback by delay. AReturns the time delta between now and when the input signal was C last seen. This wire uses O(n) memory and runs in O(log n) time, 3 where n is the number of inputs collected so far. 4Inhibits, when a signal is seen for the first time. Return the low peak. $Never inhibits. Feedback by delay. 9Return the high peak with the given comparison function. $Never inhibits. Feedback by delay. {|}~ {|}~ {|}~  Ertugrul Soeylemez <es@ertes.de>|  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"  !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm n o p q r s t u v w x y z { | } ~    netwire-1.2.6FRP.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 ImpureStatewsDTimewsRndGenwsReqVarWireWGenWArrTimeSFOutputInhibitExceptioncleanupWireState inhibitEx initWireStatemkGennoEventtoGenSession sessFreeVar sessStateRef sessTimeRef sessWireRef sessionStart sessionStopstepWire stepWireDelta stepWireTime stepWireTime'withWirestepSF stepWirePure-->>---=>>=-accumconstantdelaydiscretedupexhibitfmodforbidforbid_freezeholdidentityinhibitinhibit_inject injectMaybekeepmapArequirerequire_sampleswallowswaptimetimeFrom drpSwitch drpSwitchBdrSwitchdSwitchparparBrpSwitch rpSwitchBrSwitchswitchMgrMsgMgrDelMgrAddMgrMultiMgrNopcontextcontext_ contextInt contextInt_contextLimitedcontextLimited_contextLimitedIntcontextLimitedInt_ identifiermanagernoisenoise1noiseGennoiseR pureNoise pureNoiseR wackelkontaktexecuteliftWireafter afterEachdam delayEventsdelayEventsSafe dropEventsdropForedgeedgeByedgeJusteventnevernotYetonce periodically repeatedlyrepeatedlyList takeEventstakeFor~*~~&~~+~ derivativederivativeFromintegralavgavgAllavgFpscollectdiffhighPeaklastSeenlowPeakpeakBybase GHC.Exception SomeExceptionwbothwcompose wsidebyside $fFunctorWire$fCategoryWire$fArrowZeroWire$fArrowPlusWire$fArrowLoopWire$fArrowChoiceWire $fArrowWire$fApplicativeWire$fAlternativeWire Control.Arrow ArrowPlus ArrowZeromonad-control-0.2.0.3Control.Monad.IO.ControlMonadControlIO withBlockGHC.ListiterateControl.Exception.Basetry Data.EitherEitherLeft Data.MaybeMaybeNothingghc-prim GHC.TypesInt$fMonoidMgrMsgDoubleFalseTrueJust***&&&<+>forkWireisLeftisRighttransformers-0.2.2.0Control.Monad.IO.ClassMonadIO liftIOOp_liftIOOp controlIO liftControlIOliftIOData.Functor.Identity runIdentityIdentity