[{"name":"Iddict","comment":" The id-dict is a data type that lets us store values in a dictionary using\nunique identifiers. This can be used as a dictionary where the keys do not\nmatter.\n\nThe benefit of the id-dict is that it generates the keys FOR you. This way, you\ndo not need to generate identifiers yourself.\n\n\n## Id-dict\n\n@docs Iddict\n\n\n## Build\n\n@docs empty, singleton, insert, update, remove\n\n\n## Query\n\n@docs isEmpty, member, get, size\n\n\n## Lists\n\n@docs keys, values, toList, fromList\n\n\n## Transform\n\n@docs map, foldl, foldr, filter, partition\n\n\n## Combine\n\n@docs union, intersect, diff, merge\n\n\n## JSON coders\n\n@docs encode, decoder\n\n","unions":[{"name":"Iddict","comment":" The Iddict data type.\n","args":["a"],"cases":[]}],"aliases":[],"values":[{"name":"decoder","comment":" Decode an id-dict from a JSON value.\n","type":"Json.Decode.Decoder a -> Json.Decode.Decoder (Iddict.Iddict a)"},{"name":"diff","comment":" Keep a key-value pair when its key does not appear in the second id-dict.\n","type":"Iddict.Iddict a -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"empty","comment":" Create an empty id-dict.\n","type":"Iddict.Iddict a"},{"name":"encode","comment":" Encode an id-dict to a JSON value.\n","type":"(a -> Json.Encode.Value) -> Iddict.Iddict a -> Json.Encode.Value"},{"name":"filter","comment":" Keep only the key-value pairs that pass the given test.\n","type":"(Basics.Int -> a -> Basics.Bool) -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"foldl","comment":" Fold over the key-value pairs in an id-dict from lowest key to highest key.\n","type":"(Basics.Int -> a -> b -> b) -> b -> Iddict.Iddict a -> b"},{"name":"foldr","comment":" Fold over the key-value pairs in an id-dict from highest key to lowest key.\n","type":"(Basics.Int -> a -> b -> b) -> b -> Iddict.Iddict a -> b"},{"name":"fromList","comment":" Convert an association list into an id-dict.\n","type":"List.List ( Basics.Int, a ) -> Iddict.Iddict a"},{"name":"get","comment":" Get a value from the id-dict using its key.\n","type":"Basics.Int -> Iddict.Iddict a -> Maybe.Maybe a"},{"name":"insert","comment":" Insert a new value into the id-dict. Given that the id-dict generates its\nkey, the function returns both the updated id-dict as the newly generated key.\n\n    x = empty |> insert \"hello\" -- ( 0, <Iddict with value \"hello\"> )\n\n    case x of\n        ( _, id-dict ) ->\n            get 0 id-dict -- Just \"hello\"\n\n","type":"a -> Iddict.Iddict a -> ( Basics.Int, Iddict.Iddict a )"},{"name":"intersect","comment":" Keep a key-value pair when its key appears in the second id-dict.\nPreference is given to values in the first id-dict.\n","type":"Iddict.Iddict a -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"isEmpty","comment":" Determine if an id-dict is empty.\n","type":"Iddict.Iddict a -> Basics.Bool"},{"name":"keys","comment":" Get all of the keys from the id-dict, sorted from lowest to highest.\n","type":"Iddict.Iddict a -> List.List Basics.Int"},{"name":"map","comment":" Apply a function to all values in an id-dict.\n","type":"(Basics.Int -> a -> b) -> Iddict.Iddict a -> Iddict.Iddict b"},{"name":"member","comment":" Determine if a key is in an id-dict.\n","type":"Basics.Int -> Iddict.Iddict a -> Basics.Bool"},{"name":"merge","comment":" The most general way of combining two id-dicts. You provide three\naccumulators for when a given key appears:\n\n    1. Only in the left id-dict.\n    2. In both id-dicts.\n    3. Only in the right id-dict.\n\nYou then traverse all the keys from lowest to highest, building up whatever you\nwant.\n\n","type":"(Basics.Int -> a -> result -> result) -> (Basics.Int -> a -> b -> result -> result) -> (Basics.Int -> b -> result -> result) -> Iddict.Iddict a -> Iddict.Iddict b -> result -> result"},{"name":"partition","comment":" Partition an id-dict according to some test. The first id-dict contains all\nkey-value pairs which passed the test, and the second contains the pairs that\ndid not.\n","type":"(Basics.Int -> a -> Basics.Bool) -> Iddict.Iddict a -> ( Iddict.Iddict a, Iddict.Iddict a )"},{"name":"remove","comment":" Remove a key-value pair from the id-dict. If the key is not found, no\nchanges are made.\n","type":"Basics.Int -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"singleton","comment":" Create an id-dict with a single value.\n","type":"a -> ( Basics.Int, Iddict.Iddict a )"},{"name":"size","comment":" Determine the number of key-value pairs in the id-dict.\n","type":"Iddict.Iddict a -> Basics.Int"},{"name":"toList","comment":" Convert an id-dict into an association list of key-value pairs, sorted by keys.\n","type":"Iddict.Iddict a -> List.List ( Basics.Int, a )"},{"name":"union","comment":" Combine two id-dicts. If there is a collision, preference is given to the\nfirst id-dict.\n","type":"Iddict.Iddict a -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"update","comment":" Update the value of an id-dict for a specific key with a given function.\nThis is also the only option that allows you to insert values at a specific key,\nso be careful with this feature!\n","type":"Basics.Int -> (Maybe.Maybe a -> Maybe.Maybe a) -> Iddict.Iddict a -> Iddict.Iddict a"},{"name":"values","comment":" Get all of the values from an id-dict, in the order of their keys.\n","type":"Iddict.Iddict a -> List.List a"}],"binops":[]}]