f      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  @(c) Ertugrul Soeylemez, 2013 Rongcui Dong, 2015BSD3 Rongcui Dong <karl_1702@188.com>Safe%&02349;<=?LOT[\#Steps a signal in certain time stepLeft-strict version of  for functions.Left-strict version of  for functions.Left strict tupleSignal to be stepped Delta sessionInput | Stateful output   1(c) 2013 Ertugrul Soeylemez (c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>Safe%&02349;<=?LOT[\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.GState delta types with time deltas. You can extract fractionals using 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.   1(c) 2013 Ertugrul Soeylemez (c) 2015 Rongcui DongBSD3 Ertugrul Soeylemez <es@ertes.de>Safe%&02349;<=?LOT[\%This function runs the given signal network 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 command drives a black box of signal network. The driver knows nothing about the internals of the network, only stops when the network is inhibited.%&%&%&%&@(c) Ertugrul Soeylemez, 2013 Rongcui Dong, 2015BSD3 Rongcui Dong <karl_1702@188.com>Safe%&02349;<=?LOT[\'6Make a pure stateful signal from given signal function(GMake a pure stateful signal from given time independant signal function)7Make a pure stateless signal from given signal function*qMake a stateful wire from chained state transition function. Notice that the output will always be the new value+#Make a signal that inhibits forever,The Identity Signal-Make a constant Signal.:Make a pure stateful signal from given transition function/KMake a pure stateful signal from given time independant transition function00Make a pure stateless signal from given function1?Make a stateful signal from given (Monadic) transition function2PMake a stateful signal from given (Monadic) time independant transition function3+Make a stateless signal from given function4-Make a stateless signal from Kleisli function5,Make a stateful signal from Kleisli function6Make a monadic constant wire7.Make a monadic action wire, alias for mkConstM8(From netwire) This 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.'()*+,-./012345678'()*+,-./012345678+,-.1/0'()*2345678'()*+,-./012345678(c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>None%&02349;<=?LOT[\ 9}Takes a sample of second input when the first input becomes True. First snapshot taken at local time 0, i.e. on construction: Alias for 9. Snapshot sounds more discrete;@Make an integration signal from a function that models the chage<A numerical integration signal.=<Acts as an identity signal for a certain time, then inhibits>Wait with a constant output?WA signal that outputs left side when input is True, and right side when input is False@MA signal that acts like identity but inhibits when input satisfies condition.AMA signal that inhibits but acts like identity when input satisfies condition. 9:; Initial stateThe model, such as dX. s is delta session< Initial state The model=>?@Inhibit conditionAActivate condition 9:;<=>?@A 9:;<=>?@A 9:;<=>?@A?3(c) Rongcui Dong, 2015BSD3 Rongcui Dong <karl_1702@188.com>Safe%&02349;<=?LOT[\BImmediately switches to the second signal after the first one inhibits, and never switch back. Second signal is untouched until first signal inhibitsCThe flipped (-->)DImmediately switches to the second signal when it starts to produce output, and never switches back. First signal is untouched after second starts producingEThe flipped (--<)BCDEBCDEBCDEBCDEB2C2D2E2(c) 2013 Ertugrul SoeylemezSafe%&02349;<=?LOT[\FLocal time starting from zero.GKLocal time starting from zero, converted to your favorite fractional type.H)Local time starting from the given value.I0A signal for easy debugging in arrow environmentFGHIFGHIFGHIFGHI(c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>Safe%&02349;<=?LOT[\ J<Produces output for a several sample periods, then inhibits.Typical usage: 3() `occursFor` 1 >>> <some IO actions> >>> snapOnceSThe example above will perform the IO action once and then hold the result foreverKHA value that appears for a semantically infinitely short period of timeMWTakes the snapshot of the value when signal is activated, and then holds value foreverTypical usage: 3() `occursFor` 1 >>> <some IO actions> >>> snapOnceSThe example above will perform the IO action once and then hold the result foreverN=Acts as identity for a several sample periods, then inhibits.O/Runs a signal once and hold the result forever.It is a combination of  inhibitsAfter and MP5Rising edge filter. Creates an impulse at rising edgeQ7Falling edge filter. Creates an impulse at falling edgeR'Edge filter. Creates an impulse at edgeSyA Set-Reset latch, with the first input set, second input reset. Current output value has higher priority (Prefer lazy!)T_A set-latch whose initial value is False, but turns True and holds when its input becomes trueUbA reset-latch whose initial value is True, but turns False and holds when its input becomes false JConstant OutputNumber of sample periodsKLMNOP Initial valueQ Initial valueR Initial valueS Initial valueTU JKLMNOPQRSTU JKLMNOPQRSTU JKLMNOPQRSTU (c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>None%&02349;<=?LOT[\/'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU (c) 2013 Ertugrul SoeylemezNone%&02349;<=?LOT[\      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU (c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>None%&02349;<=?LOT[\_Initializes console`cDraw a filled ascii box with specified color and size. It will destroy SGR color state, be carefulaIDraw a character at a specific position. It will destroy SGR color statebStatefully draw charactercMoves a characterd.Clears a certain column range on a certain rowe2Gets character input from console without blockingVWXYZ[\]^_`ab The character*Previous Position, XY coordinate (Not R-C)Next Position, XY coordinatecdRow Beginning ColEnd Col, non inclusiveeVWXYZ[\]^_`abcdeVWXYZ[\]^_`abcde VWXYZ[\]^_`abcde (c) 2015 Rongcui DongBSD3 Rongcui Dong <karl_1702@188.com>None%&02349;<=?LOT[\fghijklmnopqrstuvwxyz{|}~fghijklmnopqrstuvwxyz{|}~fghijklmnopqrstuvwxyz{|}~fghijklmnopqrstuvwxyz{|}~ (c) Rongcui Dong, 2015BSD3 Rongcui Dong <karl_1702@188.com>None%&02349;<=?LOT[\Position Whether player is firing bulletsEnemy PositionDirection vector Speed, affecting update interval Is it alive?Draws a vivid white ^. on the bottom line, and deals with flickeringUpdates an X coordinate*The stateful signal of player X coordinateConvert a keypress to Modeling the change of positionMain signal to update an enemyJust a wrapper around  Interface  to logic signal,The logic signal to handle fire and cooldownThe signal to update playerConverts a raw input to a $The signal of position in a boundaryTesting The signal to update an enemy#Steps position of a list of bulletsLogic of bullet updating Kills enemies%Combines logic of Bullets and Enemies<Delta session/timeVelocity vectordelta PositionInitial positionVelocity vector Boundary size Bound sizeBoundaryInitial list of bulletsaBoundary size | Takes in Player and Enemy list, returns a list of bullets and destroyed enemies Boundary Size99(  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a b b c d e f g h i j k l m n o p j q r s t u v w x y z { | } ~                    s       !"#$%&'()*+,-./.0.123456789:;<=>?@ABCDEFGHIJIKILIMNOPQRSTSUSVSWSXSYSZS[S\S]S^S_S`abacadaeafghijklkmknkokpkqkrstuvwxkykzk{k|}k~kSSSSSSSSS..IIIII      !"#"#"$"%"&'(')'*'+','-'./'timeless-0.9.0.1-IesWNS5gx782bBejS9AxRQFRP.Timeless.SignalFRP.Timeless.SessionFRP.Timeless.RunFRP.Timeless.Prefab.PrimitiveFRP.Timeless.Prefab.ProcessingFRP.Timeless.Prefab.SwitchFRP.Timeless.Prefab.UtilsFRP.Timeless.Prefab.DiscreteFRP.Timeless.Framework.ConsoleFRP.Timeless.TutorialFRP.Timeless.Tutorial2FRP.Timeless.Prefab FRP.TimelessSignalSIdSConstSArrSPureSGen stepSignallstrict$fApplicativeSignal$fFunctorSignal$fArrowLoopSignal$fArrowChoiceSignal $fArrowSignal$fCategoryTYPESignalTimedSession stepSessionHasTimedtime clockSession clockSession_ countSession countSession_ $fMonoidTimed$fHasTimetTimed$fApplicativeSession$fFunctorSession $fDataTimed $fEqTimed$fFoldableTimed$fFunctorTimed $fOrdTimed $fReadTimed $fShowTimed$fTraversableTimed testSignalrunBoxmkSFmkSFNmkSF_mkSW_mkEmptymkIdmkConstmkPuremkPureNmkPure_mkGenmkGenNmkGen_ mkKleisli_mkSK_mkConstMmkActMdelaysamplesnapshot integrateM integratewaitwaitWith<=>unless'when'--><----<>--timetimeFtimeFromsDebug occursForimpulseoneShotsnapOnceinhibitsAfterPeriods runAndHoldrisingfallingedgelatchlatchSlatchR InitConfig initInHandle initOutHandleinitEchoinitInBufferinginitOutBufferinginitShowCursordefaultInitConfig initConsoleasciiBoxdrawChar drawCharS sMoveCharclearLineRangesInputNonBlockingrunEcho inputBlockingsInputoutputsOutputsEchoBoxrunEcho2inputNonBlocking outputMaysInput'sOutput' sEchoBox2 runGetName updateNamesNamesReversesLineOutsNameBoxrunHellohellosHello sHelloBox runGreetings sIsReturnsName2 sGreeting sGreetingsBox runTutorialsQuit sTutorialBoxBullet bulletVec bulletVel PlayerEventPMoveLPMoveRPFirePNoeventPlayer playerPos playerFiringEnemyePoseDireSpeedeAlive EnemyEventEKillENoeventMoveMLeftMRightMStay drawPlayerAttestIO updatePosXsPlayerXtoMove testPlayerdPos sUpdateEnemy0 testEnemy0 updatePosX' sToFireSigsFire sUpdatePlayer toPlayerEvent testPlayer2sUpdateBoundedPositiontestUBP sUpdateEnemy testEnemy sDrawEnemies sDrawBullets spawnBulletbulletIsOutOfBoundcollides sBulletStepsBullets sDrawPlayer updateEnemiessBulletEnemiesmain $fShowBullet $fShowPlayer $fShowEnemy $fShowMove $fEqEnemy$fShowPlayerEvent&&&!base Control.Arrow&&&***!***GHC.Real realToFrac ArrowLoopGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$ fromIntegralGHC.EnumBoundedminBoundmaxBoundEnumenumFrom enumFromThenenumFromThenTo enumFromTofromEnumtoEnumsuccpred GHC.ClassesEq==/= GHC.FloatFloatingpiexplogsqrt**logBasesincostanasinacosatansinhcoshtanhasinhacoshatanh Fractional fromRational/recipIntegral toIntegerquotremdivmodquotRemdivModMonad>>=>>returnfailFunctorfmap<$GHC.NumNum*+-negate fromIntegerabssignumOrd>=minmax><<=compareGHC.ReadRead readsPrecreadListReal toRational RealFloat floatRadix floatDigits floatRange decodeFloat encodeFloatexponent significand scaleFloatisNaN isInfiniteisDenormalizedisNegativeZeroisIEEEatan2RealFracproperFractiontruncateroundceilingfloorGHC.ShowShow showsPrecshowshowList Applicativepure<*>*><* Data.FoldableFoldablefoldrfoldMapnulllengthfoldlfoldl1sumproductfoldr1maximumminimumelemData.Traversable TraversabletraversemapM sequenceAsequenceMonoidmemptymappendmconcat GHC.TypesBoolFalseTrueCharDoubleFloatInt integer-gmpGHC.Integer.TypeIntegerMaybeNothingJustOrderingLTEQGTRationalIOWord Data.EitherEitherLeftRighteitherControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListleftApp^<<<<^>>^^>>returnAArrowarrfirstsecondKleisli runKleisli ArrowZero zeroArrow ArrowPlus<+> ArrowChoice|||+++leftright ArrowApplyapp ArrowMonadloopControl.Category>>><<<Categoryid.readIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputChar Text.ReadreadreadsGHC.IO.ExceptionioErrorData.Functor.ConstConstgetConstnotElemallanyorand concatMapconcat sequence_mapM_GHC.IOFilePath userErrorIOError Data.OldListunwordswordsunlineslineslex readParenText.ParserCombinators.ReadPReadS Data.Functor<$>lcmgcd^^^oddeven showParen showStringshowCharshowsShowSunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.MaybemaybeuncurrycurrysubtractasTypeOfuntil$!flipconst=<<liftA3liftA2liftA<**> Alternativeempty<|>somemanyStringGHC.Err undefinederrorWithoutStackTraceerror&&||not time-1.6.0.1Data.Time.Clock.UTCDiff diffUTCTime addUTCTimeData.Time.Clock.POSIXgetCurrentTimeData.Time.Clock.UTCUTCTimeutctDay utctDayTimeNominalDiffTimeData.Time.Clock.ScalediffTimeToPicosecondspicosecondsToDiffTimesecondsToDiffTime UniversalTime ModJulianDategetModJulianDateDiffTime