[{"name":"OrderedDict","comment":" A dictionary type that when iterated or converted to a list, the order of\r\nentries will be the same as the order they were inserted.\r\n\r\nAs it uses `Dict` under the hood, the keys can only be comparable types, which\r\ninclude `Int`, `Float`, `Time`, `Char`, `String`, and tuples or lists of\r\ncomparable types.\r\n\r\n\r\n# Dictionaries\r\n\r\n@docs OrderedDict\r\n\r\n\r\n# Build\r\n\r\n@docs empty, singleton, insert, update, remove\r\n\r\n\r\n# Query\r\n\r\n@docs isEmpty, member, get, size\r\n\r\n\r\n# Lists\r\n\r\n@docs keys, values, toList, fromList\r\n\r\n\r\n# Transform\r\n\r\n@docs map, foldl, foldr, filter, partition\r\n\r\n\r\n# Combine\r\n\r\n@docs union, intersect, diff\r\n\r\n","unions":[{"name":"OrderedDict","comment":" A type of `Dict` that is iterated by the order of insertion.\r\n","args":["comparable","v"],"cases":[]}],"aliases":[],"values":[{"name":"diff","comment":" Keep a key-value pair when its key does not appear in the second dictionary.\r\n","type":"OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"empty","comment":" Create an empty dictionary.\r\n","type":"OrderedDict.OrderedDict comparable v"},{"name":"filter","comment":" Return a new `OrderedDict` that only contains entries that satisfy a predicate.\r\n","type":"(comparable -> v -> Basics.Bool) -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"foldl","comment":" Fold the key-value pairs in a dictionary, in insertion order.\r\n","type":"(comparable -> v -> b -> b) -> b -> OrderedDict.OrderedDict comparable v -> b"},{"name":"foldr","comment":" Fold the key-value pairs in a dictionary, in reverse insertion order.\r\n","type":"(comparable -> v -> b -> b) -> b -> OrderedDict.OrderedDict comparable v -> b"},{"name":"fromList","comment":" Convert an association list into a dictionary.\r\n","type":"List.List ( comparable, v ) -> OrderedDict.OrderedDict comparable v"},{"name":"get","comment":" Get the value associated with a key. Return `Nothing` if the key is not found.\r\n","type":"comparable -> OrderedDict.OrderedDict comparable v -> Maybe.Maybe v"},{"name":"insert","comment":" Insert a key-value pair into a dictionary. Replace the value if the key\r\nalready exists.\r\n","type":"comparable -> v -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"intersect","comment":" Keep a key-value pair when its key appears in the second dictionary.\r\nPreference is given to values in the first dictionary.\r\n","type":"OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"isEmpty","comment":" Check if a dictionary is empty.\r\n","type":"OrderedDict.OrderedDict comparable v -> Basics.Bool"},{"name":"keys","comment":" Get all of the keys in a dictionary, in insertion order.\r\n","type":"OrderedDict.OrderedDict comparable v -> List.List comparable"},{"name":"map","comment":" Apply a function to all values in a dictionary.\r\n","type":"(comparable -> a -> b) -> OrderedDict.OrderedDict comparable a -> OrderedDict.OrderedDict comparable b"},{"name":"member","comment":" Check if a key is in a dictionary.\r\n","type":"comparable -> OrderedDict.OrderedDict comparable v -> Basics.Bool"},{"name":"partition","comment":" Split a `OrderedDict` to a tuple of `OrderedDict`. The first contains all\r\nentries that satisfy the predicate, and the second contains the rest.\r\n","type":"(comparable -> v -> Basics.Bool) -> OrderedDict.OrderedDict comparable v -> ( OrderedDict.OrderedDict comparable v, OrderedDict.OrderedDict comparable v )"},{"name":"remove","comment":" Remove a key-value pair from a dictionary. If the key doesn't exist,\r\nno changes are made.\r\n","type":"comparable -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"singleton","comment":" Create a dictionary with one key-value pair.\r\n","type":"comparable -> v -> OrderedDict.OrderedDict comparable v"},{"name":"size","comment":" Get the number of key-value pairs in the dictionary.\r\n","type":"OrderedDict.OrderedDict comparable v -> Basics.Int"},{"name":"toList","comment":" Convert a dictionary into an association list of key-value pairs, in insertion order.\r\n","type":"OrderedDict.OrderedDict comparable v -> List.List ( comparable, v )"},{"name":"union","comment":" Combine two dictionaries. If there is a collision, preference is given\r\nto the first dictionary.\r\n\r\n    union (singleton \"x\" 1) (singleton \"x\" 2) == singleton \"x\" 1\r\n\r\n","type":"OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"update","comment":" Update the value of a specific key with an updater function.\r\n\r\nSince the key may not exist before or after the update, the updater function\r\ntakes a `Maybe v` and returns a `Maybe v`.\r\n\r\n","type":"comparable -> (Maybe.Maybe v -> Maybe.Maybe v) -> OrderedDict.OrderedDict comparable v -> OrderedDict.OrderedDict comparable v"},{"name":"values","comment":" Get all of the values in a dictionary, in insertion order.\r\n","type":"OrderedDict.OrderedDict comparable v -> List.List v"}],"binops":[]},{"name":"OrderedSet","comment":" A set of unique values that when iterated or converted to a list, the order of\r\nvalues will be the same as the order they were inserted.\r\n\r\nAs it uses `Dict` under the hood, the keys can only be comparable types, which\r\ninclude `Int`, `Float`, `Time`, `Char`, `String`, and tuples or lists of\r\ncomparable types.\r\n\r\n\r\n# Sets\r\n\r\n@docs OrderedSet\r\n\r\n\r\n# Build\r\n\r\n@docs empty, singleton, insert, remove\r\n\r\n\r\n# Query\r\n\r\n@docs isEmpty, member, size\r\n\r\n\r\n# Lists\r\n\r\n@docs toList, fromList\r\n\r\n\r\n# Transform\r\n\r\n@docs map, foldl, foldr, filter, partition\r\n\r\n\r\n# Combine\r\n\r\n@docs union, intersect, diff\r\n\r\n","unions":[{"name":"OrderedSet","comment":" A type of `Set` that is iterated by the order of insertion.\r\n","args":["comparable"],"cases":[]}],"aliases":[],"values":[{"name":"diff","comment":" Keep values of the first set that do not appear in the second set.\r\n","type":"OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"},{"name":"empty","comment":" Create an empty set.\r\n","type":"OrderedSet.OrderedSet comparable"},{"name":"filter","comment":" Return a new `OrderedSet` that only contains values that satisfy a predicate.\r\n","type":"(comparable -> Basics.Bool) -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"},{"name":"foldl","comment":" Fold the values in a set, in insertion order.\r\n","type":"(comparable -> b -> b) -> b -> OrderedSet.OrderedSet comparable -> b"},{"name":"foldr","comment":" Fold the values in a set, in reverse insertion order.\r\n","type":"(comparable -> b -> b) -> b -> OrderedSet.OrderedSet comparable -> b"},{"name":"fromList","comment":" Convert a list into a set, removing any duplicates.\r\n","type":"List.List comparable -> OrderedSet.OrderedSet comparable"},{"name":"insert","comment":" Insert a value into a set.\r\n","type":"comparable -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"},{"name":"intersect","comment":" Combine two sets. Keep values that appear in both sets.\r\n","type":"OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"},{"name":"isEmpty","comment":" Check if a set is empty.\r\n","type":"OrderedSet.OrderedSet comparable -> Basics.Bool"},{"name":"map","comment":" Apply a function to all values in a set.\r\n","type":"(comparable -> comparable2) -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable2"},{"name":"member","comment":" Check if a value is in a set.\r\n","type":"comparable -> OrderedSet.OrderedSet comparable -> Basics.Bool"},{"name":"partition","comment":" Split a `OrderedSet` to a tuple of `OrderedSet`. The first contains all\r\nvalues that satisfy the predicate, and the second contains the rest.\r\n","type":"(comparable -> Basics.Bool) -> OrderedSet.OrderedSet comparable -> ( OrderedSet.OrderedSet comparable, OrderedSet.OrderedSet comparable )"},{"name":"remove","comment":" Remove a value from a set. If the value doesn't exist,\r\nno changes are made.\r\n","type":"comparable -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"},{"name":"singleton","comment":" Create a set with one value.\r\n","type":"comparable -> OrderedSet.OrderedSet comparable"},{"name":"size","comment":" Get the number of values in the set.\r\n","type":"OrderedSet.OrderedSet comparable -> Basics.Int"},{"name":"toList","comment":" Convert a set into a list, sorted by insertion order.\r\n","type":"OrderedSet.OrderedSet comparable -> List.List comparable"},{"name":"union","comment":" Combine two sets. Keep all values while removing any duplicates.\r\n","type":"OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable -> OrderedSet.OrderedSet comparable"}],"binops":[]}]