.k      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij Safe-InferredLNone24L0& Maybe type. Either type.'Monomorphic bind for Fay.(Monomorphic then for Fay.)Monomorphic return for Fay.5REvaluate each action in the sequence from left to right, and collect the results.DUses JSON.stringify.EThrows a JavaScript error.FThrows "undefined" via "error".YImplemented in Fay.ZImplemented in Fay.[Implemented in Fay.\ Uses Math.PI.]Uses Math.exp.^Uses Math.sqrt._Uses Math.log.`Uses Math.pow.aUses Math.pow.bUses Math.pow.c"Implemented in Fay, it's not fast.dImplemented in Fay, not fast.eUses Math.sin.fUses Math.tan.gUses Math.cos.hUses Math.asin.iUses Math.atan.jUses Math.acos.kImplemented in Fay, not fast.lImplemented in Fay, not fast.mImplemented in Fay, not fast.nImplemented in Fay, not fast.oImplemented in Fay, not fast.pImplemented in Fay, not fast.qImplemented in Fay, not fast.rImplemented in Fay, not fast.sUses Math.round.tUses Math.ceil.uUses Math.floor.v Flip (-).wImplemented in Fay, not fast.x not (even x)yImplemented in Fay, not fast.z Uses quot'.{ Uses ~~(a/b).|(quot x y, rem x y)} Uses rem'.~Uses %%.Append two lists..Default definition for using RebindableSyntax.klm !"n#$%opqrs&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tuvwxyz{|  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ &'()*+,-./0156234#$% !" 789:;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~klm !"n#$%opqrs&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~tuvwxyz{| !"#$%'(134IL MST`acz} NoneBasically forM.Basically forM. Usual isLeft.Usual isRight.None None %comparing p x y = compare (p x) (p y)2Useful combinator for use in conjunction with the xxxBy family of functions from  Data.List, for example:  ... sortBy (comparing fst) ...None(*)  f = x y -> f x * f y.&The "f" is for "Fay", not "Functor" ;)See .A la Control.Applicative.None }~NoneNone3Try the given action and catch if there's an error.-Try the given action and catch the exception.Throw an exception. None NoneConvert from defined to maybe.Convert from maybe to defined. NoneConvert from nullable to maybe.Convert from maybe to nullable. None!Run a Fay action as a pure value. None+LNone*+<L#5A space efficient, packed, unboxed Unicode text type.O(n) The intercalate function takes a Text and a list of Texts and concatenates the list after interspersing the first argument between each element of the list.Convert from a string to text.O(n) Adds a character to the end of a Text. This copies the entire array in the process, unless fused. Subject to fusion. Performs replacement on invalid scalar values.O(n) Adds a character to the front of a Text. This function is more costly than its List counterpart because it requires copying a new array. Subject to fusion. Performs replacement on invalid scalar values.eO(n) Convert a String into a Text. Subject to fusion. Performs replacement on invalid scalar values.5O(n) Convert a Text into a String. Subject to fusion._O(n) Appends one Text to the other by copying both of them into a new Text. Subject to fusion.Append two texts.DO(n) Returns the number of characters in a Text. Subject to fusion.=O(1) Tests whether a Text is empty or not. Subject to fusion.O(n) take n, applied to a Text, returns the prefix of the Text of length n, or the Text itself if n is greater than the length of the Text. Subject to fusion.O(n) drop n, applied to a Text, returns the suffix of the Text after the first n characters, or the empty Text if n is greater than the length of the Text. Subject to fusion.O(1) The empty Text.lO(n) Breaks a Text up into a list of Texts at newline Chars. The resulting strings do not contain newlines.@O(n) Joins lines, after appending a terminating newline to each.|O(n) The isPrefixOf function takes two Texts and returns True iff the first is a prefix of the second. Subject to fusion. Xhttp://docs.closure-library.googlecode.com/git/closure_goog_string_string.js.source.htmlO(n) The intersperse function takes a character and places it between the characters of a Text. Subject to fusion. Performs replacement on invalid scalar values.;O(n) Reverse the characters of a string. Subject to fusion.[O(n) Return the prefix of the second string if its suffix matches the entire first string.O(m+n) Break a Text into pieces separated by the first Text argument, consuming the delimiter. An empty delimiter is invalid, and will cause an error to be raised.]O(1) Returns the first character and rest of a Text, or Nothing if empty. Subject to fusion.XO(1) Returns the first character of a Text, which must be non-empty. Subject to fusion.WO(1) Returns the last character of a Text, which must be non-empty. Subject to fusion.bO(1) Returns all characters after the head of a Text, which must be non-empty. Subject to fusion._O(1) Returns all but the last character of a Text, which must be non-empty. Subject to fusion.O(n) map f t is the Text obtained by applying f to each element of t. Subject to fusion. Performs replacement on invalid scalar values.'O(n) Convert a string to lower case, using simple case conversion. The result string may be longer than the input string. For instance, "0" (Latin capital letter I with dot above, U+0130) maps to the sequence "i" (Latin small letter i, U+0069) followed by " " (combining dot above, U+0307). O(n) Convert a string to upper case, using simple case conversion. The result string may be longer than the input string. For instance, the German "" (eszett, U+00DF) maps to the two-letter sequence SS. !O(n) Concatenate a list of Texts. UO(n) Map a function over a Text that results in a Text, and concatenate the results. jO(n) any p t determines whether any character in the Text t satisifes the predicate p. Subject to fusion. jO(n) all p t determines whether all characters in the Text t satisify the predicate p. Subject to fusion.`O(n) maximum returns the maximum value from a Text, which must be non-empty. Subject to fusion.`O(n) minimum returns the minimum value from a Text, which must be non-empty. Subject to fusion.(Suffix.Text.     &     &     (     NoneNone<None< !"#$%&' !"#$%&' !"#$%&' !"#$%&'None+<(GDay representation (internally represented as milliseconds from Epoch).)HDate representation (internally represented as milliseconds from Epoch).*Get the current time.+qConvert from proleptic Gregorian calendar. First argument is year, second month number (1-12), third day (1-31).,Extract the day from the time.-GShow a time. Meant for debugging purposes, not production presentation..FShow a day. Meant for debugging purposes, not production presentation.()*+Year.Month.Day.,-.()*+,-.*+)(,-.()*+,-.None /The / function returns " iff its argument is of the form Just _.0The 0 function returns  iff its argument is .1The 1( function extracts the element out of a ) and throws an error if its argument is .2The 2( function takes a default value and and  value. If the  is S, it returns the default values; otherwise, it returns the value contained in the .3The 3, function returns an empty list when given $ or a singleton list when not given .4The 4 function returns  on an empty list or  a where a" is the first element of the list.5The 5 function takes a list of !s and returns a list of all the  values.6The 6 function is a version of c which can throw out elements. In particular, the functional argument returns something of type  b. If this is :, no element is added on to the result list. If it just  b, then b! is included in the result list.8%Handy alternative to not having forM.9Similar to forM again.:Basically fmap for Maybe.;Join for Maybe. /0123456789:; /0123456789:; /0123456789:; /0123456789:;None3<<A and ?2 have lists of subscribers that are notified when E is used.=@ and ? store their last set value.>0All of the variable types can be set to a value.?UA reactive variable. Stores a value, and can have handlers subscribed to changes.@)A mutable reference, with no subscribers.A[A subscribable signal. Can have handlers subscribed to them, but doesn't store a value.BMake a new signal.CMake a new mutable reference.DMake a new reactive variable.E;Write to the value (if any), and call subscribers (if any).FGet the value of a @ or ?.G0Modifies the current value with a pure function.HRuns a : action on the current value, and updates with the result.ISubscribe to the value of a A or ?.&The result is an unsubscribe function.J`Run the same subscribing action but provide an additional unsubscribe parameter to the handler.KSubscribe to a ? , along with the previous value.&The result is an unsubscribe function.LSubscribe to a ?1, but only call handler when it actually changes.&The result is an unsubscribe function.MSubscribe to a ?-, and call the function on the current value.&The result is an unsubscribe function.NSubscribe to a ?X, but only call handler when it actually changes, and also initially on registration.&The result is an unsubscribe function.OGiven a change handler, returns a function that can be used to set a subscribable without invoking the handler. This can be useful in situations where the handler for a ?B causes an event which otherwise ought to set the value of the ?L. An example of this is interfacing with HTML input field change events.The Q/ part of the result is an unsubscribe function.PGiven a change handler, returns a function that can be used to set a var without invoking the handler. The handler is called with the initial value. This can be useful in situations where the handler for a ?B causes an event which otherwise ought to set the value of the ?L. An example of this is interfacing with HTML input field change events.The Q/ part of the result is an unsubscribe function.Q Creates a ?m that updates whenever the source var is changed, applying the provided function to compute the new value.R Creates a ?W that updates whenever one of its source vars are changed. If the 2nd argument is a  value, then its used to set the source vars when the variable is changed. Setting using a merged var is sometimes preferred because both values are set before the subscribers are called.The Q/ part of the result is an unsubscribe function.SLike R(, but discards the unsubscribe function.T Creates a ?r that updates whenever one of its source vars are changed. It can also be used to set both source vars at once.See R for more information. Note that when using nested tuples, if you want all of the values to be set before broadcast, then they should nest to the left.ULike T(, but discards the unsubscribe function.V*Wait for n signals on the given signaller.WNWait for the given predicate to be satisfied on the var and then unsubscribe.XcMake a one-shot variable subscription that immediately unsubscribes after the event has triggered.Y:Turn a sig into a var, by storing the last reported value.(<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYAB@C?D>E=FGH<IJKLMNOPQRSTUVWXY(<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYNone\Make a new unlocked mutex.]3If a mutex is free run the action, otherwise don't.^-Wait until the mutex is free to do something._,Lock the given mutex until I'm done with it.Z[\]^_Z[\]^_Z[\]^_Z[\]^_None*< `The `& function takes two lists and returns / iff the first list is a prefix of the second.aThe a& function takes two lists and returns K iff the first list is a suffix of the second. Both lists must be finite.bThe b: function drops the given prefix from a list. It returns 6 if the list did not start with the prefix given, or ' the list after the prefix, if it does. stripPrefix "foo" "foobar" == Just "bar" stripPrefix "foo" "foo" == Just "" stripPrefix "foo" "barfoo" == Nothing stripPrefix "foo" "barfoobaz" == NothingcLike b*, but drops the given suffix from the end.dTSplit lists at delimiter specified by a condition Drops empty groups (similar to )eISplit lists at the specified delimiter Drops empty groups (similar to )fThe f function takes a predicate a list and returns the pair of lists of elements which do and do not satisfy the predicate, respectively; i.e., 4partition p xs == (filter p xs, filter (not . p) xs)gThe gV function returns all initial segments of the argument, shortest first. For example, "inits "abc" == ["","a","ab","abc"] Note that g) has the following strictness property: inits _|_ = [] : _|_iClassic group by.j Belongs in Control.Monad, right? `abcdefghij `abcdefghij `abcdefghij `abcdefghij !"#$%&'&(&)&*+,-&./01&2&345&6&7&89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~               !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgghijklmnopqrstuvw1-*)(xyz{|}~?????????fay-base-0.19.4.2Prelude Data.Data Data.Either Data.CharData.Ord Data.Function Unsafe.CoerceControl.Exception Debug.Trace Data.Defined Data.Nullable Fay.Unsafe Data.Ratio Data.TextData.LocalStorageData.MutMap.Internal Data.MutMap Data.Time Data.MaybeData.Var Data.Mutex Data.ListFFIghc-primGHC.Primseq GHC.Classes==EqbaseDataGHC.ReadReadGHC.ShowShowData.Typeable.InternalTypeable GHC.TypesBoolCharDoubleInt integer-gmpGHC.Integer.TypeIntegerOrderingEitherGHC.BaseStringFalseTrueLeftRightLTEQGTMaybeNothingJust/=&&|| fay-0.22.0.0 Fay.TypesFay/Ord<<=>>=*+-maybe>>=>>returnfailwhenunlessforMforM_mapMmapM_=<<void>=><=<sequence sequence_comparesuccpredenumFrom enumFromTo enumFromBy enumFromThen enumFromByToenumFromThenTo fromIntegral fromIntegernot otherwiseshowerror undefinedeitheruntil$!constid.$flipcurryuncurrysndfstdivmoddivModminmaxrecipnegateabssignumpiexpsqrtlog**^^ unsafePow^logBasesintancosasinatanacossinhtanhcoshasinhatanhacoshproperFractiontruncateroundceilingfloorsubtractevenoddgcdquotquot'quotRemremrem'lcmfindfilternullmapnubnub'elemnotElemsortsortByinsertByconcconcat concatMapfoldrfoldr1foldlfoldl1++!!headtailinitlastiteraterepeat replicatecycletakedropsplitAt takeWhile dropWhilespanbreakzipWithzipWith3zipzip3unzipunzip3linesunlineswordsunwordsandoranyall intersperse prependToAll intercalatemaximumminimumproductsumscanlscanl1scanrscanr1lookuplengthlength'reverseprintputStrLn ifThenElsewhenLeft whenRightisLeftisRightchrordisAsciiisLatin1toUppertoLower isAsciiLower isAsciiUpperisDigit isOctDigit isHexDigitisSpace comparingonfmapap<*> unsafeCoerce onExceptioncatchthrowtrace traceShow fromDefined toDefined fromNullable toNullableunsafePerformFayRationalRatio% numerator denominator$fDataRational$fShowRationalText fromStringsnocconspackunpackappend<>empty isPrefixOf stripSuffixsplitOn toShortestshowIntunconssetLocalStoragegetLocalStorageremoveLocalStoragehasLocalStorageSaltedKeyValIaddSaltunsalt checkSaltedMutMapmutEmpty mutFromList mutLookupmutElemsmutKeys mutAssocsmutClonemutMapMmutMapM_ mutMapMaybeM mutInsert mutDeletemutClearDayUTCTimegetCurrentTime fromGregorianutctDayshowTimeshowDayisJust isNothingfromJust fromMaybe maybeToList listToMaybe catMaybesmapMaybe mapMaybeFBwhenJust whenJust'onJust joinMaybe SubscribableGettableSettableVarRefSignewSignewRefnewVarsetgetmodify modifyWith subscribewithUnsubscribersubscribeWithOldsubscribeChangesubscribeAndReadsubscribeChangeAndReadsubscribeExclusivesubscribeAndReadExclusivemapVar mergeVars mergeVars' tupleVars tupleVars'waitForNwaitForoneShotholdSigMutexnewMutex ifMutexFree whenMutexFree lockMutex isSuffixOf stripPrefix splitWhen partitioninits groupSortBygroupByfindMIntegral FractionalEnumNum $fIntegralInt$fFractionalDouble $fEnumInt $fOrdInteger$fOrdInt $fOrdDouble $fOrdChar $fNumDouble$fNumIntFay.FFIffiNullableNullDefined UndefinedPtr Automatic$fIsStringText $fOrdText mutFromListI mutLookupImutKeysI mutAssocsI mutMapMaybeMI mutInsertI mutDeleteI$fOrdDay$fEqDay $fShowDay $fDataDay $fOrdUTCTime $fEqUTCTime $fShowUTCTime $fDataUTCTime getBracket setInternalbroadcastInternal$fSubscribableVar$fSubscribableSig $fGettableVar $fGettableRef $fSettableVar $fSettableSig $fSettableRef