deadfoxygrandpa / Elm.tmLanguage

Elm language syntax highlighting and tool integration for ST2/3
https://packagecontrol.io/packages/Elm%20Language%20Support
MIT License
122 stars 27 forks source link

Elm oracle based features not always working #74

Closed deadfoxygrandpa closed 8 years ago

deadfoxygrandpa commented 8 years ago

@rtfeldman has elm oracle installed, and it's working on its own, but the plugin features which are based on elm oracle (type signatures, autocompletion, package docs exploration) are not working for him.

Next step, just like #73, is to add debug logging.

deadfoxygrandpa commented 8 years ago

@rtfeldman If you change the Elm Language Support user setting "debug": true then you can help me find out what's going on here.

After turning on the debug setting, and you open an Elm source file, can you try opening up the Sublime Text console and tell me what you see? There should be a line that says something like

[Elm says]: (elm-oracle) <some stuff here>
errors: <some stuff here>

When you open the file, or switch to a tab with an Elm file, then elm-oracle is supposed to be loading a bunch of information on the open file. I suspect something is going wrong there on your computer.

rtfeldman commented 8 years ago

Here's what I see.

rtfeldman commented 8 years ago

End of logs:

,"signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""}]' 
errors: b''
[Elm says]: (elm-oracle) b'[{"name":"Mailbox","fullName":"Signal.Mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#Mailbox","signature":"{ address : Signal.Address a, signal : Signal.Signal a }","comment":" A `Mailbox` is a communication hub. It is made up of\\n\\n  * an `Address` that you can send messages to\\n  * a `Signal` of messages sent to the mailbox\\n"},{"name":"constant","fullName":"Signal.constant","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#constant","signature":"a -> Signal.Signal a","comment":" Create a signal that never changes. This can be useful if you need\\nto pass a combination of signals and normal values to a function:\\n\\n    map3 view Window.dimensions Mouse.position (constant initialModel)\\n"},{"name":"dropRepeats","fullName":"Signal.dropRepeats","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#dropRepeats","signature":"Signal.Signal a -> Signal.Signal a","comment":" Drop updates that repeat the current value of the signal.\\n\\n    numbers : Signal Int\\n\\n    noDups : Signal Int\\n    noDups =\\n        dropRepeats numbers\\n\\n    --  numbers => 0 0 3 3 5 5 5 4 ...\\n    --  noDups  => 0   3   5     4 ...\\n\\nThe signal should not be a signal of functions, or a record that contains a\\nfunction (you\'ll get a runtime error since functions cannot be equated).\\n"},{"name":"filter","fullName":"Signal.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filter","signature":"(a -> Bool) -> a -> Signal.Signal a -> Signal.Signal a","comment":" Filter out some updates. The given function decides whether we should\\n*keep* an update. If no updates ever flow through, we use the default value\\nprovided. The following example only keeps even numbers and has an initial\\nvalue of zero.\\n\\n    numbers : Signal Int\\n\\n    isEven : Int -> Bool\\n\\n    evens : Signal Int\\n    evens =\\n        filter isEven 0 numbers\\n"},{"name":"filterMap","fullName":"Signal.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filterMap","signature":"(a -> Maybe.Maybe b) -> b -> Signal.Signal a -> Signal.Signal b","comment":" Filter out some updates. When the filter function gives back `Just` a\\nvalue, we send that value along. When it returns `Nothing` we drop it.\\nIf the initial value of the incoming signal turns into `Nothing`, we use the\\ndefault value provided. The following example keeps only strings that can be\\nread as integers.\\n\\n    userInput : Signal String\\n\\n    toInt : String -> Maybe Int\\n\\n    numbers : Signal Int\\n    numbers =\\n        filterMap toInt 0 userInput\\n"},{"name":"foldp","fullName":"Signal.foldp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#foldp","signature":"(a -> state -> state) -> state -> Signal.Signal a -> Signal.Signal state","comment":" Create a past-dependent signal. Each update from the incoming signals will\\nbe used to step the state forward. The outgoing signal represents the current\\nstate.\\n\\n    clickCount : Signal Int\\n    clickCount =\\n        foldp (\\\\click total -> total + 1) 0 Mouse.clicks\\n\\n    timeSoFar : Signal Time\\n    timeSoFar =\\n        foldp (+) 0 (fps 40)\\n\\nSo `clickCount` updates on each mouse click, incrementing by one. `timeSoFar`\\nis the time the program has been running, updated 40 times a second.\\n"},{"name":"forwardTo","fullName":"Signal.forwardTo","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#forwardTo","signature":"Signal.Address b -> (a -> b) -> Signal.Address a","comment":" Create a new address. This address will tag each message it receives\\nand then forward it along to some other address.\\n\\n    type Action = Undo | Remove Int | NoOp\\n\\n    actions : Mailbox Action\\n    actions = mailbox NoOp\\n\\n    removeAddress : Address Int\\n    removeAddress =\\n        forwardTo actions.address Remove\\n\\nIn this case we have a general `address` that many people may send\\nmessages to. The new `removeAddress` tags all messages with the `Remove` tag\\nbefore forwarding them along to the more general `address`. This means\\nsome parts of our application can know *only* about `removeAddress` and not\\ncare what other kinds of `Actions` are possible.\\n"},{"name":"mailbox","fullName":"Signal.mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mailbox","signature":"a -> Signal.Mailbox a","comment":" Create a mailbox you can send messages to. The primary use case is\\nreceiving updates from tasks and UI elements. The argument is a default value\\nfor the custom signal.\\n\\nNote: Creating new signals is inherently impure, so `(mailbox ())` and\\n`(mailbox ())` produce two different mailboxes.\\n"},{"name":"map","fullName":"Signal.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map","signature":"(a -> result) -> Signal.Signal a -> Signal.Signal result","comment":" Apply a function to a signal.\\n\\n    mouseIsUp : Signal Bool\\n    mouseIsUp =\\n        map not Mouse.isDown\\n\\n    main : Signal Element\\n    main =\\n        map Graphics.Element.show Mouse.position\\n"},{"name":"map2","fullName":"Signal.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map2","signature":"(a -> b -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal result","comment":" Apply a function to the current value of two signals. The function\\nis reevaluated whenever *either* signal changes. In the following example, we\\nfigure out the `aspectRatio` of the window by combining the current width and\\nheight.\\n\\n    ratio : Int -> Int -> Float\\n    ratio width height =\\n        toFloat width / toFloat height\\n\\n    aspectRatio : Signal Float\\n    aspectRatio =\\n        map2 ratio Window.width Window.height\\n"},{"name":"map3","fullName":"Signal.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map3","signature":"(a -> b -> c -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal result","comment":""},{"name":"map4","fullName":"Signal.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map4","signature":"(a -> b -> c -> d -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal result","comment":""},{"name":"map5","fullName":"Signal.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map5","signature":"(a -> b -> c -> d -> e -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal e -> Signal.Signal result","comment":""},{"name":"merge","fullName":"Signal.merge","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#merge","signature":"Signal.Signal a -> Signal.Signal a -> Signal.Signal a","comment":" Merge two signals into one. This function is extremely useful for bringing\\ntogether lots of different signals to feed into a `foldp`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float\\n\\n    updates : Signal Update\\n    updates =\\n        merge\\n            (map MouseMove Mouse.position)\\n            (map TimeDelta (fps 40))\\n\\nIf an update comes from either of the incoming signals, it updates the outgoing\\nsignal. If an update comes on both signals at the same time, the update provided\\nby the left input signal wins (i.e., the update from the second signal is discarded).\\n"},{"name":"mergeMany","fullName":"Signal.mergeMany","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mergeMany","signature":"List (Signal.Signal a) -> Signal.Signal a","comment":" Merge many signals into one. This is useful when you are merging more than\\ntwo signals. When multiple updates come in at the same time, the left-most\\nupdate wins, just like with `merge`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float | Click\\n\\n    updates : Signal Update\\n    updates =\\n        mergeMany\\n            [ map MouseMove Mouse.position\\n            , map TimeDelta (fps 40)\\n            , map (always Click) Mouse.clicks\\n            ]\\n"},{"name":"message","fullName":"Signal.message","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#message","signature":"Signal.Address a -> a -> Signal.Message","comment":" Create a message that may be sent to a `Mailbox` at a later time.\\n\\nMost importantly, this lets us create APIs that can send values to ports\\n*without* allowing people to run arbitrary tasks.\\n"},{"name":"sampleOn","fullName":"Signal.sampleOn","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#sampleOn","signature":"Signal.Signal a -> Signal.Signal b -> Signal.Signal b","comment":" Sample from the second input every time an event occurs on the first input.\\nFor example, `(sampleOn Mouse.clicks (Time.every Time.second))` will give the\\napproximate time of the latest click. "},{"name":"send","fullName":"Signal.send","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#send","signature":"Signal.Address a -> a -> Task.Task x ()","comment":" Send a message to an `Address`.\\n\\n    type Action = Undo | Remove Int\\n\\n    address : Address Action\\n\\n    requestUndo : Task x ()\\n    requestUndo =\\n        send address Undo\\n\\nThe `Signal` associated with `address` will receive the `Undo` message\\nand push it through the Elm program.\\n"},{"name":"all","fullName":"String.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#all","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *all* characters satisfy a predicate.\\n\\n    all isDigit \\"90210\\" == True\\n    all isDigit \\"R2-D2\\" == False\\n    all isDigit \\"heart\\" == False\\n"},{"name":"any","fullName":"String.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#any","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *any* characters satisfy a predicate.\\n\\n    any isDigit \\"90210\\" == True\\n    any isDigit \\"R2-D2\\" == True\\n    any isDigit \\"heart\\" == False\\n"},{"name":"append","fullName":"String.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#append","signature":"String -> String -> String","comment":" Append two strings. You can also use [the `(++)` operator](Basics#++)\\nto do this.\\n\\n    append \\"butter\\" \\"fly\\" == \\"butterfly\\"\\n"},{"name":"concat","fullName":"String.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#concat","signature":"List String -> String","comment":" Concatenate many strings into one.\\n\\n    concat [\\"never\\",\\"the\\",\\"less\\"] == \\"nevertheless\\"\\n"},{"name":"cons","fullName":"String.cons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#cons","signature":"Char -> String -> String","comment":" Add a character to the beginning of a string. "},{"name":"contains","fullName":"String.contains","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#contains","signature":"String -> String -> Bool","comment":" See if the second string contains the first one.\\n\\n    contains \\"the\\" \\"theory\\" == True\\n    contains \\"hat\\" \\"theory\\" == False\\n    contains \\"THE\\" \\"theory\\" == False\\n\\nUse [`Regex.contains`](Regex#contains) if you need something more flexible.\\n"},{"name":"dropLeft","fullName":"String.dropLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropLeft","signature":"Int -> String -> String","comment":" Drop *n* characters from the left side of a string. "},{"name":"dropRight","fullName":"String.dropRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropRight","signature":"Int -> String -> String","comment":" Drop *n* characters from the right side of a string. "},{"name":"endsWith","fullName":"String.endsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#endsWith","signature":"String -> String -> Bool","comment":" See if the second string ends with the first one.\\n\\n    endsWith \\"the\\" \\"theory\\" == False\\n    endsWith \\"ory\\" \\"theory\\" == True\\n"},{"name":"filter","fullName":"String.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#filter","signature":"(Char -> Bool) -> String -> String","comment":" Keep only the characters that satisfy the predicate.\\n\\n    filter isDigit \\"R2-D2\\" == \\"22\\"\\n"},{"name":"foldl","fullName":"String.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldl","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the left.\\n\\n    foldl cons \\"\\" \\"time\\" == \\"emit\\"\\n"},{"name":"foldr","fullName":"String.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldr","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the right.\\n\\n    foldr cons \\"\\" \\"time\\" == \\"time\\"\\n"},{"name":"fromChar","fullName":"String.fromChar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromChar","signature":"Char -> String","comment":" Create a string from a given character.\\n\\n    fromChar \'a\' == \\"a\\"\\n"},{"name":"fromList","fullName":"String.fromList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromList","signature":"List Char -> String","comment":" Convert a list of characters into a String. Can be useful if you\\nwant to create a string primarily by consing, perhaps for decoding\\nsomething.\\n\\n    fromList [\'a\',\'b\',\'c\'] == \\"abc\\"\\n"},{"name":"indexes","fullName":"String.indexes","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indexes","signature":"String -> String -> List Int","comment":" Get all of the indexes for a substring in another string.\\n\\n    indexes \\"i\\" \\"Mississippi\\"   == [1,4,7,10]\\n    indexes \\"ss\\" \\"Mississippi\\"  == [2,5]\\n    indexes \\"needle\\" \\"haystack\\" == []\\n"},{"name":"indices","fullName":"String.indices","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indices","signature":"String -> String -> List Int","comment":" Alias for `indexes`. "},{"name":"isEmpty","fullName":"String.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#isEmpty","signature":"String -> Bool","comment":" Determine if a string is empty.\\n\\n    isEmpty \\"\\" == True\\n    isEmpty \\"the world\\" == False\\n"},{"name":"join","fullName":"String.join","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#join","signature":"String -> List String -> String","comment":" Put many strings together with a given separator.\\n\\n    join \\"a\\" [\\"H\\",\\"w\\",\\"ii\\",\\"n\\"]        == \\"Hawaiian\\"\\n    join \\" \\" [\\"cat\\",\\"dog\\",\\"cow\\"]       == \\"cat dog cow\\"\\n    join \\"/\\" [\\"home\\",\\"evan\\",\\"Desktop\\"] == \\"home/evan/Desktop\\"\\n"},{"name":"left","fullName":"String.left","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#left","signature":"Int -> String -> String","comment":" Take *n* characters from the left side of a string. "},{"name":"length","fullName":"String.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#length","signature":"String -> Int","comment":" Get the length of a string.\\n\\n    length \\"innumerable\\" == 11\\n    length \\"\\" == 0\\n\\n"},{"name":"lines","fullName":"String.lines","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#lines","signature":"String -> List String","comment":" Break a string into lines, splitting on newlines.\\n\\n    lines \\"How are you?\\\\nGood?\\" == [\\"How are you?\\", \\"Good?\\"]\\n"},{"name":"map","fullName":"String.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#map","signature":"(Char -> Char) -> String -> String","comment":" Transform every character in a string\\n\\n    map (\\\\c -> if c == \'/\' then \'.\' else c) \\"a/b/c\\" == \\"a.b.c\\"\\n"},{"name":"pad","fullName":"String.pad","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#pad","signature":"Int -> Char -> String -> String","comment":" Pad a string on both sides until it has a given length.\\n\\n    pad 5 \' \' \\"1\\"   == \\"  1  \\"\\n    pad 5 \' \' \\"11\\"  == \\"  11 \\"\\n    pad 5 \' \' \\"121\\" == \\" 121 \\"\\n"},{"name":"padLeft","fullName":"String.padLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padLeft","signature":"Int -> Char -> String -> String","comment":" Pad a string on the left until it has a given length.\\n\\n    padLeft 5 \'.\' \\"1\\"   == \\"....1\\"\\n    padLeft 5 \'.\' \\"11\\"  == \\"...11\\"\\n    padLeft 5 \'.\' \\"121\\" == \\"..121\\"\\n"},{"name":"padRight","fullName":"String.padRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padRight","signature":"Int -> Char -> String -> String","comment":" Pad a string on the right until it has a given length.\\n\\n    padRight 5 \'.\' \\"1\\"   == \\"1....\\"\\n    padRight 5 \'.\' \\"11\\"  == \\"11...\\"\\n    padRight 5 \'.\' \\"121\\" == \\"121..\\"\\n"},{"name":"repeat","fullName":"String.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#repeat","signature":"Int -> String -> String","comment":" Repeat a string *n* times.\\n\\n    repeat 3 \\"ha\\" == \\"hahaha\\"\\n"},{"name":"reverse","fullName":"String.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#reverse","signature":"String -> String","comment":" Reverse a string.\\n\\n    reverse \\"stressed\\" == \\"desserts\\"\\n"},{"name":"right","fullName":"String.right","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#right","signature":"Int -> String -> String","comment":" Take *n* characters from the right side of a string. "},{"name":"slice","fullName":"String.slice","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#slice","signature":"Int -> Int -> String -> String","comment":" Take a substring given a start and end index. Negative indexes\\nare taken starting from the *end* of the list.\\n\\n    slice  7  9 \\"snakes on a plane!\\" == \\"on\\"\\n    slice  0  6 \\"snakes on a plane!\\" == \\"snakes\\"\\n    slice  0 -7 \\"snakes on a plane!\\" == \\"snakes on a\\"\\n    slice -6 -1 \\"snakes on a plane!\\" == \\"plane\\"\\n"},{"name":"split","fullName":"String.split","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#split","signature":"String -> String -> List String","comment":" Split a string using a given separator.\\n\\n    split \\",\\" \\"cat,dog,cow\\"        == [\\"cat\\",\\"dog\\",\\"cow\\"]\\n    split \\"/\\" \\"home/evan/Desktop/\\" == [\\"home\\",\\"evan\\",\\"Desktop\\", \\"\\"]\\n\\nUse [`Regex.split`](Regex#split) if you need something more flexible.\\n"},{"name":"startsWith","fullName":"String.startsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#startsWith","signature":"String -> String -> Bool","comment":" See if the second string starts with the first one.\\n\\n    startsWith \\"the\\" \\"theory\\" == True\\n    startsWith \\"ory\\" \\"theory\\" == False\\n"},{"name":"toFloat","fullName":"String.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toFloat","signature":"String -> Result.Result String Float","comment":" Try to convert a string into a float, failing on improperly formatted strings.\\n\\n    toFloat \\"123\\" == Ok 123.0\\n    toFloat \\"-42\\" == Ok -42.0\\n    toFloat \\"3.1\\" == Ok 3.1\\n    toFloat \\"31a\\" == Err \\"could not convert string \'31a\' to a Float\\"\\n"},{"name":"toInt","fullName":"String.toInt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toInt","signature":"String -> Result.Result String Int","comment":" Try to convert a string into an int, failing on improperly formatted strings.\\n\\n    toInt \\"123\\" == Ok 123\\n    toInt \\"-42\\" == Ok -42\\n    toInt \\"3.1\\" == Err \\"could not convert string \'3.1\' to an Int\\"\\n    toInt \\"31a\\" == Err \\"could not convert string \'31a\' to an Int\\"\\n"},{"name":"toList","fullName":"String.toList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toList","signature":"String -> List Char","comment":" Convert a string to a list of characters.\\n\\n    toList \\"abc\\" == [\'a\',\'b\',\'c\']\\n"},{"name":"toLower","fullName":"String.toLower","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toLower","signature":"String -> String","comment":" Convert a string to all lower case. Useful for case-insensitive comparisons. "},{"name":"toUpper","fullName":"String.toUpper","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toUpper","signature":"String -> String","comment":" Convert a string to all upper case. Useful for case-insensitive comparisons\\nand VIRTUAL YELLING.\\n"},{"name":"trim","fullName":"String.trim","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trim","signature":"String -> String","comment":" Get rid of whitespace on both sides of a string.\\n\\n    trim \\"  hats  \\\\n\\" == \\"hats\\"\\n"},{"name":"trimLeft","fullName":"String.trimLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimLeft","signature":"String -> String","comment":" Get rid of whitespace on the left of a string.\\n\\n    trimLeft \\"  hats  \\\\n\\" == \\"hats  \\\\n\\"\\n"},{"name":"trimRight","fullName":"String.trimRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimRight","signature":"String -> String","comment":" Get rid of whitespace on the right of a string.\\n\\n    trimRight \\"  hats  \\\\n\\" == \\"  hats\\"\\n"},{"name":"uncons","fullName":"String.uncons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#uncons","signature":"String -> Maybe.Maybe ( Char, String )","comment":" Split a non-empty string into its head and tail. This lets you\\npattern match on strings exactly as you would with lists.\\n\\n    uncons \\"abc\\" == Just (\'a\',\\"bc\\")\\n    uncons \\"\\"    == Nothing\\n"},{"name":"words","fullName":"String.words","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#words","signature":"String -> List String","comment":" Break a string into words, splitting on chunks of whitespace.\\n\\n    words \\"How are \\\\t you? \\\\n Good?\\" == [\\"How\\",\\"are\\",\\"you?\\",\\"Good?\\"]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"all","fullName":"List.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#all","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if all elements satisfy the predicate.\\n\\n    all isEven [2,4] == True\\n    all isEven [2,3] == False\\n    all isEven [] == True\\n"},{"name":"any","fullName":"List.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#any","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if any elements satisfy the predicate.\\n\\n    any isEven [2,3] == True\\n    any isEven [1,3] == False\\n    any isEven [] == False\\n"},{"name":"append","fullName":"List.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#append","signature":"List a -> List a -> List a","comment":" Put two lists together.\\n\\n    append [1,1,2] [3,5,8] == [1,1,2,3,5,8]\\n    append [\'a\',\'b\'] [\'c\'] == [\'a\',\'b\',\'c\']\\n"},{"name":"concat","fullName":"List.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concat","signature":"List (List a) -> List a","comment":" Concatenate a bunch of lists into a single list:\\n\\n    concat [[1,2],[3],[4,5]] == [1,2,3,4,5]\\n"},{"name":"concatMap","fullName":"List.concatMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concatMap","signature":"(a -> List b) -> List a -> List b","comment":" Map a given function onto a list and flatten the resulting lists.\\n\\n    concatMap f xs == concat (map f xs)\\n"},{"name":"drop","fullName":"List.drop","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#drop","signature":"Int -> List a -> List a","comment":" Drop the first *n* members of a list.\\n\\n    drop 2 [1,2,3,4] == [3,4]\\n"},{"name":"filter","fullName":"List.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filter","signature":"(a -> Bool) -> List a -> List a","comment":" Keep only elements that satisfy the predicate.\\n\\n    filter isEven [1..6] == [2,4,6]\\n"},{"name":"filterMap","fullName":"List.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filterMap","signature":"(a -> Maybe.Maybe b) -> List a -> List b","comment":" Apply a function that may succeed to all values in the list, but only keep\\nthe successes.\\n\\n    String.toInt : String -> Maybe Int\\n\\n    filterMap String.toInt [\\"3\\", \\"4.0\\", \\"5\\", \\"hats\\"] == [3,5]\\n"},{"name":"foldl","fullName":"List.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldl","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the left.\\n\\n    foldl (::) [] [1,2,3] == [3,2,1]\\n"},{"name":"foldr","fullName":"List.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldr","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the right.\\n\\n    foldr (+) 0 [1,2,3] == 6\\n"},{"name":"head","fullName":"List.head","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#head","signature":"List a -> Maybe.Maybe a","comment":" Extract the first element of a list.\\n\\n    head [1,2,3] == Just 1\\n    head [] == Nothing\\n"},{"name":"indexedMap","fullName":"List.indexedMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#indexedMap","signature":"(Int -> a -> b) -> List a -> List b","comment":" Same as `map` but the function is also applied to the index of each\\nelement (starting at zero).\\n\\n    indexedMap (,) [\\"Tom\\",\\"Sue\\",\\"Bob\\"] == [ (0,\\"Tom\\"), (1,\\"Sue\\"), (2,\\"Bob\\") ]\\n"},{"name":"intersperse","fullName":"List.intersperse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#intersperse","signature":"a -> List a -> List a","comment":" Places the given value between all members of the given list.\\n\\n    intersperse \\"on\\" [\\"turtles\\",\\"turtles\\",\\"turtles\\"] == [\\"turtles\\",\\"on\\",\\"turtles\\",\\"on\\",\\"turtles\\"]\\n"},{"name":"isEmpty","fullName":"List.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#isEmpty","signature":"List a -> Bool","comment":" Determine if a list is empty.\\n\\n    isEmpty [] == True\\n"},{"name":"length","fullName":"List.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#length","signature":"List a -> Int","comment":" Determine the length of a list.\\n\\n    length [1,2,3] == 3\\n"},{"name":"map","fullName":"List.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map","signature":"(a -> b) -> List a -> List b","comment":" Apply a function to every element of a list.\\n\\n    map sqrt [1,4,9] == [1,2,3]\\n\\n    map not [True,False,True] == [False,True,False]\\n"},{"name":"map2","fullName":"List.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map2","signature":"(a -> b -> result) -> List a -> List b -> List result","comment":" Combine two lists, combining them with the given function.\\nIf one list is longer, the extra elements are dropped.\\n\\n    map2 (+) [1,2,3] [1,2,3,4] == [2,4,6]\\n\\n    map2 (,) [1,2,3] [\'a\',\'b\'] == [ (1,\'a\'), (2,\'b\') ]\\n\\n    pairs : List a -> List b -> List (a,b)\\n    pairs lefts rights =\\n        map2 (,) lefts rights\\n"},{"name":"map3","fullName":"List.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map3","signature":"(a -> b -> c -> result) -> List a -> List b -> List c -> List result","comment":""},{"name":"map4","fullName":"List.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map4","signature":"(a -> b -> c -> d -> result) -> List a -> List b -> List c -> List d -> List result","comment":""},{"name":"map5","fullName":"List.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map5","signature":"(a -> b -> c -> d -> e -> result) -> List a -> List b -> List c -> List d -> List e -> List result","comment":""},{"name":"maximum","fullName":"List.maximum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#maximum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the maximum element in a non-empty list.\\n\\n    maximum [1,4,2] == Just 4\\n    maximum []      == Nothing\\n"},{"name":"member","fullName":"List.member","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#member","signature":"a -> List a -> Bool","comment":" Figure out whether a list contains a value.\\n\\n    member 9 [1,2,3,4] == False\\n    member 4 [1,2,3,4] == True\\n"},{"name":"minimum","fullName":"List.minimum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#minimum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the minimum element in a non-empty list.\\n\\n    minimum [3,2,1] == Just 1\\n    minimum []      == Nothing\\n"},{"name":"partition","fullName":"List.partition","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#partition","signature":"(a -> Bool) -> List a -> ( List a, List a )","comment":" Partition a list based on a predicate. The first list contains all values\\nthat satisfy the predicate, and the second list contains all the value that do\\nnot.\\n\\n    partition (\\\\x -> x < 3) [0..5] == ([0,1,2], [3,4,5])\\n    partition isEven        [0..5] == ([0,2,4], [1,3,5])\\n"},{"name":"product","fullName":"List.product","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#product","signature":"List number -> number","comment":" Get the product of the list elements.\\n\\n    product [1..4] == 24\\n"},{"name":"repeat","fullName":"List.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#repeat","signature":"Int -> a -> List a","comment":" Create a list with *n* copies of a value:\\n\\n    repeat 3 (0,0) == [(0,0),(0,0),(0,0)]\\n"},{"name":"reverse","fullName":"List.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#reverse","signature":"List a -> List a","comment":" Reverse a list.\\n\\n    reverse [1..4] == [4,3,2,1]\\n"},{"name":"scanl","fullName":"List.scanl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#scanl","signature":"(a -> b -> b) -> b -> List a -> List b","comment":" Reduce a list from the left, building up all of the intermediate results into a list.\\n\\n    scanl (+) 0 [1,2,3,4] == [0,1,3,6,10]\\n"},{"name":"sort","fullName":"List.sort","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sort","signature":"List comparable -> List comparable","comment":" Sort values from lowest to highest\\n\\n    sort [3,1,5] == [1,3,5]\\n"},{"name":"sortBy","fullName":"List.sortBy","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortBy","signature":"(a -> comparable) -> List a -> List a","comment":" Sort values by a derived property.\\n\\n    alice = { name=\\"Alice\\", height=1.62 }\\n    bob   = { name=\\"Bob\\"  , height=1.85 }\\n    chuck = { name=\\"Chuck\\", height=1.76 }\\n\\n    sortBy .name   [chuck,alice,bob] == [alice,bob,chuck]\\n    sortBy .height [chuck,alice,bob] == [alice,chuck,bob]\\n\\n    sortBy String.length [\\"mouse\\",\\"cat\\"] == [\\"cat\\",\\"mouse\\"]\\n"},{"name":"sortWith","fullName":"List.sortWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortWith","signature":"(a -> a -> Basics.Order) -> List a -> List a","comment":" Sort values with a custom comparison function.\\n\\n    sortWith flippedComparison [1..5] == [5,4,3,2,1]\\n\\n    flippedComparison a b =\\n        case compare a b of\\n          LT -> GT\\n          EQ -> EQ\\n          GT -> LT\\n\\nThis is also the most general sort function, allowing you\\nto define any other: `sort == sortWith compare`\\n"},{"name":"sum","fullName":"List.sum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sum","signature":"List number -> number","comment":" Get the sum of the list elements.\\n\\n    sum [1..4] == 10\\n"},{"name":"tail","fullName":"List.tail","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#tail","signature":"List a -> Maybe.Maybe (List a)","comment":" Extract the rest of the list.\\n\\n    tail [1,2,3] == Just [2,3]\\n    tail [] == Nothing\\n"},{"name":"take","fullName":"List.take","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#take","signature":"Int -> List a -> List a","comment":" Take the first *n* members of a list.\\n\\n    take 2 [1,2,3,4] == [1,2]\\n"},{"name":"unzip","fullName":"List.unzip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#unzip","signature":"List ( a, b ) -> ( List a, List b )","comment":" Decompose a list of tuples into a tuple of lists.\\n\\n    unzip [(0, True), (17, False), (1337, True)] == ([0,17,1337], [True,False,True])\\n"},{"name":"andThen","fullName":"Result.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#andThen","signature":"Result.Result x a -> (a -> Result.Result x b) -> Result.Result x b","comment":" Chain together a sequence of computations that may fail. It is helpful\\nto see its definition:\\n\\n    andThen : Result e a -> (a -> Result e b) -> Result e b\\n    andThen result callback =\\n        case result of\\n          Ok value -> callback value\\n          Err msg -> Err msg\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`toInt : String -> Result String Int`) to parse\\na month and make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Result String Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12\\n            then Ok month\\n            else Err \\"months must be between 1 and 12\\"\\n\\n    toMonth : String -> Result String Int\\n    toMonth rawString =\\n        toInt rawString `andThen` toValidMonth\\n\\n    -- toMonth \\"4\\" == Ok 4\\n    -- toMonth \\"9\\" == Ok 9\\n    -- toMonth \\"a\\" == Err \\"cannot parse to an Int\\"\\n    -- toMonth \\"0\\" == Err \\"months must be between 1 and 12\\"\\n\\nThis allows us to come out of a chain of operations with quite a specific error\\nmessage. It is often best to create a custom type that explicitly represents\\nthe exact ways your computation may fail. This way it is easy to handle in your\\ncode.\\n"},{"name":"formatError","fullName":"Result.formatError","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#formatError","signature":"(error -> error\') -> Result.Result error a -> Result.Result error\' a","comment":" Format the error value of a result. If the result is `Ok`, it stays exactly\\nthe same, but if the result is an `Err` we will format the error. For example,\\nsay the errors we get have too much information:\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    type ParseError =\\n        { message : String\\n        , code : Int\\n        , position : (Int,Int)\\n        }\\n\\n    formatError .message (parseInt \\"123\\") == Ok 123\\n    formatError .message (parseInt \\"abc\\") == Err \\"char \'a\' is not a number\\"\\n"},{"name":"fromMaybe","fullName":"Result.fromMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#fromMaybe","signature":"x -> Maybe.Maybe a -> Result.Result x a","comment":" Convert from a simple `Maybe` to interact with some code that primarily\\nuses `Results`.\\n\\n    parseInt : String -> Maybe Int\\n\\n    resultParseInt : String -> Result String Int\\n    resultParseInt string =\\n        fromMaybe (\\"error parsing string: \\" ++ toString string) (parseInt string)\\n"},{"name":"map","fullName":"Result.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map","signature":"(a -> value) -> Result.Result x a -> Result.Result x value","comment":" Apply a function to a result. If the result is `Ok`, it will be converted.\\nIf the result is an `Err`, the same error value will propagate through.\\n\\n    map sqrt (Ok 4.0)          == Ok 2.0\\n    map sqrt (Err \\"bad input\\") == Err \\"bad input\\"\\n"},{"name":"map2","fullName":"Result.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map2","signature":"(a -> b -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x value","comment":" Apply a function to two results, if both results are `Ok`. If not,\\nthe first argument which is an `Err` will propagate through.\\n\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"2\\") == Ok 3\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"y\\") == Err \\"could not convert string \'y\' to an Int\\"\\n    map2 (+) (String.toInt \\"x\\") (String.toInt \\"y\\") == Err \\"could not convert string \'x\' to an Int\\"\\n"},{"name":"map3","fullName":"Result.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map3","signature":"(a -> b -> c -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x value","comment":""},{"name":"map4","fullName":"Result.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map4","signature":"(a -> b -> c -> d -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x value","comment":""},{"name":"map5","fullName":"Result.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map5","signature":"(a -> b -> c -> d -> e -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x e -> Result.Result x value","comment":""},{"name":"toMaybe","fullName":"Result.toMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#toMaybe","signature":"Result.Result x a -> Maybe.Maybe a","comment":" Convert to a simpler `Maybe` if the actual error message is not needed or\\nyou need to interact with some code that primarily uses maybes.\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    maybeParseInt : String -> Maybe Int\\n    maybeParseInt string =\\n        toMaybe (parseInt string)\\n"},{"name":"withDefault","fullName":"Result.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#withDefault","signature":"a -> Result.Result x a -> a","comment":" If the result is `Ok` return the value, but if the result is an `Err` then\\nreturn a given default value. The following examples try to parse integers.\\n\\n    Result.withDefault 0 (String.toInt \\"123\\") == 123\\n    Result.withDefault 0 (String.toInt \\"abc\\") == 0\\n"},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"andThen","fullName":"Maybe.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#andThen","signature":"Maybe.Maybe a -> (a -> Maybe.Maybe b) -> Maybe.Maybe b","comment":" Chain together many computations that may fail. It is helpful to see its\\ndefinition:\\n\\n    andThen : Maybe a -> (a -> Maybe b) -> Maybe b\\n    andThen maybe callback =\\n        case maybe of\\n            Just value ->\\n                callback value\\n\\n            Nothing ->\\n                Nothing\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`head : List Int -> Maybe Int`) to get the\\nfirst month from a `List` and then make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Maybe Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12 then\\n            Just month\\n        else\\n            Nothing\\n\\n    getFirstMonth : List Int -> Maybe Int\\n    getFirstMonth months =\\n        head months `andThen` toValidMonth\\n\\nIf `head` fails and results in `Nothing` (because the `List` was empty`),\\nthis entire chain of operations will short-circuit and result in `Nothing`.\\nIf `toValidMonth` results in `Nothing`, again the chain of computations\\nwill result in `Nothing`.\\n"},{"name":"map","fullName":"Maybe.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map","signature":"(a -> b) -> Maybe.Maybe a -> Maybe.Maybe b","comment":" Transform a `Maybe` value with a given function:\\n\\n    map sqrt (Just 9) == Just 3\\n    map sqrt Nothing == Nothing\\n"},{"name":"map2","fullName":"Maybe.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map2","signature":"(a -> b -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe value","comment":" Apply a function if all the arguments are `Just` a value.\\n\\n    map2 (+) (Just 3) (Just 4) == Just 7\\n    map2 (+) (Just 3) Nothing == Nothing\\n    map2 (+) Nothing (Just 4) == Nothing\\n"},{"name":"map3","fullName":"Maybe.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map3","signature":"(a -> b -> c -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe value","comment":""},{"name":"map4","fullName":"Maybe.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map4","signature":"(a -> b -> c -> d -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe value","comment":""},{"name":"map5","fullName":"Maybe.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map5","signature":"(a -> b -> c -> d -> e -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe e -> Maybe.Maybe value","comment":""},{"name":"oneOf","fullName":"Maybe.oneOf","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#oneOf","signature":"List (Maybe.Maybe a) -> Maybe.Maybe a","comment":" Pick the first `Maybe` that actually has a value. Useful when you want to\\ntry a couple different things, but there is no default value.\\n\\n    oneOf [ Nothing, Just 42, Just 71 ] == Just 42\\n    oneOf [ Nothing, Nothing, Just 71 ] == Just 71\\n    oneOf [ Nothing, Nothing, Nothing ] == Nothing\\n"},{"name":"withDefault","fullName":"Maybe.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#withDefault","signature":"a -> Maybe.Maybe a -> a","comment":" Provide a default value, turning an optional value into a normal\\nvalue.  This comes in handy when paired with functions like\\n[`Dict.get`](Dict#get) which gives back a `Maybe`.\\n\\n    withDefault 100 (Just 42)   -- 42\\n    withDefault 100 Nothing     -- 100\\n\\n    withDefault \\"unknown\\" (Dict.get \\"Tom\\" Dict.empty)   -- \\"unknown\\"\\n\\n"},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""}]' 
errors: b''
[Elm says]: (elm-oracle) b'[{"name":"Mailbox","fullName":"Signal.Mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#Mailbox","signature":"{ address : Signal.Address a, signal : Signal.Signal a }","comment":" A `Mailbox` is a communication hub. It is made up of\\n\\n  * an `Address` that you can send messages to\\n  * a `Signal` of messages sent to the mailbox\\n"},{"name":"constant","fullName":"Signal.constant","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#constant","signature":"a -> Signal.Signal a","comment":" Create a signal that never changes. This can be useful if you need\\nto pass a combination of signals and normal values to a function:\\n\\n    map3 view Window.dimensions Mouse.position (constant initialModel)\\n"},{"name":"dropRepeats","fullName":"Signal.dropRepeats","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#dropRepeats","signature":"Signal.Signal a -> Signal.Signal a","comment":" Drop updates that repeat the current value of the signal.\\n\\n    numbers : Signal Int\\n\\n    noDups : Signal Int\\n    noDups =\\n        dropRepeats numbers\\n\\n    --  numbers => 0 0 3 3 5 5 5 4 ...\\n    --  noDups  => 0   3   5     4 ...\\n\\nThe signal should not be a signal of functions, or a record that contains a\\nfunction (you\'ll get a runtime error since functions cannot be equated).\\n"},{"name":"filter","fullName":"Signal.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filter","signature":"(a -> Bool) -> a -> Signal.Signal a -> Signal.Signal a","comment":" Filter out some updates. The given function decides whether we should\\n*keep* an update. If no updates ever flow through, we use the default value\\nprovided. The following example only keeps even numbers and has an initial\\nvalue of zero.\\n\\n    numbers : Signal Int\\n\\n    isEven : Int -> Bool\\n\\n    evens : Signal Int\\n    evens =\\n        filter isEven 0 numbers\\n"},{"name":"filterMap","fullName":"Signal.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filterMap","signature":"(a -> Maybe.Maybe b) -> b -> Signal.Signal a -> Signal.Signal b","comment":" Filter out some updates. When the filter function gives back `Just` a\\nvalue, we send that value along. When it returns `Nothing` we drop it.\\nIf the initial value of the incoming signal turns into `Nothing`, we use the\\ndefault value provided. The following example keeps only strings that can be\\nread as integers.\\n\\n    userInput : Signal String\\n\\n    toInt : String -> Maybe Int\\n\\n    numbers : Signal Int\\n    numbers =\\n        filterMap toInt 0 userInput\\n"},{"name":"foldp","fullName":"Signal.foldp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#foldp","signature":"(a -> state -> state) -> state -> Signal.Signal a -> Signal.Signal state","comment":" Create a past-dependent signal. Each update from the incoming signals will\\nbe used to step the state forward. The outgoing signal represents the current\\nstate.\\n\\n    clickCount : Signal Int\\n    clickCount =\\n        foldp (\\\\click total -> total + 1) 0 Mouse.clicks\\n\\n    timeSoFar : Signal Time\\n    timeSoFar =\\n        foldp (+) 0 (fps 40)\\n\\nSo `clickCount` updates on each mouse click, incrementing by one. `timeSoFar`\\nis the time the program has been running, updated 40 times a second.\\n"},{"name":"forwardTo","fullName":"Signal.forwardTo","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#forwardTo","signature":"Signal.Address b -> (a -> b) -> Signal.Address a","comment":" Create a new address. This address will tag each message it receives\\nand then forward it along to some other address.\\n\\n    type Action = Undo | Remove Int | NoOp\\n\\n    actions : Mailbox Action\\n    actions = mailbox NoOp\\n\\n    removeAddress : Address Int\\n    removeAddress =\\n        forwardTo actions.address Remove\\n\\nIn this case we have a general `address` that many people may send\\nmessages to. The new `removeAddress` tags all messages with the `Remove` tag\\nbefore forwarding them along to the more general `address`. This means\\nsome parts of our application can know *only* about `removeAddress` and not\\ncare what other kinds of `Actions` are possible.\\n"},{"name":"mailbox","fullName":"Signal.mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mailbox","signature":"a -> Signal.Mailbox a","comment":" Create a mailbox you can send messages to. The primary use case is\\nreceiving updates from tasks and UI elements. The argument is a default value\\nfor the custom signal.\\n\\nNote: Creating new signals is inherently impure, so `(mailbox ())` and\\n`(mailbox ())` produce two different mailboxes.\\n"},{"name":"map","fullName":"Signal.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map","signature":"(a -> result) -> Signal.Signal a -> Signal.Signal result","comment":" Apply a function to a signal.\\n\\n    mouseIsUp : Signal Bool\\n    mouseIsUp =\\n        map not Mouse.isDown\\n\\n    main : Signal Element\\n    main =\\n        map Graphics.Element.show Mouse.position\\n"},{"name":"map2","fullName":"Signal.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map2","signature":"(a -> b -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal result","comment":" Apply a function to the current value of two signals. The function\\nis reevaluated whenever *either* signal changes. In the following example, we\\nfigure out the `aspectRatio` of the window by combining the current width and\\nheight.\\n\\n    ratio : Int -> Int -> Float\\n    ratio width height =\\n        toFloat width / toFloat height\\n\\n    aspectRatio : Signal Float\\n    aspectRatio =\\n        map2 ratio Window.width Window.height\\n"},{"name":"map3","fullName":"Signal.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map3","signature":"(a -> b -> c -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal result","comment":""},{"name":"map4","fullName":"Signal.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map4","signature":"(a -> b -> c -> d -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal result","comment":""},{"name":"map5","fullName":"Signal.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map5","signature":"(a -> b -> c -> d -> e -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal e -> Signal.Signal result","comment":""},{"name":"merge","fullName":"Signal.merge","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#merge","signature":"Signal.Signal a -> Signal.Signal a -> Signal.Signal a","comment":" Merge two signals into one. This function is extremely useful for bringing\\ntogether lots of different signals to feed into a `foldp`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float\\n\\n    updates : Signal Update\\n    updates =\\n        merge\\n            (map MouseMove Mouse.position)\\n            (map TimeDelta (fps 40))\\n\\nIf an update comes from either of the incoming signals, it updates the outgoing\\nsignal. If an update comes on both signals at the same time, the update provided\\nby the left input signal wins (i.e., the update from the second signal is discarded).\\n"},{"name":"mergeMany","fullName":"Signal.mergeMany","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mergeMany","signature":"List (Signal.Signal a) -> Signal.Signal a","comment":" Merge many signals into one. This is useful when you are merging more than\\ntwo signals. When multiple updates come in at the same time, the left-most\\nupdate wins, just like with `merge`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float | Click\\n\\n    updates : Signal Update\\n    updates =\\n        mergeMany\\n            [ map MouseMove Mouse.position\\n            , map TimeDelta (fps 40)\\n            , map (always Click) Mouse.clicks\\n            ]\\n"},{"name":"message","fullName":"Signal.message","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#message","signature":"Signal.Address a -> a -> Signal.Message","comment":" Create a message that may be sent to a `Mailbox` at a later time.\\n\\nMost importantly, this lets us create APIs that can send values to ports\\n*without* allowing people to run arbitrary tasks.\\n"},{"name":"sampleOn","fullName":"Signal.sampleOn","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#sampleOn","signature":"Signal.Signal a -> Signal.Signal b -> Signal.Signal b","comment":" Sample from the second input every time an event occurs on the first input.\\nFor example, `(sampleOn Mouse.clicks (Time.every Time.second))` will give the\\napproximate time of the latest click. "},{"name":"send","fullName":"Signal.send","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#send","signature":"Signal.Address a -> a -> Task.Task x ()","comment":" Send a message to an `Address`.\\n\\n    type Action = Undo | Remove Int\\n\\n    address : Address Action\\n\\n    requestUndo : Task x ()\\n    requestUndo =\\n        send address Undo\\n\\nThe `Signal` associated with `address` will receive the `Undo` message\\nand push it through the Elm program.\\n"},{"name":"all","fullName":"String.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#all","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *all* characters satisfy a predicate.\\n\\n    all isDigit \\"90210\\" == True\\n    all isDigit \\"R2-D2\\" == False\\n    all isDigit \\"heart\\" == False\\n"},{"name":"any","fullName":"String.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#any","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *any* characters satisfy a predicate.\\n\\n    any isDigit \\"90210\\" == True\\n    any isDigit \\"R2-D2\\" == True\\n    any isDigit \\"heart\\" == False\\n"},{"name":"append","fullName":"String.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#append","signature":"String -> String -> String","comment":" Append two strings. You can also use [the `(++)` operator](Basics#++)\\nto do this.\\n\\n    append \\"butter\\" \\"fly\\" == \\"butterfly\\"\\n"},{"name":"concat","fullName":"String.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#concat","signature":"List String -> String","comment":" Concatenate many strings into one.\\n\\n    concat [\\"never\\",\\"the\\",\\"less\\"] == \\"nevertheless\\"\\n"},{"name":"cons","fullName":"String.cons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#cons","signature":"Char -> String -> String","comment":" Add a character to the beginning of a string. "},{"name":"contains","fullName":"String.contains","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#contains","signature":"String -> String -> Bool","comment":" See if the second string contains the first one.\\n\\n    contains \\"the\\" \\"theory\\" == True\\n    contains \\"hat\\" \\"theory\\" == False\\n    contains \\"THE\\" \\"theory\\" == False\\n\\nUse [`Regex.contains`](Regex#contains) if you need something more flexible.\\n"},{"name":"dropLeft","fullName":"String.dropLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropLeft","signature":"Int -> String -> String","comment":" Drop *n* characters from the left side of a string. "},{"name":"dropRight","fullName":"String.dropRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropRight","signature":"Int -> String -> String","comment":" Drop *n* characters from the right side of a string. "},{"name":"endsWith","fullName":"String.endsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#endsWith","signature":"String -> String -> Bool","comment":" See if the second string ends with the first one.\\n\\n    endsWith \\"the\\" \\"theory\\" == False\\n    endsWith \\"ory\\" \\"theory\\" == True\\n"},{"name":"filter","fullName":"String.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#filter","signature":"(Char -> Bool) -> String -> String","comment":" Keep only the characters that satisfy the predicate.\\n\\n    filter isDigit \\"R2-D2\\" == \\"22\\"\\n"},{"name":"foldl","fullName":"String.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldl","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the left.\\n\\n    foldl cons \\"\\" \\"time\\" == \\"emit\\"\\n"},{"name":"foldr","fullName":"String.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldr","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the right.\\n\\n    foldr cons \\"\\" \\"time\\" == \\"time\\"\\n"},{"name":"fromChar","fullName":"String.fromChar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromChar","signature":"Char -> String","comment":" Create a string from a given character.\\n\\n    fromChar \'a\' == \\"a\\"\\n"},{"name":"fromList","fullName":"String.fromList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromList","signature":"List Char -> String","comment":" Convert a list of characters into a String. Can be useful if you\\nwant to create a string primarily by consing, perhaps for decoding\\nsomething.\\n\\n    fromList [\'a\',\'b\',\'c\'] == \\"abc\\"\\n"},{"name":"indexes","fullName":"String.indexes","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indexes","signature":"String -> String -> List Int","comment":" Get all of the indexes for a substring in another string.\\n\\n    indexes \\"i\\" \\"Mississippi\\"   == [1,4,7,10]\\n    indexes \\"ss\\" \\"Mississippi\\"  == [2,5]\\n    indexes \\"needle\\" \\"haystack\\" == []\\n"},{"name":"indices","fullName":"String.indices","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indices","signature":"String -> String -> List Int","comment":" Alias for `indexes`. "},{"name":"isEmpty","fullName":"String.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#isEmpty","signature":"String -> Bool","comment":" Determine if a string is empty.\\n\\n    isEmpty \\"\\" == True\\n    isEmpty \\"the world\\" == False\\n"},{"name":"join","fullName":"String.join","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#join","signature":"String -> List String -> String","comment":" Put many strings together with a given separator.\\n\\n    join \\"a\\" [\\"H\\",\\"w\\",\\"ii\\",\\"n\\"]        == \\"Hawaiian\\"\\n    join \\" \\" [\\"cat\\",\\"dog\\",\\"cow\\"]       == \\"cat dog cow\\"\\n    join \\"/\\" [\\"home\\",\\"evan\\",\\"Desktop\\"] == \\"home/evan/Desktop\\"\\n"},{"name":"left","fullName":"String.left","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#left","signature":"Int -> String -> String","comment":" Take *n* characters from the left side of a string. "},{"name":"length","fullName":"String.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#length","signature":"String -> Int","comment":" Get the length of a string.\\n\\n    length \\"innumerable\\" == 11\\n    length \\"\\" == 0\\n\\n"},{"name":"lines","fullName":"String.lines","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#lines","signature":"String -> List String","comment":" Break a string into lines, splitting on newlines.\\n\\n    lines \\"How are you?\\\\nGood?\\" == [\\"How are you?\\", \\"Good?\\"]\\n"},{"name":"map","fullName":"String.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#map","signature":"(Char -> Char) -> String -> String","comment":" Transform every character in a string\\n\\n    map (\\\\c -> if c == \'/\' then \'.\' else c) \\"a/b/c\\" == \\"a.b.c\\"\\n"},{"name":"pad","fullName":"String.pad","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#pad","signature":"Int -> Char -> String -> String","comment":" Pad a string on both sides until it has a given length.\\n\\n    pad 5 \' \' \\"1\\"   == \\"  1  \\"\\n    pad 5 \' \' \\"11\\"  == \\"  11 \\"\\n    pad 5 \' \' \\"121\\" == \\" 121 \\"\\n"},{"name":"padLeft","fullName":"String.padLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padLeft","signature":"Int -> Char -> String -> String","comment":" Pad a string on the left until it has a given length.\\n\\n    padLeft 5 \'.\' \\"1\\"   == \\"....1\\"\\n    padLeft 5 \'.\' \\"11\\"  == \\"...11\\"\\n    padLeft 5 \'.\' \\"121\\" == \\"..121\\"\\n"},{"name":"padRight","fullName":"String.padRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padRight","signature":"Int -> Char -> String -> String","comment":" Pad a string on the right until it has a given length.\\n\\n    padRight 5 \'.\' \\"1\\"   == \\"1....\\"\\n    padRight 5 \'.\' \\"11\\"  == \\"11...\\"\\n    padRight 5 \'.\' \\"121\\" == \\"121..\\"\\n"},{"name":"repeat","fullName":"String.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#repeat","signature":"Int -> String -> String","comment":" Repeat a string *n* times.\\n\\n    repeat 3 \\"ha\\" == \\"hahaha\\"\\n"},{"name":"reverse","fullName":"String.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#reverse","signature":"String -> String","comment":" Reverse a string.\\n\\n    reverse \\"stressed\\" == \\"desserts\\"\\n"},{"name":"right","fullName":"String.right","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#right","signature":"Int -> String -> String","comment":" Take *n* characters from the right side of a string. "},{"name":"slice","fullName":"String.slice","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#slice","signature":"Int -> Int -> String -> String","comment":" Take a substring given a start and end index. Negative indexes\\nare taken starting from the *end* of the list.\\n\\n    slice  7  9 \\"snakes on a plane!\\" == \\"on\\"\\n    slice  0  6 \\"snakes on a plane!\\" == \\"snakes\\"\\n    slice  0 -7 \\"snakes on a plane!\\" == \\"snakes on a\\"\\n    slice -6 -1 \\"snakes on a plane!\\" == \\"plane\\"\\n"},{"name":"split","fullName":"String.split","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#split","signature":"String -> String -> List String","comment":" Split a string using a given separator.\\n\\n    split \\",\\" \\"cat,dog,cow\\"        == [\\"cat\\",\\"dog\\",\\"cow\\"]\\n    split \\"/\\" \\"home/evan/Desktop/\\" == [\\"home\\",\\"evan\\",\\"Desktop\\", \\"\\"]\\n\\nUse [`Regex.split`](Regex#split) if you need something more flexible.\\n"},{"name":"startsWith","fullName":"String.startsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#startsWith","signature":"String -> String -> Bool","comment":" See if the second string starts with the first one.\\n\\n    startsWith \\"the\\" \\"theory\\" == True\\n    startsWith \\"ory\\" \\"theory\\" == False\\n"},{"name":"toFloat","fullName":"String.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toFloat","signature":"String -> Result.Result String Float","comment":" Try to convert a string into a float, failing on improperly formatted strings.\\n\\n    toFloat \\"123\\" == Ok 123.0\\n    toFloat \\"-42\\" == Ok -42.0\\n    toFloat \\"3.1\\" == Ok 3.1\\n    toFloat \\"31a\\" == Err \\"could not convert string \'31a\' to a Float\\"\\n"},{"name":"toInt","fullName":"String.toInt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toInt","signature":"String -> Result.Result String Int","comment":" Try to convert a string into an int, failing on improperly formatted strings.\\n\\n    toInt \\"123\\" == Ok 123\\n    toInt \\"-42\\" == Ok -42\\n    toInt \\"3.1\\" == Err \\"could not convert string \'3.1\' to an Int\\"\\n    toInt \\"31a\\" == Err \\"could not convert string \'31a\' to an Int\\"\\n"},{"name":"toList","fullName":"String.toList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toList","signature":"String -> List Char","comment":" Convert a string to a list of characters.\\n\\n    toList \\"abc\\" == [\'a\',\'b\',\'c\']\\n"},{"name":"toLower","fullName":"String.toLower","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toLower","signature":"String -> String","comment":" Convert a string to all lower case. Useful for case-insensitive comparisons. "},{"name":"toUpper","fullName":"String.toUpper","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toUpper","signature":"String -> String","comment":" Convert a string to all upper case. Useful for case-insensitive comparisons\\nand VIRTUAL YELLING.\\n"},{"name":"trim","fullName":"String.trim","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trim","signature":"String -> String","comment":" Get rid of whitespace on both sides of a string.\\n\\n    trim \\"  hats  \\\\n\\" == \\"hats\\"\\n"},{"name":"trimLeft","fullName":"String.trimLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimLeft","signature":"String -> String","comment":" Get rid of whitespace on the left of a string.\\n\\n    trimLeft \\"  hats  \\\\n\\" == \\"hats  \\\\n\\"\\n"},{"name":"trimRight","fullName":"String.trimRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimRight","signature":"String -> String","comment":" Get rid of whitespace on the right of a string.\\n\\n    trimRight \\"  hats  \\\\n\\" == \\"  hats\\"\\n"},{"name":"uncons","fullName":"String.uncons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#uncons","signature":"String -> Maybe.Maybe ( Char, String )","comment":" Split a non-empty string into its head and tail. This lets you\\npattern match on strings exactly as you would with lists.\\n\\n    uncons \\"abc\\" == Just (\'a\',\\"bc\\")\\n    uncons \\"\\"    == Nothing\\n"},{"name":"words","fullName":"String.words","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#words","signature":"String -> List String","comment":" Break a string into words, splitting on chunks of whitespace.\\n\\n    words \\"How are \\\\t you? \\\\n Good?\\" == [\\"How\\",\\"are\\",\\"you?\\",\\"Good?\\"]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"all","fullName":"List.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#all","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if all elements satisfy the predicate.\\n\\n    all isEven [2,4] == True\\n    all isEven [2,3] == False\\n    all isEven [] == True\\n"},{"name":"any","fullName":"List.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#any","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if any elements satisfy the predicate.\\n\\n    any isEven [2,3] == True\\n    any isEven [1,3] == False\\n    any isEven [] == False\\n"},{"name":"append","fullName":"List.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#append","signature":"List a -> List a -> List a","comment":" Put two lists together.\\n\\n    append [1,1,2] [3,5,8] == [1,1,2,3,5,8]\\n    append [\'a\',\'b\'] [\'c\'] == [\'a\',\'b\',\'c\']\\n"},{"name":"concat","fullName":"List.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concat","signature":"List (List a) -> List a","comment":" Concatenate a bunch of lists into a single list:\\n\\n    concat [[1,2],[3],[4,5]] == [1,2,3,4,5]\\n"},{"name":"concatMap","fullName":"List.concatMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concatMap","signature":"(a -> List b) -> List a -> List b","comment":" Map a given function onto a list and flatten the resulting lists.\\n\\n    concatMap f xs == concat (map f xs)\\n"},{"name":"drop","fullName":"List.drop","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#drop","signature":"Int -> List a -> List a","comment":" Drop the first *n* members of a list.\\n\\n    drop 2 [1,2,3,4] == [3,4]\\n"},{"name":"filter","fullName":"List.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filter","signature":"(a -> Bool) -> List a -> List a","comment":" Keep only elements that satisfy the predicate.\\n\\n    filter isEven [1..6] == [2,4,6]\\n"},{"name":"filterMap","fullName":"List.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filterMap","signature":"(a -> Maybe.Maybe b) -> List a -> List b","comment":" Apply a function that may succeed to all values in the list, but only keep\\nthe successes.\\n\\n    String.toInt : String -> Maybe Int\\n\\n    filterMap String.toInt [\\"3\\", \\"4.0\\", \\"5\\", \\"hats\\"] == [3,5]\\n"},{"name":"foldl","fullName":"List.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldl","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the left.\\n\\n    foldl (::) [] [1,2,3] == [3,2,1]\\n"},{"name":"foldr","fullName":"List.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldr","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the right.\\n\\n    foldr (+) 0 [1,2,3] == 6\\n"},{"name":"head","fullName":"List.head","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#head","signature":"List a -> Maybe.Maybe a","comment":" Extract the first element of a list.\\n\\n    head [1,2,3] == Just 1\\n    head [] == Nothing\\n"},{"name":"indexedMap","fullName":"List.indexedMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#indexedMap","signature":"(Int -> a -> b) -> List a -> List b","comment":" Same as `map` but the function is also applied to the index of each\\nelement (starting at zero).\\n\\n    indexedMap (,) [\\"Tom\\",\\"Sue\\",\\"Bob\\"] == [ (0,\\"Tom\\"), (1,\\"Sue\\"), (2,\\"Bob\\") ]\\n"},{"name":"intersperse","fullName":"List.intersperse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#intersperse","signature":"a -> List a -> List a","comment":" Places the given value between all members of the given list.\\n\\n    intersperse \\"on\\" [\\"turtles\\",\\"turtles\\",\\"turtles\\"] == [\\"turtles\\",\\"on\\",\\"turtles\\",\\"on\\",\\"turtles\\"]\\n"},{"name":"isEmpty","fullName":"List.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#isEmpty","signature":"List a -> Bool","comment":" Determine if a list is empty.\\n\\n    isEmpty [] == True\\n"},{"name":"length","fullName":"List.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#length","signature":"List a -> Int","comment":" Determine the length of a list.\\n\\n    length [1,2,3] == 3\\n"},{"name":"map","fullName":"List.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map","signature":"(a -> b) -> List a -> List b","comment":" Apply a function to every element of a list.\\n\\n    map sqrt [1,4,9] == [1,2,3]\\n\\n    map not [True,False,True] == [False,True,False]\\n"},{"name":"map2","fullName":"List.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map2","signature":"(a -> b -> result) -> List a -> List b -> List result","comment":" Combine two lists, combining them with the given function.\\nIf one list is longer, the extra elements are dropped.\\n\\n    map2 (+) [1,2,3] [1,2,3,4] == [2,4,6]\\n\\n    map2 (,) [1,2,3] [\'a\',\'b\'] == [ (1,\'a\'), (2,\'b\') ]\\n\\n    pairs : List a -> List b -> List (a,b)\\n    pairs lefts rights =\\n        map2 (,) lefts rights\\n"},{"name":"map3","fullName":"List.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map3","signature":"(a -> b -> c -> result) -> List a -> List b -> List c -> List result","comment":""},{"name":"map4","fullName":"List.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map4","signature":"(a -> b -> c -> d -> result) -> List a -> List b -> List c -> List d -> List result","comment":""},{"name":"map5","fullName":"List.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map5","signature":"(a -> b -> c -> d -> e -> result) -> List a -> List b -> List c -> List d -> List e -> List result","comment":""},{"name":"maximum","fullName":"List.maximum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#maximum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the maximum element in a non-empty list.\\n\\n    maximum [1,4,2] == Just 4\\n    maximum []      == Nothing\\n"},{"name":"member","fullName":"List.member","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#member","signature":"a -> List a -> Bool","comment":" Figure out whether a list contains a value.\\n\\n    member 9 [1,2,3,4] == False\\n    member 4 [1,2,3,4] == True\\n"},{"name":"minimum","fullName":"List.minimum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#minimum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the minimum element in a non-empty list.\\n\\n    minimum [3,2,1] == Just 1\\n    minimum []      == Nothing\\n"},{"name":"partition","fullName":"List.partition","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#partition","signature":"(a -> Bool) -> List a -> ( List a, List a )","comment":" Partition a list based on a predicate. The first list contains all values\\nthat satisfy the predicate, and the second list contains all the value that do\\nnot.\\n\\n    partition (\\\\x -> x < 3) [0..5] == ([0,1,2], [3,4,5])\\n    partition isEven        [0..5] == ([0,2,4], [1,3,5])\\n"},{"name":"product","fullName":"List.product","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#product","signature":"List number -> number","comment":" Get the product of the list elements.\\n\\n    product [1..4] == 24\\n"},{"name":"repeat","fullName":"List.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#repeat","signature":"Int -> a -> List a","comment":" Create a list with *n* copies of a value:\\n\\n    repeat 3 (0,0) == [(0,0),(0,0),(0,0)]\\n"},{"name":"reverse","fullName":"List.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#reverse","signature":"List a -> List a","comment":" Reverse a list.\\n\\n    reverse [1..4] == [4,3,2,1]\\n"},{"name":"scanl","fullName":"List.scanl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#scanl","signature":"(a -> b -> b) -> b -> List a -> List b","comment":" Reduce a list from the left, building up all of the intermediate results into a list.\\n\\n    scanl (+) 0 [1,2,3,4] == [0,1,3,6,10]\\n"},{"name":"sort","fullName":"List.sort","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sort","signature":"List comparable -> List comparable","comment":" Sort values from lowest to highest\\n\\n    sort [3,1,5] == [1,3,5]\\n"},{"name":"sortBy","fullName":"List.sortBy","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortBy","signature":"(a -> comparable) -> List a -> List a","comment":" Sort values by a derived property.\\n\\n    alice = { name=\\"Alice\\", height=1.62 }\\n    bob   = { name=\\"Bob\\"  , height=1.85 }\\n    chuck = { name=\\"Chuck\\", height=1.76 }\\n\\n    sortBy .name   [chuck,alice,bob] == [alice,bob,chuck]\\n    sortBy .height [chuck,alice,bob] == [alice,chuck,bob]\\n\\n    sortBy String.length [\\"mouse\\",\\"cat\\"] == [\\"cat\\",\\"mouse\\"]\\n"},{"name":"sortWith","fullName":"List.sortWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortWith","signature":"(a -> a -> Basics.Order) -> List a -> List a","comment":" Sort values with a custom comparison function.\\n\\n    sortWith flippedComparison [1..5] == [5,4,3,2,1]\\n\\n    flippedComparison a b =\\n        case compare a b of\\n          LT -> GT\\n          EQ -> EQ\\n          GT -> LT\\n\\nThis is also the most general sort function, allowing you\\nto define any other: `sort == sortWith compare`\\n"},{"name":"sum","fullName":"List.sum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sum","signature":"List number -> number","comment":" Get the sum of the list elements.\\n\\n    sum [1..4] == 10\\n"},{"name":"tail","fullName":"List.tail","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#tail","signature":"List a -> Maybe.Maybe (List a)","comment":" Extract the rest of the list.\\n\\n    tail [1,2,3] == Just [2,3]\\n    tail [] == Nothing\\n"},{"name":"take","fullName":"List.take","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#take","signature":"Int -> List a -> List a","comment":" Take the first *n* members of a list.\\n\\n    take 2 [1,2,3,4] == [1,2]\\n"},{"name":"unzip","fullName":"List.unzip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#unzip","signature":"List ( a, b ) -> ( List a, List b )","comment":" Decompose a list of tuples into a tuple of lists.\\n\\n    unzip [(0, True), (17, False), (1337, True)] == ([0,17,1337], [True,False,True])\\n"},{"name":"andThen","fullName":"Result.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#andThen","signature":"Result.Result x a -> (a -> Result.Result x b) -> Result.Result x b","comment":" Chain together a sequence of computations that may fail. It is helpful\\nto see its definition:\\n\\n    andThen : Result e a -> (a -> Result e b) -> Result e b\\n    andThen result callback =\\n        case result of\\n          Ok value -> callback value\\n          Err msg -> Err msg\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`toInt : String -> Result String Int`) to parse\\na month and make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Result String Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12\\n            then Ok month\\n            else Err \\"months must be between 1 and 12\\"\\n\\n    toMonth : String -> Result String Int\\n    toMonth rawString =\\n        toInt rawString `andThen` toValidMonth\\n\\n    -- toMonth \\"4\\" == Ok 4\\n    -- toMonth \\"9\\" == Ok 9\\n    -- toMonth \\"a\\" == Err \\"cannot parse to an Int\\"\\n    -- toMonth \\"0\\" == Err \\"months must be between 1 and 12\\"\\n\\nThis allows us to come out of a chain of operations with quite a specific error\\nmessage. It is often best to create a custom type that explicitly represents\\nthe exact ways your computation may fail. This way it is easy to handle in your\\ncode.\\n"},{"name":"formatError","fullName":"Result.formatError","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#formatError","signature":"(error -> error\') -> Result.Result error a -> Result.Result error\' a","comment":" Format the error value of a result. If the result is `Ok`, it stays exactly\\nthe same, but if the result is an `Err` we will format the error. For example,\\nsay the errors we get have too much information:\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    type ParseError =\\n        { message : String\\n        , code : Int\\n        , position : (Int,Int)\\n        }\\n\\n    formatError .message (parseInt \\"123\\") == Ok 123\\n    formatError .message (parseInt \\"abc\\") == Err \\"char \'a\' is not a number\\"\\n"},{"name":"fromMaybe","fullName":"Result.fromMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#fromMaybe","signature":"x -> Maybe.Maybe a -> Result.Result x a","comment":" Convert from a simple `Maybe` to interact with some code that primarily\\nuses `Results`.\\n\\n    parseInt : String -> Maybe Int\\n\\n    resultParseInt : String -> Result String Int\\n    resultParseInt string =\\n        fromMaybe (\\"error parsing string: \\" ++ toString string) (parseInt string)\\n"},{"name":"map","fullName":"Result.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map","signature":"(a -> value) -> Result.Result x a -> Result.Result x value","comment":" Apply a function to a result. If the result is `Ok`, it will be converted.\\nIf the result is an `Err`, the same error value will propagate through.\\n\\n    map sqrt (Ok 4.0)          == Ok 2.0\\n    map sqrt (Err \\"bad input\\") == Err \\"bad input\\"\\n"},{"name":"map2","fullName":"Result.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map2","signature":"(a -> b -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x value","comment":" Apply a function to two results, if both results are `Ok`. If not,\\nthe first argument which is an `Err` will propagate through.\\n\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"2\\") == Ok 3\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"y\\") == Err \\"could not convert string \'y\' to an Int\\"\\n    map2 (+) (String.toInt \\"x\\") (String.toInt \\"y\\") == Err \\"could not convert string \'x\' to an Int\\"\\n"},{"name":"map3","fullName":"Result.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map3","signature":"(a -> b -> c -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x value","comment":""},{"name":"map4","fullName":"Result.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map4","signature":"(a -> b -> c -> d -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x value","comment":""},{"name":"map5","fullName":"Result.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map5","signature":"(a -> b -> c -> d -> e -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x e -> Result.Result x value","comment":""},{"name":"toMaybe","fullName":"Result.toMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#toMaybe","signature":"Result.Result x a -> Maybe.Maybe a","comment":" Convert to a simpler `Maybe` if the actual error message is not needed or\\nyou need to interact with some code that primarily uses maybes.\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    maybeParseInt : String -> Maybe Int\\n    maybeParseInt string =\\n        toMaybe (parseInt string)\\n"},{"name":"withDefault","fullName":"Result.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#withDefault","signature":"a -> Result.Result x a -> a","comment":" If the result is `Ok` return the value, but if the result is an `Err` then\\nreturn a given default value. The following examples try to parse integers.\\n\\n    Result.withDefault 0 (String.toInt \\"123\\") == 123\\n    Result.withDefault 0 (String.toInt \\"abc\\") == 0\\n"},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"andThen","fullName":"Maybe.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#andThen","signature":"Maybe.Maybe a -> (a -> Maybe.Maybe b) -> Maybe.Maybe b","comment":" Chain together many computations that may fail. It is helpful to see its\\ndefinition:\\n\\n    andThen : Maybe a -> (a -> Maybe b) -> Maybe b\\n    andThen maybe callback =\\n        case maybe of\\n            Just value ->\\n                callback value\\n\\n            Nothing ->\\n                Nothing\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`head : List Int -> Maybe Int`) to get the\\nfirst month from a `List` and then make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Maybe Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12 then\\n            Just month\\n        else\\n            Nothing\\n\\n    getFirstMonth : List Int -> Maybe Int\\n    getFirstMonth months =\\n        head months `andThen` toValidMonth\\n\\nIf `head` fails and results in `Nothing` (because the `List` was empty`),\\nthis entire chain of operations will short-circuit and result in `Nothing`.\\nIf `toValidMonth` results in `Nothing`, again the chain of computations\\nwill result in `Nothing`.\\n"},{"name":"map","fullName":"Maybe.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map","signature":"(a -> b) -> Maybe.Maybe a -> Maybe.Maybe b","comment":" Transform a `Maybe` value with a given function:\\n\\n    map sqrt (Just 9) == Just 3\\n    map sqrt Nothing == Nothing\\n"},{"name":"map2","fullName":"Maybe.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map2","signature":"(a -> b -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe value","comment":" Apply a function if all the arguments are `Just` a value.\\n\\n    map2 (+) (Just 3) (Just 4) == Just 7\\n    map2 (+) (Just 3) Nothing == Nothing\\n    map2 (+) Nothing (Just 4) == Nothing\\n"},{"name":"map3","fullName":"Maybe.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map3","signature":"(a -> b -> c -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe value","comment":""},{"name":"map4","fullName":"Maybe.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map4","signature":"(a -> b -> c -> d -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe value","comment":""},{"name":"map5","fullName":"Maybe.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map5","signature":"(a -> b -> c -> d -> e -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe e -> Maybe.Maybe value","comment":""},{"name":"oneOf","fullName":"Maybe.oneOf","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#oneOf","signature":"List (Maybe.Maybe a) -> Maybe.Maybe a","comment":" Pick the first `Maybe` that actually has a value. Useful when you want to\\ntry a couple different things, but there is no default value.\\n\\n    oneOf [ Nothing, Just 42, Just 71 ] == Just 42\\n    oneOf [ Nothing, Nothing, Just 71 ] == Just 71\\n    oneOf [ Nothing, Nothing, Nothing ] == Nothing\\n"},{"name":"withDefault","fullName":"Maybe.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#withDefault","signature":"a -> Maybe.Maybe a -> a","comment":" Provide a default value, turning an optional value into a normal\\nvalue.  This comes in handy when paired with functions like\\n[`Dict.get`](Dict#get) which gives back a `Maybe`.\\n\\n    withDefault 100 (Just 42)   -- 42\\n    withDefault 100 Nothing     -- 100\\n\\n    withDefault \\"unknown\\" (Dict.get \\"Tom\\" Dict.empty)   -- \\"unknown\\"\\n\\n"},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""}]' 
errors: b''
deadfoxygrandpa commented 8 years ago

Do you have any packages other that core installed with elm-package?

rtfeldman commented 8 years ago

Ah, fair point - not on that project. On another project with a more interesting elm-package.json, the above is true if you replace "Core" with "anything in elm-package.json other than the current project."

Or is elm-oracle not supposed to know about the current project's types?

deadfoxygrandpa commented 8 years ago

No, right now elm-oracle can only get information about stuff in elm-package.json other than the current project. I think it uses elm-make internally, and elm-make no longer has support for displaying this information for modules in the current project.

deadfoxygrandpa commented 8 years ago

@rtfeldman Are you sure the "Show type" command doesn't do anything? It's not a huge thing, this is what it does on my computer: 2016-01-18 15_07_56-elm oracle based features not always working issue 74 deadfoxygrandpa_elm t

rtfeldman commented 8 years ago

Here's what I see (on the latest branch, where elm-format works gloriously :heart_eyes_cat:)

screen shot 2016-01-18 at 10 56 20 am
[Elm says]: (elm-oracle) b'[{"name":"Mailbox","fullName":"Signal.Mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#Mailbox","signature":"{ address : Signal.Address a, signal : Signal.Signal a }","comment":" A `Mailbox` is a communication hub. It is made up of\\n\\n  * an `Address` that you can send messages to\\n  * a `Signal` of messages sent to the mailbox\\n"},{"name":"constant","fullName":"Signal.constant","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#constant","signature":"a -> Signal.Signal a","comment":" Create a signal that never changes. This can be useful if you need\\nto pass a combination of signals and normal values to a function:\\n\\n    map3 view Window.dimensions Mouse.position (constant initialModel)\\n"},{"name":"dropRepeats","fullName":"Signal.dropRepeats","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#dropRepeats","signature":"Signal.Signal a -> Signal.Signal a","comment":" Drop updates that repeat the current value of the signal.\\n\\n    numbers : Signal Int\\n\\n    noDups : Signal Int\\n    noDups =\\n        dropRepeats numbers\\n\\n    --  numbers => 0 0 3 3 5 5 5 4 ...\\n    --  noDups  => 0   3   5     4 ...\\n\\nThe signal should not be a signal of functions, or a record that contains a\\nfunction (you\'ll get a runtime error since functions cannot be equated).\\n"},{"name":"filter","fullName":"Signal.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filter","signature":"(a -> Bool) -> a -> Signal.Signal a -> Signal.Signal a","comment":" Filter out some updates. The given function decides whether we should\\n*keep* an update. If no updates ever flow through, we use the default value\\nprovided. The following example only keeps even numbers and has an initial\\nvalue of zero.\\n\\n    numbers : Signal Int\\n\\n    isEven : Int -> Bool\\n\\n    evens : Signal Int\\n    evens =\\n        filter isEven 0 numbers\\n"},{"name":"filterMap","fullName":"Signal.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filterMap","signature":"(a -> Maybe.Maybe b) -> b -> Signal.Signal a -> Signal.Signal b","comment":" Filter out some updates. When the filter function gives back `Just` a\\nvalue, we send that value along. When it returns `Nothing` we drop it.\\nIf the initial value of the incoming signal turns into `Nothing`, we use the\\ndefault value provided. The following example keeps only strings that can be\\nread as integers.\\n\\n    userInput : Signal String\\n\\n    toInt : String -> Maybe Int\\n\\n    numbers : Signal Int\\n    numbers =\\n        filterMap toInt 0 userInput\\n"},{"name":"foldp","fullName":"Signal.foldp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#foldp","signature":"(a -> state -> state) -> state -> Signal.Signal a -> Signal.Signal state","comment":" Create a past-dependent signal. Each update from the incoming signals will\\nbe used to step the state forward. The outgoing signal represents the current\\nstate.\\n\\n    clickCount : Signal Int\\n    clickCount =\\n        foldp (\\\\click total -> total + 1) 0 Mouse.clicks\\n\\n    timeSoFar : Signal Time\\n    timeSoFar =\\n        foldp (+) 0 (fps 40)\\n\\nSo `clickCount` updates on each mouse click, incrementing by one. `timeSoFar`\\nis the time the program has been running, updated 40 times a second.\\n"},{"name":"forwardTo","fullName":"Signal.forwardTo","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#forwardTo","signature":"Signal.Address b -> (a -> b) -> Signal.Address a","comment":" Create a new address. This address will tag each message it receives\\nand then forward it along to some other address.\\n\\n    type Action = Undo | Remove Int | NoOp\\n\\n    actions : Mailbox Action\\n    actions = mailbox NoOp\\n\\n    removeAddress : Address Int\\n    removeAddress =\\n        forwardTo actions.address Remove\\n\\nIn this case we have a general `address` that many people may send\\nmessages to. The new `removeAddress` tags all messages with the `Remove` tag\\nbefore forwarding them along to the more general `address`. This means\\nsome parts of our application can know *only* about `removeAddress` and not\\ncare what other kinds of `Actions` are possible.\\n"},{"name":"mailbox","fullName":"Signal.mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mailbox","signature":"a -> Signal.Mailbox a","comment":" Create a mailbox you can send messages to. The primary use case is\\nreceiving updates from tasks and UI elements. The argument is a default value\\nfor the custom signal.\\n\\nNote: Creating new signals is inherently impure, so `(mailbox ())` and\\n`(mailbox ())` produce two different mailboxes.\\n"},{"name":"map","fullName":"Signal.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map","signature":"(a -> result) -> Signal.Signal a -> Signal.Signal result","comment":" Apply a function to a signal.\\n\\n    mouseIsUp : Signal Bool\\n    mouseIsUp =\\n        map not Mouse.isDown\\n\\n    main : Signal Element\\n    main =\\n        map Graphics.Element.show Mouse.position\\n"},{"name":"map2","fullName":"Signal.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map2","signature":"(a -> b -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal result","comment":" Apply a function to the current value of two signals. The function\\nis reevaluated whenever *either* signal changes. In the following example, we\\nfigure out the `aspectRatio` of the window by combining the current width and\\nheight.\\n\\n    ratio : Int -> Int -> Float\\n    ratio width height =\\n        toFloat width / toFloat height\\n\\n    aspectRatio : Signal Float\\n    aspectRatio =\\n        map2 ratio Window.width Window.height\\n"},{"name":"map3","fullName":"Signal.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map3","signature":"(a -> b -> c -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal result","comment":""},{"name":"map4","fullName":"Signal.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map4","signature":"(a -> b -> c -> d -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal result","comment":""},{"name":"map5","fullName":"Signal.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map5","signature":"(a -> b -> c -> d -> e -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal e -> Signal.Signal result","comment":""},{"name":"merge","fullName":"Signal.merge","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#merge","signature":"Signal.Signal a -> Signal.Signal a -> Signal.Signal a","comment":" Merge two signals into one. This function is extremely useful for bringing\\ntogether lots of different signals to feed into a `foldp`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float\\n\\n    updates : Signal Update\\n    updates =\\n        merge\\n            (map MouseMove Mouse.position)\\n            (map TimeDelta (fps 40))\\n\\nIf an update comes from either of the incoming signals, it updates the outgoing\\nsignal. If an update comes on both signals at the same time, the update provided\\nby the left input signal wins (i.e., the update from the second signal is discarded).\\n"},{"name":"mergeMany","fullName":"Signal.mergeMany","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mergeMany","signature":"List (Signal.Signal a) -> Signal.Signal a","comment":" Merge many signals into one. This is useful when you are merging more than\\ntwo signals. When multiple updates come in at the same time, the left-most\\nupdate wins, just like with `merge`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float | Click\\n\\n    updates : Signal Update\\n    updates =\\n        mergeMany\\n            [ map MouseMove Mouse.position\\n            , map TimeDelta (fps 40)\\n            , map (always Click) Mouse.clicks\\n            ]\\n"},{"name":"message","fullName":"Signal.message","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#message","signature":"Signal.Address a -> a -> Signal.Message","comment":" Create a message that may be sent to a `Mailbox` at a later time.\\n\\nMost importantly, this lets us create APIs that can send values to ports\\n*without* allowing people to run arbitrary tasks.\\n"},{"name":"sampleOn","fullName":"Signal.sampleOn","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#sampleOn","signature":"Signal.Signal a -> Signal.Signal b -> Signal.Signal b","comment":" Sample from the second input every time an event occurs on the first input.\\nFor example, `(sampleOn Mouse.clicks (Time.every Time.second))` will give the\\napproximate time of the latest click. "},{"name":"send","fullName":"Signal.send","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#send","signature":"Signal.Address a -> a -> Task.Task x ()","comment":" Send a message to an `Address`.\\n\\n    type Action = Undo | Remove Int\\n\\n    address : Address Action\\n\\n    requestUndo : Task x ()\\n    requestUndo =\\n        send address Undo\\n\\nThe `Signal` associated with `address` will receive the `Undo` message\\nand push it through the Elm program.\\n"},{"name":"all","fullName":"String.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#all","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *all* characters satisfy a predicate.\\n\\n    all isDigit \\"90210\\" == True\\n    all isDigit \\"R2-D2\\" == False\\n    all isDigit \\"heart\\" == False\\n"},{"name":"any","fullName":"String.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#any","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *any* characters satisfy a predicate.\\n\\n    any isDigit \\"90210\\" == True\\n    any isDigit \\"R2-D2\\" == True\\n    any isDigit \\"heart\\" == False\\n"},{"name":"append","fullName":"String.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#append","signature":"String -> String -> String","comment":" Append two strings. You can also use [the `(++)` operator](Basics#++)\\nto do this.\\n\\n    append \\"butter\\" \\"fly\\" == \\"butterfly\\"\\n"},{"name":"concat","fullName":"String.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#concat","signature":"List String -> String","comment":" Concatenate many strings into one.\\n\\n    concat [\\"never\\",\\"the\\",\\"less\\"] == \\"nevertheless\\"\\n"},{"name":"cons","fullName":"String.cons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#cons","signature":"Char -> String -> String","comment":" Add a character to the beginning of a string. "},{"name":"contains","fullName":"String.contains","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#contains","signature":"String -> String -> Bool","comment":" See if the second string contains the first one.\\n\\n    contains \\"the\\" \\"theory\\" == True\\n    contains \\"hat\\" \\"theory\\" == False\\n    contains \\"THE\\" \\"theory\\" == False\\n\\nUse [`Regex.contains`](Regex#contains) if you need something more flexible.\\n"},{"name":"dropLeft","fullName":"String.dropLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropLeft","signature":"Int -> String -> String","comment":" Drop *n* characters from the left side of a string. "},{"name":"dropRight","fullName":"String.dropRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropRight","signature":"Int -> String -> String","comment":" Drop *n* characters from the right side of a string. "},{"name":"endsWith","fullName":"String.endsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#endsWith","signature":"String -> String -> Bool","comment":" See if the second string ends with the first one.\\n\\n    endsWith \\"the\\" \\"theory\\" == False\\n    endsWith \\"ory\\" \\"theory\\" == True\\n"},{"name":"filter","fullName":"String.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#filter","signature":"(Char -> Bool) -> String -> String","comment":" Keep only the characters that satisfy the predicate.\\n\\n    filter isDigit \\"R2-D2\\" == \\"22\\"\\n"},{"name":"foldl","fullName":"String.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldl","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the left.\\n\\n    foldl cons \\"\\" \\"time\\" == \\"emit\\"\\n"},{"name":"foldr","fullName":"String.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldr","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the right.\\n\\n    foldr cons \\"\\" \\"time\\" == \\"time\\"\\n"},{"name":"fromChar","fullName":"String.fromChar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromChar","signature":"Char -> String","comment":" Create a string from a given character.\\n\\n    fromChar \'a\' == \\"a\\"\\n"},{"name":"fromList","fullName":"String.fromList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromList","signature":"List Char -> String","comment":" Convert a list of characters into a String. Can be useful if you\\nwant to create a string primarily by consing, perhaps for decoding\\nsomething.\\n\\n    fromList [\'a\',\'b\',\'c\'] == \\"abc\\"\\n"},{"name":"indexes","fullName":"String.indexes","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indexes","signature":"String -> String -> List Int","comment":" Get all of the indexes for a substring in another string.\\n\\n    indexes \\"i\\" \\"Mississippi\\"   == [1,4,7,10]\\n    indexes \\"ss\\" \\"Mississippi\\"  == [2,5]\\n    indexes \\"needle\\" \\"haystack\\" == []\\n"},{"name":"indices","fullName":"String.indices","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indices","signature":"String -> String -> List Int","comment":" Alias for `indexes`. "},{"name":"isEmpty","fullName":"String.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#isEmpty","signature":"String -> Bool","comment":" Determine if a string is empty.\\n\\n    isEmpty \\"\\" == True\\n    isEmpty \\"the world\\" == False\\n"},{"name":"join","fullName":"String.join","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#join","signature":"String -> List String -> String","comment":" Put many strings together with a given separator.\\n\\n    join \\"a\\" [\\"H\\",\\"w\\",\\"ii\\",\\"n\\"]        == \\"Hawaiian\\"\\n    join \\" \\" [\\"cat\\",\\"dog\\",\\"cow\\"]       == \\"cat dog cow\\"\\n    join \\"/\\" [\\"home\\",\\"evan\\",\\"Desktop\\"] == \\"home/evan/Desktop\\"\\n"},{"name":"left","fullName":"String.left","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#left","signature":"Int -> String -> String","comment":" Take *n* characters from the left side of a string. "},{"name":"length","fullName":"String.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#length","signature":"String -> Int","comment":" Get the length of a string.\\n\\n    length \\"innumerable\\" == 11\\n    length \\"\\" == 0\\n\\n"},{"name":"lines","fullName":"String.lines","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#lines","signature":"String -> List String","comment":" Break a string into lines, splitting on newlines.\\n\\n    lines \\"How are you?\\\\nGood?\\" == [\\"How are you?\\", \\"Good?\\"]\\n"},{"name":"map","fullName":"String.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#map","signature":"(Char -> Char) -> String -> String","comment":" Transform every character in a string\\n\\n    map (\\\\c -> if c == \'/\' then \'.\' else c) \\"a/b/c\\" == \\"a.b.c\\"\\n"},{"name":"pad","fullName":"String.pad","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#pad","signature":"Int -> Char -> String -> String","comment":" Pad a string on both sides until it has a given length.\\n\\n    pad 5 \' \' \\"1\\"   == \\"  1  \\"\\n    pad 5 \' \' \\"11\\"  == \\"  11 \\"\\n    pad 5 \' \' \\"121\\" == \\" 121 \\"\\n"},{"name":"padLeft","fullName":"String.padLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padLeft","signature":"Int -> Char -> String -> String","comment":" Pad a string on the left until it has a given length.\\n\\n    padLeft 5 \'.\' \\"1\\"   == \\"....1\\"\\n    padLeft 5 \'.\' \\"11\\"  == \\"...11\\"\\n    padLeft 5 \'.\' \\"121\\" == \\"..121\\"\\n"},{"name":"padRight","fullName":"String.padRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padRight","signature":"Int -> Char -> String -> String","comment":" Pad a string on the right until it has a given length.\\n\\n    padRight 5 \'.\' \\"1\\"   == \\"1....\\"\\n    padRight 5 \'.\' \\"11\\"  == \\"11...\\"\\n    padRight 5 \'.\' \\"121\\" == \\"121..\\"\\n"},{"name":"repeat","fullName":"String.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#repeat","signature":"Int -> String -> String","comment":" Repeat a string *n* times.\\n\\n    repeat 3 \\"ha\\" == \\"hahaha\\"\\n"},{"name":"reverse","fullName":"String.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#reverse","signature":"String -> String","comment":" Reverse a string.\\n\\n    reverse \\"stressed\\" == \\"desserts\\"\\n"},{"name":"right","fullName":"String.right","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#right","signature":"Int -> String -> String","comment":" Take *n* characters from the right side of a string. "},{"name":"slice","fullName":"String.slice","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#slice","signature":"Int -> Int -> String -> String","comment":" Take a substring given a start and end index. Negative indexes\\nare taken starting from the *end* of the list.\\n\\n    slice  7  9 \\"snakes on a plane!\\" == \\"on\\"\\n    slice  0  6 \\"snakes on a plane!\\" == \\"snakes\\"\\n    slice  0 -7 \\"snakes on a plane!\\" == \\"snakes on a\\"\\n    slice -6 -1 \\"snakes on a plane!\\" == \\"plane\\"\\n"},{"name":"split","fullName":"String.split","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#split","signature":"String -> String -> List String","comment":" Split a string using a given separator.\\n\\n    split \\",\\" \\"cat,dog,cow\\"        == [\\"cat\\",\\"dog\\",\\"cow\\"]\\n    split \\"/\\" \\"home/evan/Desktop/\\" == [\\"home\\",\\"evan\\",\\"Desktop\\", \\"\\"]\\n\\nUse [`Regex.split`](Regex#split) if you need something more flexible.\\n"},{"name":"startsWith","fullName":"String.startsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#startsWith","signature":"String -> String -> Bool","comment":" See if the second string starts with the first one.\\n\\n    startsWith \\"the\\" \\"theory\\" == True\\n    startsWith \\"ory\\" \\"theory\\" == False\\n"},{"name":"toFloat","fullName":"String.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toFloat","signature":"String -> Result.Result String Float","comment":" Try to convert a string into a float, failing on improperly formatted strings.\\n\\n    toFloat \\"123\\" == Ok 123.0\\n    toFloat \\"-42\\" == Ok -42.0\\n    toFloat \\"3.1\\" == Ok 3.1\\n    toFloat \\"31a\\" == Err \\"could not convert string \'31a\' to a Float\\"\\n"},{"name":"toInt","fullName":"String.toInt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toInt","signature":"String -> Result.Result String Int","comment":" Try to convert a string into an int, failing on improperly formatted strings.\\n\\n    toInt \\"123\\" == Ok 123\\n    toInt \\"-42\\" == Ok -42\\n    toInt \\"3.1\\" == Err \\"could not convert string \'3.1\' to an Int\\"\\n    toInt \\"31a\\" == Err \\"could not convert string \'31a\' to an Int\\"\\n"},{"name":"toList","fullName":"String.toList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toList","signature":"String -> List Char","comment":" Convert a string to a list of characters.\\n\\n    toList \\"abc\\" == [\'a\',\'b\',\'c\']\\n"},{"name":"toLower","fullName":"String.toLower","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toLower","signature":"String -> String","comment":" Convert a string to all lower case. Useful for case-insensitive comparisons. "},{"name":"toUpper","fullName":"String.toUpper","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toUpper","signature":"String -> String","comment":" Convert a string to all upper case. Useful for case-insensitive comparisons\\nand VIRTUAL YELLING.\\n"},{"name":"trim","fullName":"String.trim","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trim","signature":"String -> String","comment":" Get rid of whitespace on both sides of a string.\\n\\n    trim \\"  hats  \\\\n\\" == \\"hats\\"\\n"},{"name":"trimLeft","fullName":"String.trimLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimLeft","signature":"String -> String","comment":" Get rid of whitespace on the left of a string.\\n\\n    trimLeft \\"  hats  \\\\n\\" == \\"hats  \\\\n\\"\\n"},{"name":"trimRight","fullName":"String.trimRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimRight","signature":"String -> String","comment":" Get rid of whitespace on the right of a string.\\n\\n    trimRight \\"  hats  \\\\n\\" == \\"  hats\\"\\n"},{"name":"uncons","fullName":"String.uncons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#uncons","signature":"String -> Maybe.Maybe ( Char, String )","comment":" Split a non-empty string into its head and tail. This lets you\\npattern match on strings exactly as you would with lists.\\n\\n    uncons \\"abc\\" == Just (\'a\',\\"bc\\")\\n    uncons \\"\\"    == Nothing\\n"},{"name":"words","fullName":"String.words","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#words","signature":"String -> List String","comment":" Break a string into words, splitting on chunks of whitespace.\\n\\n    words \\"How are \\\\t you? \\\\n Good?\\" == [\\"How\\",\\"are\\",\\"you?\\",\\"Good?\\"]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"all","fullName":"List.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#all","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if all elements satisfy the predicate.\\n\\n    all isEven [2,4] == True\\n    all isEven [2,3] == False\\n    all isEven [] == True\\n"},{"name":"any","fullName":"List.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#any","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if any elements satisfy the predicate.\\n\\n    any isEven [2,3] == True\\n    any isEven [1,3] == False\\n    any isEven [] == False\\n"},{"name":"append","fullName":"List.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#append","signature":"List a -> List a -> List a","comment":" Put two lists together.\\n\\n    append [1,1,2] [3,5,8] == [1,1,2,3,5,8]\\n    append [\'a\',\'b\'] [\'c\'] == [\'a\',\'b\',\'c\']\\n"},{"name":"concat","fullName":"List.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concat","signature":"List (List a) -> List a","comment":" Concatenate a bunch of lists into a single list:\\n\\n    concat [[1,2],[3],[4,5]] == [1,2,3,4,5]\\n"},{"name":"concatMap","fullName":"List.concatMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concatMap","signature":"(a -> List b) -> List a -> List b","comment":" Map a given function onto a list and flatten the resulting lists.\\n\\n    concatMap f xs == concat (map f xs)\\n"},{"name":"drop","fullName":"List.drop","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#drop","signature":"Int -> List a -> List a","comment":" Drop the first *n* members of a list.\\n\\n    drop 2 [1,2,3,4] == [3,4]\\n"},{"name":"filter","fullName":"List.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filter","signature":"(a -> Bool) -> List a -> List a","comment":" Keep only elements that satisfy the predicate.\\n\\n    filter isEven [1..6] == [2,4,6]\\n"},{"name":"filterMap","fullName":"List.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filterMap","signature":"(a -> Maybe.Maybe b) -> List a -> List b","comment":" Apply a function that may succeed to all values in the list, but only keep\\nthe successes.\\n\\n    String.toInt : String -> Maybe Int\\n\\n    filterMap String.toInt [\\"3\\", \\"4.0\\", \\"5\\", \\"hats\\"] == [3,5]\\n"},{"name":"foldl","fullName":"List.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldl","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the left.\\n\\n    foldl (::) [] [1,2,3] == [3,2,1]\\n"},{"name":"foldr","fullName":"List.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldr","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the right.\\n\\n    foldr (+) 0 [1,2,3] == 6\\n"},{"name":"head","fullName":"List.head","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#head","signature":"List a -> Maybe.Maybe a","comment":" Extract the first element of a list.\\n\\n    head [1,2,3] == Just 1\\n    head [] == Nothing\\n"},{"name":"indexedMap","fullName":"List.indexedMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#indexedMap","signature":"(Int -> a -> b) -> List a -> List b","comment":" Same as `map` but the function is also applied to the index of each\\nelement (starting at zero).\\n\\n    indexedMap (,) [\\"Tom\\",\\"Sue\\",\\"Bob\\"] == [ (0,\\"Tom\\"), (1,\\"Sue\\"), (2,\\"Bob\\") ]\\n"},{"name":"intersperse","fullName":"List.intersperse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#intersperse","signature":"a -> List a -> List a","comment":" Places the given value between all members of the given list.\\n\\n    intersperse \\"on\\" [\\"turtles\\",\\"turtles\\",\\"turtles\\"] == [\\"turtles\\",\\"on\\",\\"turtles\\",\\"on\\",\\"turtles\\"]\\n"},{"name":"isEmpty","fullName":"List.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#isEmpty","signature":"List a -> Bool","comment":" Determine if a list is empty.\\n\\n    isEmpty [] == True\\n"},{"name":"length","fullName":"List.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#length","signature":"List a -> Int","comment":" Determine the length of a list.\\n\\n    length [1,2,3] == 3\\n"},{"name":"map","fullName":"List.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map","signature":"(a -> b) -> List a -> List b","comment":" Apply a function to every element of a list.\\n\\n    map sqrt [1,4,9] == [1,2,3]\\n\\n    map not [True,False,True] == [False,True,False]\\n"},{"name":"map2","fullName":"List.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map2","signature":"(a -> b -> result) -> List a -> List b -> List result","comment":" Combine two lists, combining them with the given function.\\nIf one list is longer, the extra elements are dropped.\\n\\n    map2 (+) [1,2,3] [1,2,3,4] == [2,4,6]\\n\\n    map2 (,) [1,2,3] [\'a\',\'b\'] == [ (1,\'a\'), (2,\'b\') ]\\n\\n    pairs : List a -> List b -> List (a,b)\\n    pairs lefts rights =\\n        map2 (,) lefts rights\\n"},{"name":"map3","fullName":"List.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map3","signature":"(a -> b -> c -> result) -> List a -> List b -> List c -> List result","comment":""},{"name":"map4","fullName":"List.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map4","signature":"(a -> b -> c -> d -> result) -> List a -> List b -> List c -> List d -> List result","comment":""},{"name":"map5","fullName":"List.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map5","signature":"(a -> b -> c -> d -> e -> result) -> List a -> List b -> List c -> List d -> List e -> List result","comment":""},{"name":"maximum","fullName":"List.maximum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#maximum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the maximum element in a non-empty list.\\n\\n    maximum [1,4,2] == Just 4\\n    maximum []      == Nothing\\n"},{"name":"member","fullName":"List.member","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#member","signature":"a -> List a -> Bool","comment":" Figure out whether a list contains a value.\\n\\n    member 9 [1,2,3,4] == False\\n    member 4 [1,2,3,4] == True\\n"},{"name":"minimum","fullName":"List.minimum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#minimum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the minimum element in a non-empty list.\\n\\n    minimum [3,2,1] == Just 1\\n    minimum []      == Nothing\\n"},{"name":"partition","fullName":"List.partition","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#partition","signature":"(a -> Bool) -> List a -> ( List a, List a )","comment":" Partition a list based on a predicate. The first list contains all values\\nthat satisfy the predicate, and the second list contains all the value that do\\nnot.\\n\\n    partition (\\\\x -> x < 3) [0..5] == ([0,1,2], [3,4,5])\\n    partition isEven        [0..5] == ([0,2,4], [1,3,5])\\n"},{"name":"product","fullName":"List.product","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#product","signature":"List number -> number","comment":" Get the product of the list elements.\\n\\n    product [1..4] == 24\\n"},{"name":"repeat","fullName":"List.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#repeat","signature":"Int -> a -> List a","comment":" Create a list with *n* copies of a value:\\n\\n    repeat 3 (0,0) == [(0,0),(0,0),(0,0)]\\n"},{"name":"reverse","fullName":"List.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#reverse","signature":"List a -> List a","comment":" Reverse a list.\\n\\n    reverse [1..4] == [4,3,2,1]\\n"},{"name":"scanl","fullName":"List.scanl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#scanl","signature":"(a -> b -> b) -> b -> List a -> List b","comment":" Reduce a list from the left, building up all of the intermediate results into a list.\\n\\n    scanl (+) 0 [1,2,3,4] == [0,1,3,6,10]\\n"},{"name":"sort","fullName":"List.sort","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sort","signature":"List comparable -> List comparable","comment":" Sort values from lowest to highest\\n\\n    sort [3,1,5] == [1,3,5]\\n"},{"name":"sortBy","fullName":"List.sortBy","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortBy","signature":"(a -> comparable) -> List a -> List a","comment":" Sort values by a derived property.\\n\\n    alice = { name=\\"Alice\\", height=1.62 }\\n    bob   = { name=\\"Bob\\"  , height=1.85 }\\n    chuck = { name=\\"Chuck\\", height=1.76 }\\n\\n    sortBy .name   [chuck,alice,bob] == [alice,bob,chuck]\\n    sortBy .height [chuck,alice,bob] == [alice,chuck,bob]\\n\\n    sortBy String.length [\\"mouse\\",\\"cat\\"] == [\\"cat\\",\\"mouse\\"]\\n"},{"name":"sortWith","fullName":"List.sortWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortWith","signature":"(a -> a -> Basics.Order) -> List a -> List a","comment":" Sort values with a custom comparison function.\\n\\n    sortWith flippedComparison [1..5] == [5,4,3,2,1]\\n\\n    flippedComparison a b =\\n        case compare a b of\\n          LT -> GT\\n          EQ -> EQ\\n          GT -> LT\\n\\nThis is also the most general sort function, allowing you\\nto define any other: `sort == sortWith compare`\\n"},{"name":"sum","fullName":"List.sum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sum","signature":"List number -> number","comment":" Get the sum of the list elements.\\n\\n    sum [1..4] == 10\\n"},{"name":"tail","fullName":"List.tail","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#tail","signature":"List a -> Maybe.Maybe (List a)","comment":" Extract the rest of the list.\\n\\n    tail [1,2,3] == Just [2,3]\\n    tail [] == Nothing\\n"},{"name":"take","fullName":"List.take","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#take","signature":"Int -> List a -> List a","comment":" Take the first *n* members of a list.\\n\\n    take 2 [1,2,3,4] == [1,2]\\n"},{"name":"unzip","fullName":"List.unzip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#unzip","signature":"List ( a, b ) -> ( List a, List b )","comment":" Decompose a list of tuples into a tuple of lists.\\n\\n    unzip [(0, True), (17, False), (1337, True)] == ([0,17,1337], [True,False,True])\\n"},{"name":"andThen","fullName":"Result.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#andThen","signature":"Result.Result x a -> (a -> Result.Result x b) -> Result.Result x b","comment":" Chain together a sequence of computations that may fail. It is helpful\\nto see its definition:\\n\\n    andThen : Result e a -> (a -> Result e b) -> Result e b\\n    andThen result callback =\\n        case result of\\n          Ok value -> callback value\\n          Err msg -> Err msg\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`toInt : String -> Result String Int`) to parse\\na month and make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Result String Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12\\n            then Ok month\\n            else Err \\"months must be between 1 and 12\\"\\n\\n    toMonth : String -> Result String Int\\n    toMonth rawString =\\n        toInt rawString `andThen` toValidMonth\\n\\n    -- toMonth \\"4\\" == Ok 4\\n    -- toMonth \\"9\\" == Ok 9\\n    -- toMonth \\"a\\" == Err \\"cannot parse to an Int\\"\\n    -- toMonth \\"0\\" == Err \\"months must be between 1 and 12\\"\\n\\nThis allows us to come out of a chain of operations with quite a specific error\\nmessage. It is often best to create a custom type that explicitly represents\\nthe exact ways your computation may fail. This way it is easy to handle in your\\ncode.\\n"},{"name":"formatError","fullName":"Result.formatError","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#formatError","signature":"(error -> error\') -> Result.Result error a -> Result.Result error\' a","comment":" Format the error value of a result. If the result is `Ok`, it stays exactly\\nthe same, but if the result is an `Err` we will format the error. For example,\\nsay the errors we get have too much information:\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    type ParseError =\\n        { message : String\\n        , code : Int\\n        , position : (Int,Int)\\n        }\\n\\n    formatError .message (parseInt \\"123\\") == Ok 123\\n    formatError .message (parseInt \\"abc\\") == Err \\"char \'a\' is not a number\\"\\n"},{"name":"fromMaybe","fullName":"Result.fromMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#fromMaybe","signature":"x -> Maybe.Maybe a -> Result.Result x a","comment":" Convert from a simple `Maybe` to interact with some code that primarily\\nuses `Results`.\\n\\n    parseInt : String -> Maybe Int\\n\\n    resultParseInt : String -> Result String Int\\n    resultParseInt string =\\n        fromMaybe (\\"error parsing string: \\" ++ toString string) (parseInt string)\\n"},{"name":"map","fullName":"Result.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map","signature":"(a -> value) -> Result.Result x a -> Result.Result x value","comment":" Apply a function to a result. If the result is `Ok`, it will be converted.\\nIf the result is an `Err`, the same error value will propagate through.\\n\\n    map sqrt (Ok 4.0)          == Ok 2.0\\n    map sqrt (Err \\"bad input\\") == Err \\"bad input\\"\\n"},{"name":"map2","fullName":"Result.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map2","signature":"(a -> b -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x value","comment":" Apply a function to two results, if both results are `Ok`. If not,\\nthe first argument which is an `Err` will propagate through.\\n\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"2\\") == Ok 3\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"y\\") == Err \\"could not convert string \'y\' to an Int\\"\\n    map2 (+) (String.toInt \\"x\\") (String.toInt \\"y\\") == Err \\"could not convert string \'x\' to an Int\\"\\n"},{"name":"map3","fullName":"Result.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map3","signature":"(a -> b -> c -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x value","comment":""},{"name":"map4","fullName":"Result.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map4","signature":"(a -> b -> c -> d -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x value","comment":""},{"name":"map5","fullName":"Result.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map5","signature":"(a -> b -> c -> d -> e -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x e -> Result.Result x value","comment":""},{"name":"toMaybe","fullName":"Result.toMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#toMaybe","signature":"Result.Result x a -> Maybe.Maybe a","comment":" Convert to a simpler `Maybe` if the actual error message is not needed or\\nyou need to interact with some code that primarily uses maybes.\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    maybeParseInt : String -> Maybe Int\\n    maybeParseInt string =\\n        toMaybe (parseInt string)\\n"},{"name":"withDefault","fullName":"Result.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#withDefault","signature":"a -> Result.Result x a -> a","comment":" If the result is `Ok` return the value, but if the result is an `Err` then\\nreturn a given default value. The following examples try to parse integers.\\n\\n    Result.withDefault 0 (String.toInt \\"123\\") == 123\\n    Result.withDefault 0 (String.toInt \\"abc\\") == 0\\n"},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"andThen","fullName":"Maybe.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#andThen","signature":"Maybe.Maybe a -> (a -> Maybe.Maybe b) -> Maybe.Maybe b","comment":" Chain together many computations that may fail. It is helpful to see its\\ndefinition:\\n\\n    andThen : Maybe a -> (a -> Maybe b) -> Maybe b\\n    andThen maybe callback =\\n        case maybe of\\n            Just value ->\\n                callback value\\n\\n            Nothing ->\\n                Nothing\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`head : List Int -> Maybe Int`) to get the\\nfirst month from a `List` and then make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Maybe Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12 then\\n            Just month\\n        else\\n            Nothing\\n\\n    getFirstMonth : List Int -> Maybe Int\\n    getFirstMonth months =\\n        head months `andThen` toValidMonth\\n\\nIf `head` fails and results in `Nothing` (because the `List` was empty`),\\nthis entire chain of operations will short-circuit and result in `Nothing`.\\nIf `toValidMonth` results in `Nothing`, again the chain of computations\\nwill result in `Nothing`.\\n"},{"name":"map","fullName":"Maybe.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map","signature":"(a -> b) -> Maybe.Maybe a -> Maybe.Maybe b","comment":" Transform a `Maybe` value with a given function:\\n\\n    map sqrt (Just 9) == Just 3\\n    map sqrt Nothing == Nothing\\n"},{"name":"map2","fullName":"Maybe.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map2","signature":"(a -> b -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe value","comment":" Apply a function if all the arguments are `Just` a value.\\n\\n    map2 (+) (Just 3) (Just 4) == Just 7\\n    map2 (+) (Just 3) Nothing == Nothing\\n    map2 (+) Nothing (Just 4) == Nothing\\n"},{"name":"map3","fullName":"Maybe.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map3","signature":"(a -> b -> c -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe value","comment":""},{"name":"map4","fullName":"Maybe.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map4","signature":"(a -> b -> c -> d -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe value","comment":""},{"name":"map5","fullName":"Maybe.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map5","signature":"(a -> b -> c -> d -> e -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe e -> Maybe.Maybe value","comment":""},{"name":"oneOf","fullName":"Maybe.oneOf","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#oneOf","signature":"List (Maybe.Maybe a) -> Maybe.Maybe a","comment":" Pick the first `Maybe` that actually has a value. Useful when you want to\\ntry a couple different things, but there is no default value.\\n\\n    oneOf [ Nothing, Just 42, Just 71 ] == Just 42\\n    oneOf [ Nothing, Nothing, Just 71 ] == Just 71\\n    oneOf [ Nothing, Nothing, Nothing ] == Nothing\\n"},{"name":"withDefault","fullName":"Maybe.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#withDefault","signature":"a -> Maybe.Maybe a -> a","comment":" Provide a default value, turning an optional value into a normal\\nvalue.  This comes in handy when paired with functions like\\n[`Dict.get`](Dict#get) which gives back a `Maybe`.\\n\\n    withDefault 100 (Just 42)   -- 42\\n    withDefault 100 Nothing     -- 100\\n\\n    withDefault \\"unknown\\" (Dict.get \\"Tom\\" Dict.empty)   -- \\"unknown\\"\\n\\n"},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""}]' 
errors: b''
Your PATH is:  /Users/rtfeldman/.gem/ruby/2.2.0/bin:/Users/rtfeldman/.rubies/ruby-2.2.0/lib/ruby/gems/2.2.0/bin:/Users/rtfeldman/.rubies/ruby-2.2.0/bin:/Users/rtfeldman/.local/bin:/Users/rtfeldman/.cabal/bin:/Applications/ghc-7.10.2.app/Contents/bin:/Users/rtfeldman/.rvm/gems/ruby-2.1.1/bin:/Users/rtfeldman/.rvm/gems/ruby-2.1.1@global/bin:/Users/rtfeldman/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/rtfeldman/.rvm/bin:/Users/rtfeldman/code/elm-local/.cabal-sandbox/bin:/Users/rtfeldman/code/elm-format/.cabal-sandbox/bin
[Elm says]: (elm-oracle) b'[{"name":"Mailbox","fullName":"Signal.Mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#Mailbox","signature":"{ address : Signal.Address a, signal : Signal.Signal a }","comment":" A `Mailbox` is a communication hub. It is made up of\\n\\n  * an `Address` that you can send messages to\\n  * a `Signal` of messages sent to the mailbox\\n"},{"name":"constant","fullName":"Signal.constant","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#constant","signature":"a -> Signal.Signal a","comment":" Create a signal that never changes. This can be useful if you need\\nto pass a combination of signals and normal values to a function:\\n\\n    map3 view Window.dimensions Mouse.position (constant initialModel)\\n"},{"name":"dropRepeats","fullName":"Signal.dropRepeats","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#dropRepeats","signature":"Signal.Signal a -> Signal.Signal a","comment":" Drop updates that repeat the current value of the signal.\\n\\n    numbers : Signal Int\\n\\n    noDups : Signal Int\\n    noDups =\\n        dropRepeats numbers\\n\\n    --  numbers => 0 0 3 3 5 5 5 4 ...\\n    --  noDups  => 0   3   5     4 ...\\n\\nThe signal should not be a signal of functions, or a record that contains a\\nfunction (you\'ll get a runtime error since functions cannot be equated).\\n"},{"name":"filter","fullName":"Signal.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filter","signature":"(a -> Bool) -> a -> Signal.Signal a -> Signal.Signal a","comment":" Filter out some updates. The given function decides whether we should\\n*keep* an update. If no updates ever flow through, we use the default value\\nprovided. The following example only keeps even numbers and has an initial\\nvalue of zero.\\n\\n    numbers : Signal Int\\n\\n    isEven : Int -> Bool\\n\\n    evens : Signal Int\\n    evens =\\n        filter isEven 0 numbers\\n"},{"name":"filterMap","fullName":"Signal.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#filterMap","signature":"(a -> Maybe.Maybe b) -> b -> Signal.Signal a -> Signal.Signal b","comment":" Filter out some updates. When the filter function gives back `Just` a\\nvalue, we send that value along. When it returns `Nothing` we drop it.\\nIf the initial value of the incoming signal turns into `Nothing`, we use the\\ndefault value provided. The following example keeps only strings that can be\\nread as integers.\\n\\n    userInput : Signal String\\n\\n    toInt : String -> Maybe Int\\n\\n    numbers : Signal Int\\n    numbers =\\n        filterMap toInt 0 userInput\\n"},{"name":"foldp","fullName":"Signal.foldp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#foldp","signature":"(a -> state -> state) -> state -> Signal.Signal a -> Signal.Signal state","comment":" Create a past-dependent signal. Each update from the incoming signals will\\nbe used to step the state forward. The outgoing signal represents the current\\nstate.\\n\\n    clickCount : Signal Int\\n    clickCount =\\n        foldp (\\\\click total -> total + 1) 0 Mouse.clicks\\n\\n    timeSoFar : Signal Time\\n    timeSoFar =\\n        foldp (+) 0 (fps 40)\\n\\nSo `clickCount` updates on each mouse click, incrementing by one. `timeSoFar`\\nis the time the program has been running, updated 40 times a second.\\n"},{"name":"forwardTo","fullName":"Signal.forwardTo","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#forwardTo","signature":"Signal.Address b -> (a -> b) -> Signal.Address a","comment":" Create a new address. This address will tag each message it receives\\nand then forward it along to some other address.\\n\\n    type Action = Undo | Remove Int | NoOp\\n\\n    actions : Mailbox Action\\n    actions = mailbox NoOp\\n\\n    removeAddress : Address Int\\n    removeAddress =\\n        forwardTo actions.address Remove\\n\\nIn this case we have a general `address` that many people may send\\nmessages to. The new `removeAddress` tags all messages with the `Remove` tag\\nbefore forwarding them along to the more general `address`. This means\\nsome parts of our application can know *only* about `removeAddress` and not\\ncare what other kinds of `Actions` are possible.\\n"},{"name":"mailbox","fullName":"Signal.mailbox","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mailbox","signature":"a -> Signal.Mailbox a","comment":" Create a mailbox you can send messages to. The primary use case is\\nreceiving updates from tasks and UI elements. The argument is a default value\\nfor the custom signal.\\n\\nNote: Creating new signals is inherently impure, so `(mailbox ())` and\\n`(mailbox ())` produce two different mailboxes.\\n"},{"name":"map","fullName":"Signal.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map","signature":"(a -> result) -> Signal.Signal a -> Signal.Signal result","comment":" Apply a function to a signal.\\n\\n    mouseIsUp : Signal Bool\\n    mouseIsUp =\\n        map not Mouse.isDown\\n\\n    main : Signal Element\\n    main =\\n        map Graphics.Element.show Mouse.position\\n"},{"name":"map2","fullName":"Signal.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map2","signature":"(a -> b -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal result","comment":" Apply a function to the current value of two signals. The function\\nis reevaluated whenever *either* signal changes. In the following example, we\\nfigure out the `aspectRatio` of the window by combining the current width and\\nheight.\\n\\n    ratio : Int -> Int -> Float\\n    ratio width height =\\n        toFloat width / toFloat height\\n\\n    aspectRatio : Signal Float\\n    aspectRatio =\\n        map2 ratio Window.width Window.height\\n"},{"name":"map3","fullName":"Signal.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map3","signature":"(a -> b -> c -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal result","comment":""},{"name":"map4","fullName":"Signal.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map4","signature":"(a -> b -> c -> d -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal result","comment":""},{"name":"map5","fullName":"Signal.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#map5","signature":"(a -> b -> c -> d -> e -> result) -> Signal.Signal a -> Signal.Signal b -> Signal.Signal c -> Signal.Signal d -> Signal.Signal e -> Signal.Signal result","comment":""},{"name":"merge","fullName":"Signal.merge","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#merge","signature":"Signal.Signal a -> Signal.Signal a -> Signal.Signal a","comment":" Merge two signals into one. This function is extremely useful for bringing\\ntogether lots of different signals to feed into a `foldp`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float\\n\\n    updates : Signal Update\\n    updates =\\n        merge\\n            (map MouseMove Mouse.position)\\n            (map TimeDelta (fps 40))\\n\\nIf an update comes from either of the incoming signals, it updates the outgoing\\nsignal. If an update comes on both signals at the same time, the update provided\\nby the left input signal wins (i.e., the update from the second signal is discarded).\\n"},{"name":"mergeMany","fullName":"Signal.mergeMany","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#mergeMany","signature":"List (Signal.Signal a) -> Signal.Signal a","comment":" Merge many signals into one. This is useful when you are merging more than\\ntwo signals. When multiple updates come in at the same time, the left-most\\nupdate wins, just like with `merge`.\\n\\n    type Update = MouseMove (Int,Int) | TimeDelta Float | Click\\n\\n    updates : Signal Update\\n    updates =\\n        mergeMany\\n            [ map MouseMove Mouse.position\\n            , map TimeDelta (fps 40)\\n            , map (always Click) Mouse.clicks\\n            ]\\n"},{"name":"message","fullName":"Signal.message","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#message","signature":"Signal.Address a -> a -> Signal.Message","comment":" Create a message that may be sent to a `Mailbox` at a later time.\\n\\nMost importantly, this lets us create APIs that can send values to ports\\n*without* allowing people to run arbitrary tasks.\\n"},{"name":"sampleOn","fullName":"Signal.sampleOn","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#sampleOn","signature":"Signal.Signal a -> Signal.Signal b -> Signal.Signal b","comment":" Sample from the second input every time an event occurs on the first input.\\nFor example, `(sampleOn Mouse.clicks (Time.every Time.second))` will give the\\napproximate time of the latest click. "},{"name":"send","fullName":"Signal.send","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Signal#send","signature":"Signal.Address a -> a -> Task.Task x ()","comment":" Send a message to an `Address`.\\n\\n    type Action = Undo | Remove Int\\n\\n    address : Address Action\\n\\n    requestUndo : Task x ()\\n    requestUndo =\\n        send address Undo\\n\\nThe `Signal` associated with `address` will receive the `Undo` message\\nand push it through the Elm program.\\n"},{"name":"all","fullName":"String.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#all","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *all* characters satisfy a predicate.\\n\\n    all isDigit \\"90210\\" == True\\n    all isDigit \\"R2-D2\\" == False\\n    all isDigit \\"heart\\" == False\\n"},{"name":"any","fullName":"String.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#any","signature":"(Char -> Bool) -> String -> Bool","comment":" Determine whether *any* characters satisfy a predicate.\\n\\n    any isDigit \\"90210\\" == True\\n    any isDigit \\"R2-D2\\" == True\\n    any isDigit \\"heart\\" == False\\n"},{"name":"append","fullName":"String.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#append","signature":"String -> String -> String","comment":" Append two strings. You can also use [the `(++)` operator](Basics#++)\\nto do this.\\n\\n    append \\"butter\\" \\"fly\\" == \\"butterfly\\"\\n"},{"name":"concat","fullName":"String.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#concat","signature":"List String -> String","comment":" Concatenate many strings into one.\\n\\n    concat [\\"never\\",\\"the\\",\\"less\\"] == \\"nevertheless\\"\\n"},{"name":"cons","fullName":"String.cons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#cons","signature":"Char -> String -> String","comment":" Add a character to the beginning of a string. "},{"name":"contains","fullName":"String.contains","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#contains","signature":"String -> String -> Bool","comment":" See if the second string contains the first one.\\n\\n    contains \\"the\\" \\"theory\\" == True\\n    contains \\"hat\\" \\"theory\\" == False\\n    contains \\"THE\\" \\"theory\\" == False\\n\\nUse [`Regex.contains`](Regex#contains) if you need something more flexible.\\n"},{"name":"dropLeft","fullName":"String.dropLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropLeft","signature":"Int -> String -> String","comment":" Drop *n* characters from the left side of a string. "},{"name":"dropRight","fullName":"String.dropRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#dropRight","signature":"Int -> String -> String","comment":" Drop *n* characters from the right side of a string. "},{"name":"endsWith","fullName":"String.endsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#endsWith","signature":"String -> String -> Bool","comment":" See if the second string ends with the first one.\\n\\n    endsWith \\"the\\" \\"theory\\" == False\\n    endsWith \\"ory\\" \\"theory\\" == True\\n"},{"name":"filter","fullName":"String.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#filter","signature":"(Char -> Bool) -> String -> String","comment":" Keep only the characters that satisfy the predicate.\\n\\n    filter isDigit \\"R2-D2\\" == \\"22\\"\\n"},{"name":"foldl","fullName":"String.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldl","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the left.\\n\\n    foldl cons \\"\\" \\"time\\" == \\"emit\\"\\n"},{"name":"foldr","fullName":"String.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#foldr","signature":"(Char -> b -> b) -> b -> String -> b","comment":" Reduce a string from the right.\\n\\n    foldr cons \\"\\" \\"time\\" == \\"time\\"\\n"},{"name":"fromChar","fullName":"String.fromChar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromChar","signature":"Char -> String","comment":" Create a string from a given character.\\n\\n    fromChar \'a\' == \\"a\\"\\n"},{"name":"fromList","fullName":"String.fromList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#fromList","signature":"List Char -> String","comment":" Convert a list of characters into a String. Can be useful if you\\nwant to create a string primarily by consing, perhaps for decoding\\nsomething.\\n\\n    fromList [\'a\',\'b\',\'c\'] == \\"abc\\"\\n"},{"name":"indexes","fullName":"String.indexes","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indexes","signature":"String -> String -> List Int","comment":" Get all of the indexes for a substring in another string.\\n\\n    indexes \\"i\\" \\"Mississippi\\"   == [1,4,7,10]\\n    indexes \\"ss\\" \\"Mississippi\\"  == [2,5]\\n    indexes \\"needle\\" \\"haystack\\" == []\\n"},{"name":"indices","fullName":"String.indices","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#indices","signature":"String -> String -> List Int","comment":" Alias for `indexes`. "},{"name":"isEmpty","fullName":"String.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#isEmpty","signature":"String -> Bool","comment":" Determine if a string is empty.\\n\\n    isEmpty \\"\\" == True\\n    isEmpty \\"the world\\" == False\\n"},{"name":"join","fullName":"String.join","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#join","signature":"String -> List String -> String","comment":" Put many strings together with a given separator.\\n\\n    join \\"a\\" [\\"H\\",\\"w\\",\\"ii\\",\\"n\\"]        == \\"Hawaiian\\"\\n    join \\" \\" [\\"cat\\",\\"dog\\",\\"cow\\"]       == \\"cat dog cow\\"\\n    join \\"/\\" [\\"home\\",\\"evan\\",\\"Desktop\\"] == \\"home/evan/Desktop\\"\\n"},{"name":"left","fullName":"String.left","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#left","signature":"Int -> String -> String","comment":" Take *n* characters from the left side of a string. "},{"name":"length","fullName":"String.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#length","signature":"String -> Int","comment":" Get the length of a string.\\n\\n    length \\"innumerable\\" == 11\\n    length \\"\\" == 0\\n\\n"},{"name":"lines","fullName":"String.lines","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#lines","signature":"String -> List String","comment":" Break a string into lines, splitting on newlines.\\n\\n    lines \\"How are you?\\\\nGood?\\" == [\\"How are you?\\", \\"Good?\\"]\\n"},{"name":"map","fullName":"String.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#map","signature":"(Char -> Char) -> String -> String","comment":" Transform every character in a string\\n\\n    map (\\\\c -> if c == \'/\' then \'.\' else c) \\"a/b/c\\" == \\"a.b.c\\"\\n"},{"name":"pad","fullName":"String.pad","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#pad","signature":"Int -> Char -> String -> String","comment":" Pad a string on both sides until it has a given length.\\n\\n    pad 5 \' \' \\"1\\"   == \\"  1  \\"\\n    pad 5 \' \' \\"11\\"  == \\"  11 \\"\\n    pad 5 \' \' \\"121\\" == \\" 121 \\"\\n"},{"name":"padLeft","fullName":"String.padLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padLeft","signature":"Int -> Char -> String -> String","comment":" Pad a string on the left until it has a given length.\\n\\n    padLeft 5 \'.\' \\"1\\"   == \\"....1\\"\\n    padLeft 5 \'.\' \\"11\\"  == \\"...11\\"\\n    padLeft 5 \'.\' \\"121\\" == \\"..121\\"\\n"},{"name":"padRight","fullName":"String.padRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#padRight","signature":"Int -> Char -> String -> String","comment":" Pad a string on the right until it has a given length.\\n\\n    padRight 5 \'.\' \\"1\\"   == \\"1....\\"\\n    padRight 5 \'.\' \\"11\\"  == \\"11...\\"\\n    padRight 5 \'.\' \\"121\\" == \\"121..\\"\\n"},{"name":"repeat","fullName":"String.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#repeat","signature":"Int -> String -> String","comment":" Repeat a string *n* times.\\n\\n    repeat 3 \\"ha\\" == \\"hahaha\\"\\n"},{"name":"reverse","fullName":"String.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#reverse","signature":"String -> String","comment":" Reverse a string.\\n\\n    reverse \\"stressed\\" == \\"desserts\\"\\n"},{"name":"right","fullName":"String.right","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#right","signature":"Int -> String -> String","comment":" Take *n* characters from the right side of a string. "},{"name":"slice","fullName":"String.slice","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#slice","signature":"Int -> Int -> String -> String","comment":" Take a substring given a start and end index. Negative indexes\\nare taken starting from the *end* of the list.\\n\\n    slice  7  9 \\"snakes on a plane!\\" == \\"on\\"\\n    slice  0  6 \\"snakes on a plane!\\" == \\"snakes\\"\\n    slice  0 -7 \\"snakes on a plane!\\" == \\"snakes on a\\"\\n    slice -6 -1 \\"snakes on a plane!\\" == \\"plane\\"\\n"},{"name":"split","fullName":"String.split","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#split","signature":"String -> String -> List String","comment":" Split a string using a given separator.\\n\\n    split \\",\\" \\"cat,dog,cow\\"        == [\\"cat\\",\\"dog\\",\\"cow\\"]\\n    split \\"/\\" \\"home/evan/Desktop/\\" == [\\"home\\",\\"evan\\",\\"Desktop\\", \\"\\"]\\n\\nUse [`Regex.split`](Regex#split) if you need something more flexible.\\n"},{"name":"startsWith","fullName":"String.startsWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#startsWith","signature":"String -> String -> Bool","comment":" See if the second string starts with the first one.\\n\\n    startsWith \\"the\\" \\"theory\\" == True\\n    startsWith \\"ory\\" \\"theory\\" == False\\n"},{"name":"toFloat","fullName":"String.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toFloat","signature":"String -> Result.Result String Float","comment":" Try to convert a string into a float, failing on improperly formatted strings.\\n\\n    toFloat \\"123\\" == Ok 123.0\\n    toFloat \\"-42\\" == Ok -42.0\\n    toFloat \\"3.1\\" == Ok 3.1\\n    toFloat \\"31a\\" == Err \\"could not convert string \'31a\' to a Float\\"\\n"},{"name":"toInt","fullName":"String.toInt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toInt","signature":"String -> Result.Result String Int","comment":" Try to convert a string into an int, failing on improperly formatted strings.\\n\\n    toInt \\"123\\" == Ok 123\\n    toInt \\"-42\\" == Ok -42\\n    toInt \\"3.1\\" == Err \\"could not convert string \'3.1\' to an Int\\"\\n    toInt \\"31a\\" == Err \\"could not convert string \'31a\' to an Int\\"\\n"},{"name":"toList","fullName":"String.toList","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toList","signature":"String -> List Char","comment":" Convert a string to a list of characters.\\n\\n    toList \\"abc\\" == [\'a\',\'b\',\'c\']\\n"},{"name":"toLower","fullName":"String.toLower","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toLower","signature":"String -> String","comment":" Convert a string to all lower case. Useful for case-insensitive comparisons. "},{"name":"toUpper","fullName":"String.toUpper","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#toUpper","signature":"String -> String","comment":" Convert a string to all upper case. Useful for case-insensitive comparisons\\nand VIRTUAL YELLING.\\n"},{"name":"trim","fullName":"String.trim","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trim","signature":"String -> String","comment":" Get rid of whitespace on both sides of a string.\\n\\n    trim \\"  hats  \\\\n\\" == \\"hats\\"\\n"},{"name":"trimLeft","fullName":"String.trimLeft","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimLeft","signature":"String -> String","comment":" Get rid of whitespace on the left of a string.\\n\\n    trimLeft \\"  hats  \\\\n\\" == \\"hats  \\\\n\\"\\n"},{"name":"trimRight","fullName":"String.trimRight","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#trimRight","signature":"String -> String","comment":" Get rid of whitespace on the right of a string.\\n\\n    trimRight \\"  hats  \\\\n\\" == \\"  hats\\"\\n"},{"name":"uncons","fullName":"String.uncons","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#uncons","signature":"String -> Maybe.Maybe ( Char, String )","comment":" Split a non-empty string into its head and tail. This lets you\\npattern match on strings exactly as you would with lists.\\n\\n    uncons \\"abc\\" == Just (\'a\',\\"bc\\")\\n    uncons \\"\\"    == Nothing\\n"},{"name":"words","fullName":"String.words","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/String#words","signature":"String -> List String","comment":" Break a string into words, splitting on chunks of whitespace.\\n\\n    words \\"How are \\\\t you? \\\\n Good?\\" == [\\"How\\",\\"are\\",\\"you?\\",\\"Good?\\"]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"::","fullName":"List.::","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#::","signature":"a -> List a -> List a","comment":" Add an element to the front of a list. Pronounced *cons*.\\n\\n    1 :: [2,3] == [1,2,3]\\n    1 :: [] == [1]\\n"},{"name":"all","fullName":"List.all","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#all","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if all elements satisfy the predicate.\\n\\n    all isEven [2,4] == True\\n    all isEven [2,3] == False\\n    all isEven [] == True\\n"},{"name":"any","fullName":"List.any","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#any","signature":"(a -> Bool) -> List a -> Bool","comment":" Determine if any elements satisfy the predicate.\\n\\n    any isEven [2,3] == True\\n    any isEven [1,3] == False\\n    any isEven [] == False\\n"},{"name":"append","fullName":"List.append","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#append","signature":"List a -> List a -> List a","comment":" Put two lists together.\\n\\n    append [1,1,2] [3,5,8] == [1,1,2,3,5,8]\\n    append [\'a\',\'b\'] [\'c\'] == [\'a\',\'b\',\'c\']\\n"},{"name":"concat","fullName":"List.concat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concat","signature":"List (List a) -> List a","comment":" Concatenate a bunch of lists into a single list:\\n\\n    concat [[1,2],[3],[4,5]] == [1,2,3,4,5]\\n"},{"name":"concatMap","fullName":"List.concatMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#concatMap","signature":"(a -> List b) -> List a -> List b","comment":" Map a given function onto a list and flatten the resulting lists.\\n\\n    concatMap f xs == concat (map f xs)\\n"},{"name":"drop","fullName":"List.drop","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#drop","signature":"Int -> List a -> List a","comment":" Drop the first *n* members of a list.\\n\\n    drop 2 [1,2,3,4] == [3,4]\\n"},{"name":"filter","fullName":"List.filter","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filter","signature":"(a -> Bool) -> List a -> List a","comment":" Keep only elements that satisfy the predicate.\\n\\n    filter isEven [1..6] == [2,4,6]\\n"},{"name":"filterMap","fullName":"List.filterMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#filterMap","signature":"(a -> Maybe.Maybe b) -> List a -> List b","comment":" Apply a function that may succeed to all values in the list, but only keep\\nthe successes.\\n\\n    String.toInt : String -> Maybe Int\\n\\n    filterMap String.toInt [\\"3\\", \\"4.0\\", \\"5\\", \\"hats\\"] == [3,5]\\n"},{"name":"foldl","fullName":"List.foldl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldl","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the left.\\n\\n    foldl (::) [] [1,2,3] == [3,2,1]\\n"},{"name":"foldr","fullName":"List.foldr","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#foldr","signature":"(a -> b -> b) -> b -> List a -> b","comment":" Reduce a list from the right.\\n\\n    foldr (+) 0 [1,2,3] == 6\\n"},{"name":"head","fullName":"List.head","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#head","signature":"List a -> Maybe.Maybe a","comment":" Extract the first element of a list.\\n\\n    head [1,2,3] == Just 1\\n    head [] == Nothing\\n"},{"name":"indexedMap","fullName":"List.indexedMap","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#indexedMap","signature":"(Int -> a -> b) -> List a -> List b","comment":" Same as `map` but the function is also applied to the index of each\\nelement (starting at zero).\\n\\n    indexedMap (,) [\\"Tom\\",\\"Sue\\",\\"Bob\\"] == [ (0,\\"Tom\\"), (1,\\"Sue\\"), (2,\\"Bob\\") ]\\n"},{"name":"intersperse","fullName":"List.intersperse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#intersperse","signature":"a -> List a -> List a","comment":" Places the given value between all members of the given list.\\n\\n    intersperse \\"on\\" [\\"turtles\\",\\"turtles\\",\\"turtles\\"] == [\\"turtles\\",\\"on\\",\\"turtles\\",\\"on\\",\\"turtles\\"]\\n"},{"name":"isEmpty","fullName":"List.isEmpty","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#isEmpty","signature":"List a -> Bool","comment":" Determine if a list is empty.\\n\\n    isEmpty [] == True\\n"},{"name":"length","fullName":"List.length","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#length","signature":"List a -> Int","comment":" Determine the length of a list.\\n\\n    length [1,2,3] == 3\\n"},{"name":"map","fullName":"List.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map","signature":"(a -> b) -> List a -> List b","comment":" Apply a function to every element of a list.\\n\\n    map sqrt [1,4,9] == [1,2,3]\\n\\n    map not [True,False,True] == [False,True,False]\\n"},{"name":"map2","fullName":"List.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map2","signature":"(a -> b -> result) -> List a -> List b -> List result","comment":" Combine two lists, combining them with the given function.\\nIf one list is longer, the extra elements are dropped.\\n\\n    map2 (+) [1,2,3] [1,2,3,4] == [2,4,6]\\n\\n    map2 (,) [1,2,3] [\'a\',\'b\'] == [ (1,\'a\'), (2,\'b\') ]\\n\\n    pairs : List a -> List b -> List (a,b)\\n    pairs lefts rights =\\n        map2 (,) lefts rights\\n"},{"name":"map3","fullName":"List.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map3","signature":"(a -> b -> c -> result) -> List a -> List b -> List c -> List result","comment":""},{"name":"map4","fullName":"List.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map4","signature":"(a -> b -> c -> d -> result) -> List a -> List b -> List c -> List d -> List result","comment":""},{"name":"map5","fullName":"List.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#map5","signature":"(a -> b -> c -> d -> e -> result) -> List a -> List b -> List c -> List d -> List e -> List result","comment":""},{"name":"maximum","fullName":"List.maximum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#maximum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the maximum element in a non-empty list.\\n\\n    maximum [1,4,2] == Just 4\\n    maximum []      == Nothing\\n"},{"name":"member","fullName":"List.member","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#member","signature":"a -> List a -> Bool","comment":" Figure out whether a list contains a value.\\n\\n    member 9 [1,2,3,4] == False\\n    member 4 [1,2,3,4] == True\\n"},{"name":"minimum","fullName":"List.minimum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#minimum","signature":"List comparable -> Maybe.Maybe comparable","comment":" Find the minimum element in a non-empty list.\\n\\n    minimum [3,2,1] == Just 1\\n    minimum []      == Nothing\\n"},{"name":"partition","fullName":"List.partition","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#partition","signature":"(a -> Bool) -> List a -> ( List a, List a )","comment":" Partition a list based on a predicate. The first list contains all values\\nthat satisfy the predicate, and the second list contains all the value that do\\nnot.\\n\\n    partition (\\\\x -> x < 3) [0..5] == ([0,1,2], [3,4,5])\\n    partition isEven        [0..5] == ([0,2,4], [1,3,5])\\n"},{"name":"product","fullName":"List.product","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#product","signature":"List number -> number","comment":" Get the product of the list elements.\\n\\n    product [1..4] == 24\\n"},{"name":"repeat","fullName":"List.repeat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#repeat","signature":"Int -> a -> List a","comment":" Create a list with *n* copies of a value:\\n\\n    repeat 3 (0,0) == [(0,0),(0,0),(0,0)]\\n"},{"name":"reverse","fullName":"List.reverse","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#reverse","signature":"List a -> List a","comment":" Reverse a list.\\n\\n    reverse [1..4] == [4,3,2,1]\\n"},{"name":"scanl","fullName":"List.scanl","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#scanl","signature":"(a -> b -> b) -> b -> List a -> List b","comment":" Reduce a list from the left, building up all of the intermediate results into a list.\\n\\n    scanl (+) 0 [1,2,3,4] == [0,1,3,6,10]\\n"},{"name":"sort","fullName":"List.sort","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sort","signature":"List comparable -> List comparable","comment":" Sort values from lowest to highest\\n\\n    sort [3,1,5] == [1,3,5]\\n"},{"name":"sortBy","fullName":"List.sortBy","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortBy","signature":"(a -> comparable) -> List a -> List a","comment":" Sort values by a derived property.\\n\\n    alice = { name=\\"Alice\\", height=1.62 }\\n    bob   = { name=\\"Bob\\"  , height=1.85 }\\n    chuck = { name=\\"Chuck\\", height=1.76 }\\n\\n    sortBy .name   [chuck,alice,bob] == [alice,bob,chuck]\\n    sortBy .height [chuck,alice,bob] == [alice,chuck,bob]\\n\\n    sortBy String.length [\\"mouse\\",\\"cat\\"] == [\\"cat\\",\\"mouse\\"]\\n"},{"name":"sortWith","fullName":"List.sortWith","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sortWith","signature":"(a -> a -> Basics.Order) -> List a -> List a","comment":" Sort values with a custom comparison function.\\n\\n    sortWith flippedComparison [1..5] == [5,4,3,2,1]\\n\\n    flippedComparison a b =\\n        case compare a b of\\n          LT -> GT\\n          EQ -> EQ\\n          GT -> LT\\n\\nThis is also the most general sort function, allowing you\\nto define any other: `sort == sortWith compare`\\n"},{"name":"sum","fullName":"List.sum","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#sum","signature":"List number -> number","comment":" Get the sum of the list elements.\\n\\n    sum [1..4] == 10\\n"},{"name":"tail","fullName":"List.tail","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#tail","signature":"List a -> Maybe.Maybe (List a)","comment":" Extract the rest of the list.\\n\\n    tail [1,2,3] == Just [2,3]\\n    tail [] == Nothing\\n"},{"name":"take","fullName":"List.take","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#take","signature":"Int -> List a -> List a","comment":" Take the first *n* members of a list.\\n\\n    take 2 [1,2,3,4] == [1,2]\\n"},{"name":"unzip","fullName":"List.unzip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/List#unzip","signature":"List ( a, b ) -> ( List a, List b )","comment":" Decompose a list of tuples into a tuple of lists.\\n\\n    unzip [(0, True), (17, False), (1337, True)] == ([0,17,1337], [True,False,True])\\n"},{"name":"andThen","fullName":"Result.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#andThen","signature":"Result.Result x a -> (a -> Result.Result x b) -> Result.Result x b","comment":" Chain together a sequence of computations that may fail. It is helpful\\nto see its definition:\\n\\n    andThen : Result e a -> (a -> Result e b) -> Result e b\\n    andThen result callback =\\n        case result of\\n          Ok value -> callback value\\n          Err msg -> Err msg\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`toInt : String -> Result String Int`) to parse\\na month and make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Result String Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12\\n            then Ok month\\n            else Err \\"months must be between 1 and 12\\"\\n\\n    toMonth : String -> Result String Int\\n    toMonth rawString =\\n        toInt rawString `andThen` toValidMonth\\n\\n    -- toMonth \\"4\\" == Ok 4\\n    -- toMonth \\"9\\" == Ok 9\\n    -- toMonth \\"a\\" == Err \\"cannot parse to an Int\\"\\n    -- toMonth \\"0\\" == Err \\"months must be between 1 and 12\\"\\n\\nThis allows us to come out of a chain of operations with quite a specific error\\nmessage. It is often best to create a custom type that explicitly represents\\nthe exact ways your computation may fail. This way it is easy to handle in your\\ncode.\\n"},{"name":"formatError","fullName":"Result.formatError","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#formatError","signature":"(error -> error\') -> Result.Result error a -> Result.Result error\' a","comment":" Format the error value of a result. If the result is `Ok`, it stays exactly\\nthe same, but if the result is an `Err` we will format the error. For example,\\nsay the errors we get have too much information:\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    type ParseError =\\n        { message : String\\n        , code : Int\\n        , position : (Int,Int)\\n        }\\n\\n    formatError .message (parseInt \\"123\\") == Ok 123\\n    formatError .message (parseInt \\"abc\\") == Err \\"char \'a\' is not a number\\"\\n"},{"name":"fromMaybe","fullName":"Result.fromMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#fromMaybe","signature":"x -> Maybe.Maybe a -> Result.Result x a","comment":" Convert from a simple `Maybe` to interact with some code that primarily\\nuses `Results`.\\n\\n    parseInt : String -> Maybe Int\\n\\n    resultParseInt : String -> Result String Int\\n    resultParseInt string =\\n        fromMaybe (\\"error parsing string: \\" ++ toString string) (parseInt string)\\n"},{"name":"map","fullName":"Result.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map","signature":"(a -> value) -> Result.Result x a -> Result.Result x value","comment":" Apply a function to a result. If the result is `Ok`, it will be converted.\\nIf the result is an `Err`, the same error value will propagate through.\\n\\n    map sqrt (Ok 4.0)          == Ok 2.0\\n    map sqrt (Err \\"bad input\\") == Err \\"bad input\\"\\n"},{"name":"map2","fullName":"Result.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map2","signature":"(a -> b -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x value","comment":" Apply a function to two results, if both results are `Ok`. If not,\\nthe first argument which is an `Err` will propagate through.\\n\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"2\\") == Ok 3\\n    map2 (+) (String.toInt \\"1\\") (String.toInt \\"y\\") == Err \\"could not convert string \'y\' to an Int\\"\\n    map2 (+) (String.toInt \\"x\\") (String.toInt \\"y\\") == Err \\"could not convert string \'x\' to an Int\\"\\n"},{"name":"map3","fullName":"Result.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map3","signature":"(a -> b -> c -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x value","comment":""},{"name":"map4","fullName":"Result.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map4","signature":"(a -> b -> c -> d -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x value","comment":""},{"name":"map5","fullName":"Result.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#map5","signature":"(a -> b -> c -> d -> e -> value) -> Result.Result x a -> Result.Result x b -> Result.Result x c -> Result.Result x d -> Result.Result x e -> Result.Result x value","comment":""},{"name":"toMaybe","fullName":"Result.toMaybe","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#toMaybe","signature":"Result.Result x a -> Maybe.Maybe a","comment":" Convert to a simpler `Maybe` if the actual error message is not needed or\\nyou need to interact with some code that primarily uses maybes.\\n\\n    parseInt : String -> Result ParseError Int\\n\\n    maybeParseInt : String -> Maybe Int\\n    maybeParseInt string =\\n        toMaybe (parseInt string)\\n"},{"name":"withDefault","fullName":"Result.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#withDefault","signature":"a -> Result.Result x a -> a","comment":" If the result is `Ok` return the value, but if the result is an `Err` then\\nreturn a given default value. The following examples try to parse integers.\\n\\n    Result.withDefault 0 (String.toInt \\"123\\") == 123\\n    Result.withDefault 0 (String.toInt \\"abc\\") == 0\\n"},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Ok","fullName":"Result.Ok","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"Err","fullName":"Result.Err","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Result#Result","signature":"","comment":""},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"%","fullName":"Basics.%","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#%","signature":"Int -> Int -> Int","comment":" Perform [modular arithmetic](http://en.wikipedia.org/wiki/Modular_arithmetic).\\n\\n     7 % 2 == 1\\n    -1 % 4 == 3\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"&&","fullName":"Basics.&&","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#&&","signature":"Bool -> Bool -> Bool","comment":" The logical AND operator. `True` if both inputs are `True`.\\nThis operator short-circuits to `False` if the first argument is `False`.\\n"},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"*","fullName":"Basics.*","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#*","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"+","fullName":"Basics.+","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#+","signature":"number -> number -> number","comment":""},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"++","fullName":"Basics.++","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#++","signature":"appendable -> appendable -> appendable","comment":" Put two appendable things together. This includes strings, lists, and text.\\n\\n    \\"hello\\" ++ \\"world\\" == \\"helloworld\\"\\n    [1,1,2] ++ [3,5,8] == [1,1,2,3,5,8]\\n"},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"-","fullName":"Basics.-","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#-","signature":"number -> number -> number","comment":""},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"/","fullName":"Basics./","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/","signature":"Float -> Float -> Float","comment":" Floating point division. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"//","fullName":"Basics.//","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#//","signature":"Int -> Int -> Int","comment":" Integer division. The remainder is discarded. "},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"/=","fullName":"Basics./=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#/=","signature":"a -> a -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<","fullName":"Basics.<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<<","fullName":"Basics.<<","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<<","signature":"(b -> c) -> (a -> b) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    not << isEven << sqrt\\n\\nYou can think of this operator as equivalent to the following:\\n\\n    (g << f)  ==  (\\\\x -> g (f x))\\n\\nSo our example expands out to something like this:\\n\\n    \\\\n -> not (isEven (sqrt n))\\n"},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<=","fullName":"Basics.<=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<=","signature":"comparable -> comparable -> Bool","comment":""},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"<|","fullName":"Basics.<|","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#<|","signature":"(a -> b) -> a -> b","comment":" Backward function application `f <| x == f x`. This function is useful for\\navoiding parenthesis. Consider the following code to create a text element:\\n\\n    leftAligned (monospace (fromString \\"code\\"))\\n\\nThis can also be written as:\\n\\n    leftAligned << monospace <| fromString \\"code\\"\\n"},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":"==","fullName":"Basics.==","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#==","signature":"a -> a -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">","fullName":"Basics.>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">=","fullName":"Basics.>=","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>=","signature":"comparable -> comparable -> Bool","comment":""},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":">>","fullName":"Basics.>>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#>>","signature":"(a -> b) -> (b -> c) -> a -> c","comment":" Function composition, passing results along in the suggested direction. For\\nexample, the following code checks if the square root of a number is odd:\\n\\n    sqrt >> isEven >> not\\n\\nThis direction of function composition seems less pleasant than `(<<)` which\\nreads nicely in expressions like: `filter (not << isRegistered) students`\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"^","fullName":"Basics.^","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#^","signature":"number -> number -> number","comment":" Exponentiation\\n\\n    3^2 == 9\\n"},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"abs","fullName":"Basics.abs","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#abs","signature":"number -> number","comment":" Take the absolute value of a number. "},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"acos","fullName":"Basics.acos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#acos","signature":"Float -> Float","comment":""},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"always","fullName":"Basics.always","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#always","signature":"a -> b -> a","comment":" Create a [constant function](http://en.wikipedia.org/wiki/Constant_function),\\na function that *always* returns the same value regardless of what input you give.\\nIt is defined as:\\n\\n    always a b = a\\n\\nIt totally ignores the second argument, so `always 42` is a function that always\\nreturns 42. When you are dealing with higher-order functions, this comes in\\nhandy more often than you might expect. For example, creating a zeroed out list\\nof length ten would be:\\n\\n    map (always 0) [0..9]\\n"},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"asin","fullName":"Basics.asin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#asin","signature":"Float -> Float","comment":""},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan","fullName":"Basics.atan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan","signature":"Float -> Float","comment":" You probably do not want to use this. It takes `(y/x)` as the\\nargument, so there is no way to know whether the negative signs comes from\\nthe `y` or `x`. Thus, the resulting angle is always between &pi;/2 and -&pi;/2\\n(in quadrants I and IV). You probably want to use `atan2` instead.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"atan2","fullName":"Basics.atan2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#atan2","signature":"Float -> Float -> Float","comment":" This helps you find the angle of a Cartesian coordinate.\\nYou will almost certainly want to use this instead of `atan`.\\nSo `atan2 y x` computes *atan(y/x)* but also keeps track of which\\nquadrant the angle should really be in. The result will be between\\n&pi; and -&pi;, giving you the full range of angles.\\n"},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"ceiling","fullName":"Basics.ceiling","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#ceiling","signature":"Float -> Int","comment":" Ceiling function, rounding up. "},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"clamp","fullName":"Basics.clamp","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#clamp","signature":"number -> number -> number -> number","comment":" Clamps a number within a given range. With the expression\\n`clamp 100 200 x` the results are as follows:\\n\\n    100     if x < 100\\n     x      if 100 <= x < 200\\n    200     if 200 <= x\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"compare","fullName":"Basics.compare","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#compare","signature":"comparable -> comparable -> Basics.Order","comment":" Compare any two comparable values. Comparable values include `String`, `Char`,\\n`Int`, `Float`, `Time`, or a list or tuple containing comparable values.\\nThese are also the only values that work as `Dict` keys or `Set` members.\\n"},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"cos","fullName":"Basics.cos","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#cos","signature":"Float -> Float","comment":""},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"curry","fullName":"Basics.curry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#curry","signature":"(( a, b ) -> c) -> a -> b -> c","comment":" Change how arguments are passed to a function.\\nThis splits paired arguments into two separate arguments.\\n"},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"degrees","fullName":"Basics.degrees","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#degrees","signature":"Float -> Float","comment":" Convert degrees to standard Elm angles (radians). "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"e","fullName":"Basics.e","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#e","signature":"Float","comment":" An approximation of e. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"flip","fullName":"Basics.flip","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#flip","signature":"(a -> b -> c) -> b -> a -> c","comment":" Flip the order of the first two arguments to a function. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"floor","fullName":"Basics.floor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#floor","signature":"Float -> Int","comment":" Floor function, rounding down. "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fromPolar","fullName":"Basics.fromPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fromPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert polar coordinates (r,&theta;) to Cartesian coordinates (x,y). "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"fst","fullName":"Basics.fst","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#fst","signature":"( a, b ) -> a","comment":" Given a 2-tuple, returns the first value. "},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"identity","fullName":"Basics.identity","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#identity","signature":"a -> a","comment":" Given a value, returns exactly the same value. This is called\\n[the identity function](http://en.wikipedia.org/wiki/Identity_function).\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isInfinite","fullName":"Basics.isInfinite","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isInfinite","signature":"Float -> Bool","comment":" Determine whether a float is positive or negative infinity.\\n\\n    isInfinite (0/0)     == False\\n    isInfinite (sqrt -1) == False\\n    isInfinite (1/0)     == True\\n    isInfinite 1         == False\\n\\nNotice that NaN is not infinite! For float `n` to be finite implies that\\n`not (isInfinite n || isNaN n)` evaluates to `True`.\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"isNaN","fullName":"Basics.isNaN","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN","signature":"Float -> Bool","comment":" Determine whether a float is an undefined or unrepresentable number.\\nNaN stands for *not a number* and it is [a standardized part of floating point\\nnumbers](http://en.wikipedia.org/wiki/NaN).\\n\\n    isNaN (0/0)     == True\\n    isNaN (sqrt -1) == True\\n    isNaN (1/0)     == False  -- infinity is a number\\n    isNaN 1         == False\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"logBase","fullName":"Basics.logBase","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#logBase","signature":"Float -> Float -> Float","comment":" Calculate the logarithm of a number with a given base.\\n\\n    logBase 10 100 == 2\\n    logBase 2 256 == 8\\n"},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"max","fullName":"Basics.max","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#max","signature":"comparable -> comparable -> comparable","comment":" Find the larger of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"min","fullName":"Basics.min","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#min","signature":"comparable -> comparable -> comparable","comment":" Find the smaller of two comparables. "},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"negate","fullName":"Basics.negate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#negate","signature":"number -> number","comment":" Negate a number.\\n\\n    negate 42 == -42\\n    negate -42 == 42\\n    negate 0 == 0\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"not","fullName":"Basics.not","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#not","signature":"Bool -> Bool","comment":" Negate a boolean value.\\n\\n    not True == False\\n    not False == True\\n"},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"pi","fullName":"Basics.pi","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#pi","signature":"Float","comment":" An approximation of pi. "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"radians","fullName":"Basics.radians","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#radians","signature":"Float -> Float","comment":" Convert radians to standard Elm angles (radians). "},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"rem","fullName":"Basics.rem","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#rem","signature":"Int -> Int -> Int","comment":" Find the remainder after dividing one number by another.\\n\\n     7 `rem` 2 == 1\\n    -1 `rem` 4 == -1\\n"},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"round","fullName":"Basics.round","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#round","signature":"Float -> Int","comment":" Round a number to the nearest integer. "},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"sin","fullName":"Basics.sin","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sin","signature":"Float -> Float","comment":""},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"snd","fullName":"Basics.snd","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#snd","signature":"( a, b ) -> b","comment":" Given a 2-tuple, returns the second value. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"sqrt","fullName":"Basics.sqrt","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#sqrt","signature":"Float -> Float","comment":" Take the square root of a number. "},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"tan","fullName":"Basics.tan","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#tan","signature":"Float -> Float","comment":""},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toFloat","fullName":"Basics.toFloat","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toFloat","signature":"Int -> Float","comment":" Convert an integer into a float. "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toPolar","fullName":"Basics.toPolar","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toPolar","signature":"( Float, Float ) -> ( Float, Float )","comment":" Convert Cartesian coordinates (x,y) to polar coordinates (r,&theta;). "},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"toString","fullName":"Basics.toString","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#toString","signature":"a -> String","comment":" Turn any kind of value into a string. When you view the resulting string\\nwith `Text.fromString` it should look just like the value it came from.\\n\\n    toString 42 == \\"42\\"\\n    toString [1,2] == \\"[1,2]\\"\\n    toString \\"he said, \\\\\\"hi\\\\\\"\\" == \\"\\\\\\"he said, \\\\\\\\\\\\\\"hi\\\\\\\\\\\\\\"\\\\\\"\\"\\n"},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"truncate","fullName":"Basics.truncate","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#truncate","signature":"Float -> Int","comment":" Truncate a number, rounding towards zero. "},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"turns","fullName":"Basics.turns","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#turns","signature":"Float -> Float","comment":" Convert turns to standard Elm angles (radians).\\nOne turn is equal to 360&deg;.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"uncurry","fullName":"Basics.uncurry","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#uncurry","signature":"(a -> b -> c) -> ( a, b ) -> c","comment":" Change how arguments are passed to a function.\\nThis combines two arguments into a single pair.\\n"},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"xor","fullName":"Basics.xor","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#xor","signature":"Bool -> Bool -> Bool","comment":" The exclusive-or operator. `True` if exactly one input is `True`. "},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"|>","fullName":"Basics.|>","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#|>","signature":"a -> (a -> b) -> b","comment":" Forward function application `x |> f == f x`. This function is useful\\nfor avoiding parenthesis and writing code in a more natural way.\\nConsider the following code to create a pentagon:\\n\\n    scale 2 (move (10,10) (filled blue (ngon 5 30)))\\n\\nThis can also be written as:\\n\\n    ngon 5 30\\n      |> filled blue\\n      |> move (10,10)\\n      |> scale 2\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"||","fullName":"Basics.||","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#||","signature":"Bool -> Bool -> Bool","comment":" The logical OR operator. `True` if one or both inputs are `True`.\\nThis operator short-circuits to `True` if the first argument is `True`.\\n"},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"LT","fullName":"Basics.LT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"EQ","fullName":"Basics.EQ","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"GT","fullName":"Basics.GT","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Order","signature":"","comment":""},{"name":"andThen","fullName":"Maybe.andThen","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#andThen","signature":"Maybe.Maybe a -> (a -> Maybe.Maybe b) -> Maybe.Maybe b","comment":" Chain together many computations that may fail. It is helpful to see its\\ndefinition:\\n\\n    andThen : Maybe a -> (a -> Maybe b) -> Maybe b\\n    andThen maybe callback =\\n        case maybe of\\n            Just value ->\\n                callback value\\n\\n            Nothing ->\\n                Nothing\\n\\nThis means we only continue with the callback if things are going well. For\\nexample, say you need to use (`head : List Int -> Maybe Int`) to get the\\nfirst month from a `List` and then make sure it is between 1 and 12:\\n\\n    toValidMonth : Int -> Maybe Int\\n    toValidMonth month =\\n        if month >= 1 && month <= 12 then\\n            Just month\\n        else\\n            Nothing\\n\\n    getFirstMonth : List Int -> Maybe Int\\n    getFirstMonth months =\\n        head months `andThen` toValidMonth\\n\\nIf `head` fails and results in `Nothing` (because the `List` was empty`),\\nthis entire chain of operations will short-circuit and result in `Nothing`.\\nIf `toValidMonth` results in `Nothing`, again the chain of computations\\nwill result in `Nothing`.\\n"},{"name":"map","fullName":"Maybe.map","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map","signature":"(a -> b) -> Maybe.Maybe a -> Maybe.Maybe b","comment":" Transform a `Maybe` value with a given function:\\n\\n    map sqrt (Just 9) == Just 3\\n    map sqrt Nothing == Nothing\\n"},{"name":"map2","fullName":"Maybe.map2","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map2","signature":"(a -> b -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe value","comment":" Apply a function if all the arguments are `Just` a value.\\n\\n    map2 (+) (Just 3) (Just 4) == Just 7\\n    map2 (+) (Just 3) Nothing == Nothing\\n    map2 (+) Nothing (Just 4) == Nothing\\n"},{"name":"map3","fullName":"Maybe.map3","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map3","signature":"(a -> b -> c -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe value","comment":""},{"name":"map4","fullName":"Maybe.map4","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map4","signature":"(a -> b -> c -> d -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe value","comment":""},{"name":"map5","fullName":"Maybe.map5","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#map5","signature":"(a -> b -> c -> d -> e -> value) -> Maybe.Maybe a -> Maybe.Maybe b -> Maybe.Maybe c -> Maybe.Maybe d -> Maybe.Maybe e -> Maybe.Maybe value","comment":""},{"name":"oneOf","fullName":"Maybe.oneOf","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#oneOf","signature":"List (Maybe.Maybe a) -> Maybe.Maybe a","comment":" Pick the first `Maybe` that actually has a value. Useful when you want to\\ntry a couple different things, but there is no default value.\\n\\n    oneOf [ Nothing, Just 42, Just 71 ] == Just 42\\n    oneOf [ Nothing, Nothing, Just 71 ] == Just 71\\n    oneOf [ Nothing, Nothing, Nothing ] == Nothing\\n"},{"name":"withDefault","fullName":"Maybe.withDefault","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#withDefault","signature":"a -> Maybe.Maybe a -> a","comment":" Provide a default value, turning an optional value into a normal\\nvalue.  This comes in handy when paired with functions like\\n[`Dict.get`](Dict#get) which gives back a `Maybe`.\\n\\n    withDefault 100 (Just 42)   -- 42\\n    withDefault 100 Nothing     -- 100\\n\\n    withDefault \\"unknown\\" (Dict.get \\"Tom\\" Dict.empty)   -- \\"unknown\\"\\n\\n"},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Just","fullName":"Maybe.Just","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""},{"name":"Nothing","fullName":"Maybe.Nothing","href":"http://package.elm-lang.org/packages/elm-lang/core/latest/Maybe#Maybe","signature":"","comment":""}]' 
errors: b''
Your PATH is:  /Users/rtfeldman/.gem/ruby/2.2.0/bin:/Users/rtfeldman/.rubies/ruby-2.2.0/lib/ruby/gems/2.2.0/bin:/Users/rtfeldman/.rubies/ruby-2.2.0/bin:/Users/rtfeldman/.local/bin:/Users/rtfeldman/.cabal/bin:/Applications/ghc-7.10.2.app/Contents/bin:/Users/rtfeldman/.rvm/gems/ruby-2.1.1/bin:/Users/rtfeldman/.rvm/gems/ruby-2.1.1@global/bin:/Users/rtfeldman/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/rtfeldman/.rvm/bin:/Users/rtfeldman/code/elm-local/.cabal-sandbox/bin:/Users/rtfeldman/code/elm-format/.cabal-sandbox/bin
deadfoxygrandpa commented 8 years ago

It won't display a type for language built in uppercase types like String or List. Try it on a function or a type constructor which isn't built into the compiler (like Just or Err, those are in the core libraries instead of built into the compiler)

deadfoxygrandpa commented 8 years ago

If you're still having problems with this, let me know, but I'm closing it for now. It looks like it's basically working now