7(w      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>Safe0 JA time line is a non-empty set of samples together with time information.Insert the given data point.Linearly interpolate the points in the time line, integrate the given time interval of the graph, divide by the interval length.,Cut the timeline at the given point in time t1, such that all samples up to but not including t0 are forgotten. The most recent sample before t' is moved and interpolated accordingly.,Cut the timeline at the given point in time t$, such that all samples later than t/ are forgotten. The most recent sample after t' is moved and interpolated accordingly. Look up with linear sampling. SIntegrate the given time interval of the staircase, divide by the interval length. ,Cut the timeline at the given point in time t1, such that all samples up to but not including t0 are forgotten. The most recent sample before t is moved accordingly. ,Cut the timeline at the given point in time t$, such that all samples later than t+ are forgotten. The earliest sample after t is moved accordingly. Look up on staircase.(Singleton timeline with the given point.'Union of two time lines. Right-biased.      (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>Safe 02349;<=?YThis state delta type denotes time deltas. This is necessary for most FRP applications.State delta generators as required for wire sessions, most notably to generate time deltas. These are mini-wires with the sole purpose of generating these deltas.#State delta types with time deltas.Extract the current time delta.,State delta generator for a real time clock.Non-extending version of .qState delta generator for a simple counting clock. Denotes a fixed framerate. This is likely more useful than & for simulations and real-time games. Non-extending version of .Increment size. !"#    !"#(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None%&LOT-RA wire is a signal function. It maps a reactive value to another reactive value.3Left-strict version of  for functions.4Left-strict version of  for functions.5This wire delays its input signal by the smallest possible (semantically infinitesimal) amount of time. You can use it when you want to use feedback (,): If the user of the feedback depends on nowj, delay the value before feeding it back. The argument value is the replacement signal at the beginning.Depends: before now.6*Evaluate the input signal using the given 2 here. This wire evaluates only produced values. Depends: now.7cForce the input signal to WHNF here. This wire forces both produced values and inhibition values. Depends: now.8KForce the input signal to NF here. This wire forces only produced values. Depends: now.9Left-strict tuple.8Apply the given function to the wire's inhibition value..Apply the given function to the wire's output.:>Apply the given monad morphism to the wire's underlying monad.;BConstruct a stateless wire from the given signal mapping function.<1Construct the empty wire, which inhibits forever.==Construct a stateful wire from the given transition function.>>Construct a stateless wire from the given transition function.?=Construct a stateful wire from the given transition function.@Construct the identity wire.ABConstruct a pure stateful wire from the given transition function.BCConstruct a pure stateless wire from the given transition function.CBConstruct a pure stateful wire from the given transition function.D>Construct a pure stateful wire from the given signal function.E8Construct a pure stateless wire from the given function.F>Construct a pure stateful wire from the given signal function.G#Perform one step of the given wire./-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY-./0123456789:;<=>?@ABCDEFG-./012G;<=>?@ABCDEF5678349:*-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>NoneOTZThis function runs the given wire using the given state delta generator. It constantly shows the output of the wire on one line on stdout. Press Ctrl-C to abort.[This function runs the given wire using the given state delta generator. It constantly shows the output of the wire on one line on stdout. Press Ctrl-C to abort.Z[Z[Z[Z[(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None\Local time starting from zero.]KLocal time starting from zero, converted to your favorite fractional type.^)Local time starting from the given value.\]^\]^\]^\]^(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None_JDenotes a stream of values, each together with time of occurrence. Since _ is commonly used for functional reactive programming it does not define most of the usual instances to protect continuous time and discrete event occurrence semantics.bFold the given event.cLMerge two events using the given function when both occur at the same time.dDid the given event occur?eEach time the given event occurs, perform the given action with the value the event carries. The resulting event carries the result of the action. Depends: now. _`abcdefghi_`abcde_`abcde _`abcdefghi(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>NonejhMerge events with the leftmost event taking precedence. Equivalent to using the monoid interface with First . Infixl 5.Depends: now on both.,Inhibits: when any of the two wires inhibit.khMerge events with the rightmost event taking precedence. Equivalent to using the monoid interface with Last . Infixl 5.Depends: now on both.,Inhibits: when any of the two wires inhibit.lLLeft scan for events. Each time an event occurs, apply the given function. Depends: now.mLeft scan for events with no initial value. Each time an event occurs, apply the given function. The first event is produced unchanged. Depends: now.nAt the given point in time.Depends: now when occurring.ovOccurs each time the predicate becomes true for the input signal, for example each time a given threshold is reached. Depends: now.p-Forget the first given number of occurrences. Depends: now.qHForget all initial occurrences until the given predicate becomes false. Depends: now.r>Forget all occurrences for which the given predicate is false. Depends: now.s9On each occurrence, apply the function the event carries. Depends: now.tMaximum of all events. Depends: now.uMinimum of all events. Depends: now.vLeft-biased event merge.wRight-biased event merge.x Never occurs.yOccurs each time the predicate becomes false for the input signal, for example each time a given threshold is no longer exceeded. Depends: now.zdEvents occur first when the predicate is false then when it is true, and then this pattern repeats. Depends: now.{Forget the first occurrence. Depends: now.|Occurs once immediately.Depends: now when occurring.}(Forget all occurrences except the first.Depends: now when occurring.~JPeriodic occurrence with the given time period. First occurrence is now.Depends: now when occurring.Periodic occurrence with the given time period. First occurrence is now. The event values are picked one by one from the given list. When the list is exhausted, the event does not occur again.Product of all events. Depends: now.Sum of all events. Depends: now.5Forget all but the first given number of occurrences. Depends: now.NForget all but the initial occurrences for which the given predicate is true. Depends: now.jkl Fold functionInitial value.m Fold functionnTime of occurrence.opqrstuvwxyz{|}~_cjklmnopqrstuvwxyz{|}~_nx|~oyzjkpqrcvw{}lmstujklmnopqrstuvwxyz{|}~j5k5 (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None After the given time period.)Depends: now after the given time period.$Inhibits: for the given time period. Alias for .NStart each time the left event occurs, stop each time the right event occurs.Depends: now when active.HInhibits: after the right event occurred, before the left event occurs.For the given time period.'Depends: now for the given time period.&Inhibits: after the given time period.LStart when the event occurs for the first time reflecting its latest value. Depends: now.4Inhibits: until the event occurs for the first time.Hold each event occurrence for the given time period. Inhibits when no event occurred for the given amount of time. New occurrences override old occurrences, even when they are still held. Depends: now.>Inhibits: when no event occurred for the given amount of time.%Inhibit forever with the given value.Inhibits: always.7When the given predicate is false for the input signal. Depends: now.(Inhibits: unless the predicate is false.WProduce until the given event occurs. When it occurs, inhibit with its value forever. Depends: now until event occurs.%Inhibits: forever after event occurs.6When the given predicate is true for the input signal. Depends: now.&Inhibits: when the predicate is false. (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None YActs like the first wire until it inhibits, then switches to the second wire. Infixr 1.Depends: like current wire./Inhibits: after switching like the second wire. Switch: now.vActs like the first wire until the second starts producing, at which point it switches to the second wire. Infixr 1.Depends: like current wire./Inhibits: after switching like the second wire. Switch: now.2Intrinsic continuable switch: Delayed version of .~Inhibits: like the first argument wire, like the new wire after switch. Inhibition of the second argument wire is ignored.'Switch: once, after now, restart state.&Extrinsic switch: Delayed version of . Inhibits: like the current wire.,Switch: recurrent, after now, restart state.Acts like the first wire until an event occurs then switches to the second wire. Behaves like this wire until the event occurs at which point a *new* instance of the first wire is switched to.Depends: like current wire."Inhibits: like the argument wires.!Switch: once, now, restart state.&Intrinsic switch: Delayed version of .BInhibits: like argument wire until switch, then like the new wire.'Switch: once, after now, restart state.2Extrinsic continuable switch. Delayed version of . Inhibits: like the current wire.,Switch: recurrent, after now, restart state.Intrinsic continuable switch:  kSwitch w1 w2 starts with w1. Its signal is received by w2, which may choose to switch to a new wire. Passes the wire we are switching away from to the new wire, such that it may be reused in it.~Inhibits: like the first argument wire, like the new wire after switch. Inhibition of the second argument wire is ignored.!Switch: once, now, restart state.6Extrinsic continuable switch. This switch works like N, except that it passes the wire we are switching away from to the new wire. Inhibits: like the current wire.&Switch: recurrent, now, restart state.Route the left input signal based on the current mode. The right input signal can be used to change the current mode. When switching away from a mode and then switching back to it, it will be resumed. Freezes time during inactivity.hComplexity: O(n * log n) space, O(log n) lookup time on switch wrt number of started, inactive modes.8Depends: like currently active wire (left), now (right).$Inhibits: when active wire inhibits.Switch: now on mode change.pExtrinsic switch: Start with the given wire. Each time the input event occurs, switch to the wire it carries. Inhibits: like the current wire.&Switch: recurrent, now, restart state.uIntrinsic switch: Start with the given wire. As soon as its event occurs, switch to the wire in the event's value.BInhibits: like argument wire until switch, then like the new wire.!Switch: once, now, restart state.  Initial mode.Select wire for given mode. 11(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>NoneSimple wires with time. Pure wires.      !"#$%&'()*+, -./0123456789:;<=>?@ABCDEFGZ[\]^_cjklmnopqrstuvwxyz{|}~ (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None Average framerate over the last given number of samples. One important thing to note is that the value of this wire will generally disagree with  composed with X. This is expected, because this wire simply calculates the arithmetic mean, whereas - will actually integrate the framerate graph.Note: This wire is for debugging purposes only, because it exposes discrete time. Do not taint your application with discrete time.6Complexity: O(n) time and space wrt number of samples.Current framerate.Note: This wire is for debugging purposes only, because it exposes discrete time. Do not taint your application with discrete time.)Inhibits: when the clock stopped ticking. High peak. Depends: now.8High peak with respect to the given comparison function. Depends: now.Calculate the average of the signal over the given interval (from now). This is done by calculating the integral of the corresponding linearly interpolated graph and dividing it by the interval length. See  for details.\Linear interpolation can be slow. If you don't need it, you can use the staircase variant . Example: lAvg 2KComplexity: O(s) space, O(s) time wrt number of samples in the interval. Depends: now.{Produce a linearly interpolated graph for the given points in time, where the magnitudes of the points are distances from now.cLinear interpolation can be slow. If you don't need it, you can use the faster staircase variant . Example: lGraph [0, 1, 2]) will output the interpolated inputs at now3, one second before now and two seconds before now.Complexity: O(s) space, O(n * log s) time, where s = number of samples in the interval, n = number of requested data points. Depends: now.yGraph the given interval from now with the given number of evenly distributed points in time. Convenience interface to .cLinear interpolation can be slow. If you don't need it, you can use the faster staircase variant .Complexity: O(s) space, O(n * log s) time, where s = number of samples in the interval, n = number of requested data points. Depends: now. Low peak. Depends: now.7Low peak with respect to the given comparison function. Depends: now.-9Given peak with respect to the given comparison function.Calculate the average of the signal over the given interval (from now). This is done by calculating the integral of the corresponding staircase graph and dividing it by the interval length. See   for details. See also . Example: sAvg 2KComplexity: O(s) space, O(s) time wrt number of samples in the interval. Depends: now.oProduce a staircase graph for the given points in time, where the magnitudes of the points are distances from now. See also . Example: sGraph [0, 1, 2] will output the inputs at now4, one second before now and two seconds before now.Complexity: O(s) space, O(n * log s) time, where s = number of samples in the interval, n = number of requested data points. Depends: now.yGraph the given interval from now with the given number of evenly distributed points in time. Convenience interface to . See also .Complexity: O(s) space, O(n * log s) time, where s = number of samples in the interval, n = number of requested data points. Depends: now. Number of samples.Interval size.Data points to produce.Interval to graph from now.!Number of data points to produce.-1This ordering means the first argument is larger.Compare two elements.Interval size.Data points to produce.Interval to graph from now.!Number of data points to produce. - (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None$Time derivative of the input signal. Depends: now.Inhibits: at singularities.%Integrate the input signal over time.Depends: before now.Integrate the left input signal over time, but apply the given correction function to it. This can be used to implement collision detection/reaction.The right signal of type w is the  world valueY. It is just passed to the correction function for reference and is not used otherwise.MThe correction function must be idempotent with respect to the world value: f w (f w x) = f w x@. This is necessary and sufficient to protect time continuity.Depends: before now.'Integration constant (aka start value).Correction function.'Integration constant (aka start value). (c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None:Noise events with the given distance between events. Use  or  to generate a staircase.^Noise events with the given distance between events. Noise will be in the given range. Use  or  to generate a staircase.Convenience interface to  for ..Convenience interface to  for ..Convenience interface to  for ..ZRandomly produce or inhibit with the given probability, each time for the given duration. The name  Wackelkontakt (German for  slack jointe) is a Netwire running gag. It makes sure that you revisit the documentation from time to time. =) Depends: now. Time period.Random number generator.Step duration. Noise range.Random number generator.Step duration.. seed.Step duration. Noise range.. seed.Step duration.Probability to produce.. seed. Duration.Probability to produce.Random number generator.(c) 2013 Ertugrul SoeylemezBSD3 Ertugrul Soeylemez <es@ertes.de>None      !"#$%&'()*+, -5678Z[\]^_cjklmnopqrstuvwxyz{|}~-5678/ !"#$%&'(())*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuvwxyz{|}~         !""#$$%&&'(()*+,-./01234 56789$netwire-5.0.2-68R3VG0M73c7z6INPttD72 Control.WireFRP.Netwire.Utils.TimelineControl.Wire.SessionControl.Wire.CoreControl.Wire.RunControl.Wire.TimeControl.Wire.Unsafe.EventControl.Wire.EventControl.Wire.IntervalControl.Wire.SwitchFRP.Netwire.AnalyzeFRP.Netwire.MoveFRP.Netwire.Noise FRP.NetwirebaseData.Functor.Identity runIdentityIdentity time-1.6.0.1Data.Time.Clock.UTCNominalDiffTimeTimelineinsertlinAvglinCutLlinCutR linLookupscAvgscCutLscCutRscLookup singletonunion$fFunctorTimeline$fDataTimeline $fEqTimeline $fOrdTimeline$fReadTimeline$fShowTimelineTimedSession stepSessionHasTimedtime clockSession clockSession_ countSession countSession_ $fMonoidTimed$fHasTimetTimed$fApplicativeSession$fFunctorSession $fDataTimed $fEqTimed$fFoldableTimed$fFunctorTimed $fOrdTimed $fReadTimed $fShowTimed$fTraversableTimedWireWArrWConstWGenWIdWPure&&&!***!delayevalWithforceforceNFlstrictmapWiremkConstmkEmptymkGenmkGen_mkGenNmkIdmkPuremkPure_mkPureNmkSFmkSF_mkSFNstepWire $fStrongWire$fSemigroupWire$fProfunctorWire $fNumWire $fMonoidWire$fIsStringWire $fFunctorWire$fFractionalWire$fFloatingWire $fChoiceWire$fCategoryTYPEWire$fArrowZeroWire$fArrowPlusWire$fArrowLoopWire$fArrowChoiceWire $fArrowWire$fApplicativeWire$fAlternativeWiretestWire testWireMtimetimeFtimeFromEventNoEventeventmergeoccurredonEventM$fSemigroupEvent $fNFDataEvent $fMonoidEvent$fFunctorEvent<&&>accumEaccum1EatbecamedropE dropWhileEfilterEiterateEmaximumEminimumEmergeLmergeRnevernoLongeredgenotYetnowonceperiodic periodicListproductEsumEtakeE takeWhileEafterasSoonAsbetweenforholdholdForinhibitunlessuntilwhen-->>--dkSwitchdrSwitch alternatedSwitch dkrSwitchkSwitchkrSwitchmodesrSwitchswitch SimpleWireWirePavgFps frameratehighPeak highPeakBylAvglGraphlGraphNlowPeak lowPeakBysAvgsGraphsGraphN derivativeintegral integralWithnoisenoiseRstdNoise stdNoiseRstdWackelkontakt wackelkontakttimeline Control.Arrow&&&*** ArrowLoop'parallel-3.2.1.0-6VcN0yUHtcs831TgbJiSSiControl.Parallel.StrategiesStrategymapLeft mapOutputGHC.Base<$ Applicativepure<*>*><*Data.Semigroup Semigroup<>sconcatstimesMonoidmemptymappendmconcatdiffoption mtimesDefaultstimesIdempotentstimesIdempotentMonoid stimesMonoidcycle1MingetMinMaxgetMaxArgArgMinArgMaxFirstgetFirstLastgetLast WrappedMonoid WrapMonoid unwrapMonoidOption getOptionControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListleftApp^<<<<^>>^^>>returnAArrowarrfirstsecondKleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonadloopControl.Category>>><<<Categoryid.Data.Functor.ConstConstgetConst Data.MonoidDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProduct Data.Functor<$>liftA3liftA2liftA<**> Alternativeempty<|>somemanypeakBy!random-1.1-54KmMHXjttlERYcr1mvsAe System.RandomStdGen