[{"name":"Fold","comment":" Simple, extensible `Fold`s.\n\n\n# Basics\n\n@docs Fold\n\n\n# Transformations\n\n@docs wrap, custom, merge\n\n\n# Primitive Folds\n\n@docs list, string\n\n\n# Composite Folds\n\n@docs arrayLeft, arrayRight, listLeft, listRight, maybe, result, resultError, stringLeft, stringRight, passed, failed\n\n","unions":[{"name":"Fold","comment":" Uses an input `a` to accumulate over `b`.\n","args":["a","b"],"cases":[]}],"aliases":[],"values":[{"name":"arrayLeft","comment":" Starting from the left, fold each element of the array onto 'b'.\n","type":"Fold.Fold a b -> Fold.Fold (Array.Array a) b"},{"name":"arrayRight","comment":" Starting from the right, fold each element of the array onto `b`.\n","type":"Fold.Fold a b -> Fold.Fold (Array.Array a) b"},{"name":"custom","comment":" Construct a `Fold` that uses `a` to accumulate over `b`.\n","type":"(b -> a -> b) -> Fold.Fold a b"},{"name":"failed","comment":" Apply a fold only if the filter fails.\n","type":"Filter.Filter a -> Fold.Fold a b -> Fold.Fold a b"},{"name":"list","comment":" Cons an element onto the list.\n","type":"Fold.Fold a (List.List a)"},{"name":"listLeft","comment":" Starting from the left, fold each element of the list onto `b`.\n","type":"Fold.Fold a b -> Fold.Fold (List.List a) b"},{"name":"listRight","comment":" Starting from the right, fold each element of the list onto 'b'.\n","type":"Fold.Fold a b -> Fold.Fold (List.List a) b"},{"name":"maybe","comment":" If the input is `Just`, fold over it.\n\nmerge (maybe list) [ 2, 3 ] (Just 1)\n-- [ 1, 2, 3, 4 ]\n\nmerge (maybe string) \"hello\" Nothing\n-- \"hello\"\n\n","type":"Fold.Fold a b -> Fold.Fold (Maybe.Maybe a) b"},{"name":"merge","comment":" Evaluate your fold for a given accumulator and input.\n","type":"Fold.Fold a b -> b -> a -> b"},{"name":"passed","comment":" Apply a fold only if the filter passes.\n","type":"Filter.Filter a -> Fold.Fold a b -> Fold.Fold a b"},{"name":"result","comment":" Fold `a` onto `b` if `Result e a` is `Ok`.\n","type":"Fold.Fold a b -> Fold.Fold (Result.Result e a) b"},{"name":"resultError","comment":" Fold 'e' onto 'b' if `Result e a` is `Err`.\n","type":"Fold.Fold e b -> Fold.Fold (Result.Result e b) b"},{"name":"string","comment":" Cons a character onto the string.\n","type":"Fold.Fold Char.Char String.String"},{"name":"stringLeft","comment":" Starting from the left, fold each character in the string onto `b`.\n","type":"Fold.Fold Char.Char b -> Fold.Fold String.String b"},{"name":"stringRight","comment":" Starting from the right, fold each character in the string onto `b`.\n","type":"Fold.Fold Char.Char b -> Fold.Fold String.String b"},{"name":"wrap","comment":" Apply a transformation to input of a `Fold`.\n","type":"(c -> a) -> Fold.Fold a b -> Fold.Fold c b"}],"binops":[]},{"name":"Reduce","comment":" Simple, extensible reducers.\n\n\n# Reducers\n\n@docs Reduce\n\n\n# Manipulations\n\n@docs custom, combine, flip, collect, wrap\n\n\n# Primitive Reducers\n\n@docs fAdd, fDiv, fMul, fPow, fSub, iAdd, iDiv, iMul, iPow, iSub, array, list, max, min, string, or, and, sorter\n\n\n# Composite Reducers\n\n@docs arrayLeft, arrayRight, stringLeft, listLeft, maybe, result, resultError\n\n","unions":[],"aliases":[{"name":"Reduce","comment":" Combines two of the same thing. Equivalent to a `Fold` where the accumulator and input share the same type.\n","args":["a"],"type":"Fold.Fold a a"}],"values":[{"name":"and","comment":" Pass the filter if both filters pass.\n","type":"Reduce.Reduce (Filter.Filter a)"},{"name":"array","comment":" Append the right array to the left array.\n","type":"Reduce.Reduce (Array.Array a)"},{"name":"arrayLeft","comment":" Reduce an array from the left.\n","type":"Reduce.Reduce a -> Array.Array a -> Maybe.Maybe a"},{"name":"arrayRight","comment":" Reduce an array from the right.\n","type":"Reduce.Reduce a -> Array.Array a -> Maybe.Maybe a"},{"name":"collect","comment":" Reduce over a collection. The initial state is split off of the collection.\nThe accumulator is the reducer's left input.\n","type":"Split.Splitter b a -> (Reduce.Reduce b -> Fold.Fold a b) -> Reduce.Reduce b -> a -> Maybe.Maybe b"},{"name":"combine","comment":" Combine two values with a reducer.\n","type":"Reduce.Reduce a -> a -> a -> a"},{"name":"custom","comment":" Construct a reducer from the given function, where the first and second arguments are the left and right inputs respectively.\n","type":"(a -> a -> a) -> Reduce.Reduce a"},{"name":"fAdd","comment":" Add the right float to the left float.\n","type":"Reduce.Reduce Basics.Float"},{"name":"fDiv","comment":" Divide the left float by the right float.\n","type":"Reduce.Reduce Basics.Float"},{"name":"fMul","comment":" Multiply the right float by the left float.\n","type":"Reduce.Reduce Basics.Int"},{"name":"fPow","comment":" Put the left float to the power of the right float.\n","type":"Reduce.Reduce Basics.Float"},{"name":"fSub","comment":" Subtract the right float from the left float.\n","type":"Reduce.Reduce Basics.Float"},{"name":"flip","comment":" Flip the left and right inputs to a reducer.\n","type":"Reduce.Reduce a -> Reduce.Reduce a"},{"name":"iAdd","comment":" Add the right int to the left int.\n","type":"Reduce.Reduce Basics.Int"},{"name":"iDiv","comment":" Divide the left integer by the right integer.\n","type":"Reduce.Reduce Basics.Int"},{"name":"iMul","comment":" Multiply the right integer by the left integer.\n","type":"Reduce.Reduce Basics.Int"},{"name":"iPow","comment":" Put the left integer to the power of the right integer.\n","type":"Reduce.Reduce Basics.Int"},{"name":"iSub","comment":" Subtract the right int from the left int.\n","type":"Reduce.Reduce Basics.Int"},{"name":"list","comment":" Append the right list to the left list.\n","type":"Reduce.Reduce (List.List a)"},{"name":"listLeft","comment":" Reduce a list from the left.\n","type":"Reduce.Reduce a -> List.List a -> Maybe.Maybe a"},{"name":"max","comment":" Keep the larger input, according to the given sorter.\n","type":"Sort.Sorter k -> Reduce.Reduce k"},{"name":"maybe","comment":" Keep all `Just` values, reducing if both are present.\n","type":"Reduce.Reduce a -> Reduce.Reduce (Maybe.Maybe a)"},{"name":"min","comment":" Keep the smaller input, according to the given sorter.\n","type":"Sort.Sorter k -> Reduce.Reduce k"},{"name":"or","comment":" Pass the filter if one filter passes.\n","type":"Reduce.Reduce (Filter.Filter a)"},{"name":"result","comment":" Keep all `Ok` values, reducing if both are present.\n","type":"Reduce.Reduce e -> Reduce.Reduce a -> Reduce.Reduce (Result.Result e a)"},{"name":"resultError","comment":" Keep all `Err` values, reducing if both are present.\n","type":"Reduce.Reduce e -> Reduce.Reduce a -> Reduce.Reduce (Result.Result e a)"},{"name":"sorter","comment":" Sort by both the left and right filter, deferring to the left.\n","type":"Reduce.Reduce (Sort.Sorter a)"},{"name":"string","comment":" Append the right string to the left string.\n","type":"Reduce.Reduce String.String"},{"name":"stringLeft","comment":" Reduce a string from the left.\n","type":"Reduce.Reduce Char.Char -> String.String -> Maybe.Maybe Char.Char"},{"name":"wrap","comment":" Apply an operation to the right input of a reducer.\n","type":"(a -> a) -> Reduce.Reduce a -> Reduce.Reduce a"}],"binops":[]},{"name":"Split","comment":" Extract elements from collections.\n\n\n# Splitters\n\n@docs Splitter\n\n\n# Manipulations\n\n@docs custom, take\n\n\n# Primitives\n\n@docs arrayEnd, arrayStart, listHead, stringHead\n\n","unions":[{"name":"Splitter","comment":" Tries to split an element `a` off of `b`.\n","args":["a","b"],"cases":[]}],"aliases":[],"values":[{"name":"arrayEnd","comment":" Split off the end of an array.\n","type":"Split.Splitter a (Array.Array a)"},{"name":"arrayStart","comment":" Split off the start of an array.\n","type":"Split.Splitter a (Array.Array a)"},{"name":"custom","comment":" Create a splitter that tries to take an element `a` off of `b`.\n","type":"(b -> Maybe.Maybe ( a, b )) -> Split.Splitter a b"},{"name":"listHead","comment":" Split off the head of a list.\n","type":"Split.Splitter a (List.List a)"},{"name":"stringHead","comment":" Split off the head of a string.\n","type":"Split.Splitter Char.Char String.String"},{"name":"take","comment":" Try to split an item off a collection, applying the given function on success.\n","type":"(a -> b -> c) -> Split.Splitter a b -> b -> Maybe.Maybe c"}],"binops":[]}]