!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ ] ^ _ ` a b c d e f g h i j k l m n o p qrstuvwxyz{|}~ portable provisionalnilsson@cs.yale.edu (Type constructor for mergeable records.  Typeclass for mergeable records #The default value of a record type $Construction of a mergeable record. "Merge two mergeable records. Left " overrides" in case of conflict. Equivalent to '(~+~)' above. 5Finalization: turn a mergeable record into a record.     portable provisionalnilsson@cs.yale.edu?Typeclass for values whose entire structure may be made strict 1Forces the value of an expression and returns it portable provisionalnilsson@cs.yale.eduReverse composition Duplicate a value into a pair Swap the values in a pair EApply a function to the first value in each pair in a list of pairs. 2Above, but apply the function to the second value First value of a triple Second value of a triple Third value of a triple First value of a quadruple Second value of a quadruple Third value of a quadruple Fourth value of a quadruple First value of a quintuple !Second value of a quintuple "Third value of a quintuple #Fourth value of a quintuple $Fifth value of a quintuple %Whole integer quotient  Dividend Divisor Integer quotient &'Remainder after whole integer quotient  Dividend Divisor  Remainder '&Whole integer quotient and remainder  Dividend Divisor Integer quotient and remainder  !"#$%&' !"#$%&' !"#$%&'portable provisionalnilsson@cs.yale.edu Error created by improper usage  Module name Function name Error message  Error internal to yampa (a bug)  Module name Function name Error message portable provisionalnilsson@cs.yale.edu( Event type )*+ Not an event ,2Force the first item of a pair to not be an event  Input pair No event pair -3Force the second item of a pair to not be an event  Input pair No event pair .Internal: Convert a  value to an event /8Apply a function to an event, or return a default value Default value Function from event value Event  Return value 0FExtract a value from an event. This function will produce an error if  applied to a NoEvent function 1)Predicate: is a value an event occurence 2-Predicate: is a value not an event occurence 3CReplace a possible event occurence with a new occurence carrying a  replacement value Possible event occurence Replacement value 4 See above 5%Pair a value with an event occurrence's value, creating a new  event occurrence 6>If both inputs are event occurrences, produce the left event. 7>If both inputs are event occurences, produce the right event. 87If both inputs are event occurences, produce an error. 9BIf both inputs are event occurences, merge them with the supplied  function :8Apply functions to an event occurences from two sources (Function for occurences in first source )Function for occurences in second source (Function for occurences in both sources  First source Second source Merged/mapped events ;=Produce the event occurence closest to the head of the list,  if one exists. <From a list of event sources A produce an event occurence with a list of values of occurrences =AIf there is an occurence from both sources, produce an occurence  with both values. >@Create a pair of event occurences from a single event occurence  with a pair of values ??Apply a predicate to event occurences and forward them only if  it matches @Apply a  function to event occurences,  producing events only for  values. A=Only pass through events if some external condition is true. ()*+,-./0123456789:;<=>?@A(*)+,-./0123456789:;<=>?@A(*))*+,-./0123456789:;<=>?@Aportable provisionalnilsson@cs.yale.edu()*(*)non-portable (GHC extensions) provisionalnilsson@cs.yale.edu BType class for a vector space CVector with no magnitude DScale the magnitude EDe-scale the magnitude F Negation GCombine two vectors additively HSubtract a vector from another I$Take the dot-product of two vectors J Vector norm K3Produce a unit vector in the direction of a vector BCDEFGHIJK BCDEFGHIJK B CDEFGHIJKCDEFGHIJKnon-portable (GHC extensions) provisionalnilsson@cs.yale.eduLTypeclass for an Affine space.  Minimal complete definition: M, '(.+^)', '(.-.)' M$The origin value of an affine space N0Add a vector to a point, obtaining a new point. O7Subtract a vector from a point, obtaining a new point. P6Take the difference of two points, returning a vector Q(The scalar distance between two points. LMNOPQLMNOPQLMNOPQMNOPQnon-portable (GHC extensions) provisionalnilsson@cs.yale.edu R2-dimensional vector type SCreate a 2D vector #Obtain the X-magnitude of a vector  X magnitude  Y magnitude Vector T#Obtain the Y-magnitude of a vector U=Obtain the X and Y magnitudes of a vector as an ordered pair V1Create a vector from polar coordinates (magnituderho, directiontheta (radians)) (X, Y) W!Obtain the magnitude of a vector Rho Theta Vector X!Obtain the direction of a vector YBObtain the magnitude and direction of a vector as an ordered pair Z (Rho, Theta) [Theta (radians) Initial vector Rotated vector $Rotate a vector by some angle theta RSTUVWXYZ[ RSTUVWXYZ[ RSTUVWXYZ[ non-portable (GHC extensions) provisionalnilsson@cs.yale.edu \3-dimensional vector ]!Construct a 3 dimensional vector  X magnitude  Y magnitude  Z magnitude Vector ^X magnitude of the vector _Y magnitude of the vector `Z magnitude of the vector a)Ordered pair of magnitudes of the vector  (X, Y, Z) b Spherical coordinates to vector  magnitude Theta-direction Phi-direction cMagnitude of a vector dTheta-direction of a vector ePhi-direction of a vector f:Magnitude and directions of a vector as an ordered triple (Rho, Theta, Phi) gRotate a vector Difference of theta Difference of phi Initial vector Rotated vector \]^_`abcdefg \]^_`abcdefg \]^_`abcdefg non-portable (GHC extensions) provisionalnilsson@cs.yale.eduh"Two-dimensional real-valued point ij X coordinate k Y coordinate hijkhijkhiijk non-portable (GHC extensions) provisionalnilsson@cs.yale.edul!3-dimensional, real-valued point mn X coordinate o Y coordinate p Z coordinate lmnoplmnoplmmnopnon-portable (GHC extensions) provisionalnilsson@cs.yale.edu/BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopnon-portable (GHC extensions) provisionaledwardamsden@gmail.comq'A step in evaluating a signal function r     sA signal function tu)Time representation for signal functions v !"#$w0Lifts a function to a pure signal function. Use % from the & % class, rather than this function. x?Lifts a function with an event input to a pure signal function  on events. Use % from the &# class, rather than this function. '()*+,-./012345678Loop a signal function.  Use the 9 function from the : class,  rather than this function. M The second output is connected to the second input. This permits recursion A by making the output of a signal function available to itself. ,Signal function, producing output as which  it will receive as input. Looped signal function y/The identity signal function. Use in place of  arr id z#The constant signal function. Use   constant x  in place of  arr $ const x {+The time of this part of the signal graph. 0 Note that if a signal function is switched in, 2 the time is relative to the moment of switching, ( not the moment that animation started. | identical to { }0Override the output value for a signal function & at the first instant it is processed ~6Override the input value for a signal function at the  first instant it is processed. IApply a function to the output at the first instant of a signal function HApply a function to the input at the first instant of a signal function FOutput a value at the first instant, and forever after pass the input  value through Value at first instant Signal function: @ apply a function to an accumulator at each instant. Note that C the output value is the value of the accumulator at each instant. 3Function from accumulator and input to accumulator Initial accumulator value "Accumulating scan signal function Never produce an event JProduce an event immediately (at the moment of switching in or animation)  and never again. Value for event Signal function producing 'Produce an event delayed by some time. $Time to wait before producing event Value for event &Signal function producing event after  specified period 3Produce event every so often (but not immediately) Time between events Value for all events )Signal function producing repeated event <Takes a list of time delays and values to a signal function  producing events. 1Time since previous event or start and value for  event 5Delay events passing through Time to delay events  Signal function delaying events .Produce an event whenever the input goes from ; to < 5Produce an event carrying a specified value whenever  the input goes from ; to < Value for events ?Produce the value carried by the Maybe whenever the input goes  from = to  7Compare the input at the current and previous instant . and produce an event based on the comparison Comparison function. / An event will occur at any instant where the  value of this function is . initial "previous" instant. #Signal function comparing instants FSuppress a possible event at the instant of animation or switching in 1Suppress all but the first event passing through 'Only permit a certain number of events Number of events to permit  Signal function only permitting  that many events ,Suppress a certain number of initial events 'Number of events to suppress initially Signal function suppressing  That many events initially GSwitch in a new signal function produced from an event, at the instant  of that event. .Signal function which may eventually produce  an event. .Function producing a signal function from the  event value $Signal function which may switch to  a new signal function. Decoupled version of . :Switches in new signal functions carried by input events. Initial signal function Signal function which may ' be changed by an event carrying a new  signal function Decoupled version of rswitch -Continuation based switching (undocumented) Decoupled version of kswitch >.Pair a value with every value in a collection ?Broadcast the same output to a collection of signal functions, $ producing a collection of outputs. CTake a single input and broadcast it to a collection of functions, F until an event is triggered, then switch into another SF producing a  collection of outputs 'Initial collection of signal functions "Produces collection update events / based on the input and output of the parallel  SF. Produces the SF to replace  the initial parallel sf  upon event output from the SF  above pSwitchB5, but switched output is visible on the sample frame  after the event occurs 6Broadcast intput to a collection of signal functions, H and transform that collection with mutator functions carried in events 'Initial collection of signal functions BSignal function taking input to broadcast and mutating events and / producing the output of the collection of SFs  rpSwitchB;, but switched output is visible on the sample frame after  the event occurs 7Route input to a static collection of signal functions Routing function, pair $ input values with signal functions Collection of signal functions ?Like par<, but takes an extra SF which looks at the input and output M of the parallel switching combinator and switches in a new SF at that point Routing function, pair  output with SFs in the  collection Initial collection of SFs +Switching event SF, takes input and output / of parallel SF and produces a switching event Takes collection of SFs and  value of switching event and  produces SF to switch into pSwitchA, but the output from the switched-in signal function is visible ( | in the sample frame after the event. @Dynamic collections of signal functions with a routing function Routing function 'Initial collection of signal functions =Signal function accepting events which mutate the collection rpSwitch>, but the output of a switched-in SF is visible in the sample  frame after the switch "For backwards compatibility only. 9Output the initial value or the value of the last event. Initial value )Signal function which constantly outputs  the value of the last event. Decoupled version of ,. Begins outputting event value the instant  after the event occurence. Hold the value of a  input. Initial value Output the initial value or  the value of the most recent  "For backwards compatability only. BApply a function carried by an event to an accumulator, producing 1 an event with the new value of the accumulator. Initial accumulator value. Signal function from events # carrying functions to events with  the value of those functions  applied to the accumulator As with * but output the value of the accumulator. Initial value of accumulator Signal function from events # carrying functions to events with & the value of those functions applied  to the accumulator Decoupled version of +. Updated accumulator values begin output  at the instant after the updating event. "For backwards compatibility only. FProvide a function and initial accumulator to process events, produce ( each new accumulator vale as an event. -Function from accumulator and event value to  accumulator. Initial accumulator value "Signal function processing events  with accumulator function As in ; but produce the accumulator value as a continuous signal. Decoupled version of '. Output signal changes at the instant  after an event. "For backwards compatibility only. #Filter events with an accumulator. $Function from accumulator value and & event value to new accumulator value  and possible event value. Initial accumulator value. "Signal function filtering events. "For backwards compatibility only. "For backwards compatibility only. "Uninitialized one-instant delay. Iniitialized one-instant delay +Value of delayed function at first instant One-instant delay IDelay a (non-event) signal by a specific time offsent. For events please  use . Time offset to delay signal by +Initial value until time offset is reached delayed signal function )Integrate a signal with respect to time. @A2Initialize a signal function for stepping through Value at time 0 Signal function to animate Output at time 0, next step )Go to the next step of a signal function  Time offset Value at new time Step to evaluate )output value at this time, and next step %BCD9EFGHIJKLM&NOPQRSTUVWXYZ[:\] ()*+,-/0123456789:;<=>?@ABCDEFGHIJKqrstuvwxyz{|}~~ uts(*)wxyz{|}~v+,-/0123456789:;<=>?@ArqWqrstuvwxyz{|}~ portable provisionalnilsson@cs.yale.edu!0Produce an event with the input value at time 0 HProduce an event with the input value at or as soon after the specified  time delay. &Sample a signal at regular intervals. ARestart an event source directly after its first event occurence DStart a second event source as soon as the first produces an event. C (When used infix, andThen is right associative, so, for instance,  x  y 1 z will produce the first event of x, then of y,  then of z. ^=Run one SF if a predicate is true, otherwise run another SF. Predicate on input values SF if predicate is true SF if predicate is false  SF total ,Decoupled track and hold: on occurence of a  input,  the next output is the value of the  value. <Count the number of event occurences, producing a new event $ occurence with each updated count. non-portable (GHC extensions) provisionalnilsson@cs.yale.edu_`a !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm n o p q r s t u v w x y z z { | } } ~             d n  !"#$%&'()*+,-./01023456789:;<=>?@ABCD0E0FGHIGHJ KLMNO0P0Q0R0S0T0U0V0W0X0Y0Z0[0\0]0]0^0_0`0a0b0c0d0e0f0g0ghihj k  lm Animas-0.2 FRP.AnimasFRP.Animas.MergeableRecordFRP.Animas.ForceableFRP.Animas.MiscellanyFRP.Animas.EventFRP.Animas.VectorSpaceFRP.Animas.AffineSpaceFRP.Animas.Vector2FRP.Animas.Vector3FRP.Animas.Point2FRP.Animas.Point3FRP.Animas.UtilitiesFRP.Animas.TaskFRP.Animas.DiagnosticsFRP.Animas.InternalsFRP.Animas.Geometryrandom-1.0.0.3 System.RandomgenRangesplitnext RandomGenrandomIO randomRIOrandomsrandomRsrandomrandomRRandomMRMergeableRecord mrDefaultmrMake~+~mrMerge mrFinalize Forceableforce#dupswapmapFstmapSndsel3_1sel3_2sel3_3sel4_1sel4_2sel4_3sel4_4sel5_1sel5_2sel5_3sel5_4sel5_5fDivfModfDivModEventNoEventnoEvent noEventFst noEventSnd maybeToEventevent fromEventisEvent isNoEventtagtagWithattachlMergerMergemergemergeBymapMerge mergeEvents catEventsjoinEsplitEfilterE mapFilterEgate VectorSpace zeroVector*^^/ negateVector^+^^-^dotnorm normalize AffineSpaceorigin.+^.-^.-.distanceVector2vector2vector2Xvector2Y vector2XY vector2Polar vector2Rho vector2Thetavector2RhoTheta vector2RotateVector3vector3vector3Xvector3Yvector3Z vector3XYZvector3Spherical vector3Rho vector3Theta vector3Phivector3RhoThetaPhi vector3RotatePoint2point2Xpoint2YPoint3point3Xpoint3Ypoint3ZStep ReactHandleSFDTimeTime sscanPrimarrPrimarrEPrimidentityconstant localTimetime-->>---=>>=- initiallysscannevernowafter repeatedly afterEach afterEachCat delayEvent delayEventCatedgeiEdgeedgeTagedgeJustedgeBynotYetonce takeEvents dropEventsswitchdSwitchrSwitchdrSwitchkSwitchdkSwitchparBpSwitchB dpSwitchB rpSwitchB drpSwitchBparpSwitchdpSwitchrpSwitch drpSwitchold_holdholddHold trackAndHold old_accumaccum accumHold dAccumHold old_accumByaccumBy accumHoldBy dAccumHoldByold_accumFilter accumFilterold_preold_iPrepreiPredelayintegral imIntegral derivativeloopPre loopIntegralnoisenoiseR occasionally reactimate reactInitreactembed embedSynch deltaEncode deltaEncodeByinitStepsteparr2arr3arr4arr5lift0lift1lift2lift3lift4lift5snap snapAftersamplerecurandThen sampleWindowparZpSwitchZ dpSwitchZ rpSwitchZ drpSwitchZprovided old_dHold dTrackAndHold old_accumHoldold_dAccumHoldold_accumHoldByold_dAccumHoldBycountfbyimpulseIntegralold_impulseIntegralTaskmkTaskrunTaskrunTask_taskToSFconstTsleepTsnapTtimeOut abortWhen repeatUntilforforAllforEverusrErrintErrbase Data.MaybeMaybeJust$fVectorSpaceVector2astepSf ReactState rsActuatersSFrsArsBFunDescFDGFDEFDCFDI TransitionSF'SFCpAXASFEPSFSScanSFArrsfTFsfTF'sfArrsfIdsfConstsfNeversfArrEsfArrGsfSScansfEPepPrimfdFunfdCompfdParfdFanOutvfyNoEvfreeze freezeCol Control.ArrowarrArrowcompPrimcpXXcpAXAcpAXcpXAcpCXcpCXAcpGXcpXGcpEXcpXE firstPrimfpAux secondPrimspAux parSplitPrim parFanOutPrimloopPrimloop ArrowLoopghc-primGHC.BoolFalseTrueNothing broadcastparAuxiterFrom streamToSFfirstapp|||leftApp^<<<<^>>^^>>returnA&&&***second runKleisliKleisli zeroArrow ArrowZero<+> ArrowPlus+++rightleft ArrowChoice ArrowApply ArrowMonadControl.Category>>><<<safeZipunTask