[
    {
        "name": "Dict.Extra",
        "comment": " Convenience functions for working with `Dict`\n\n# List operations\n@docs groupBy\n\n# Manipulation\n@docs removeWhen, removeMany, keepOnly\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "groupBy",
                "comment": " Takes a key-fn and a list, creates a `Dict` which maps the key returned from key-fn, to a list of matching elements.\n\n    mary = {groupId: 1, name: \"Mary\"}\n    jack = {groupId: 2, name: \"Jack\"}\n    jill = {groupId: 1, name: \"Jill\"}\n    groupBy .groupId [mary, jack, jill] == Dict.fromList [(1, [jill, mary]), (2, [jack])]\n",
                "type": "(a -> comparable) -> List a -> Dict comparable (List a)"
            },
            {
                "name": "keepOnly",
                "comment": " Keep a key-value pair exactly if its key appears in the set.\n",
                "type": "Set comparable -> Dict comparable v -> Dict comparable v"
            },
            {
                "name": "removeMany",
                "comment": " Keep a key-value pair exactly if its key does not appear in the set.\n",
                "type": "Set comparable -> Dict comparable v -> Dict comparable v"
            },
            {
                "name": "removeWhen",
                "comment": " Keep elements which fail to satisfy the predicate.\n    This is functionally equivalent to `Dict.filter (not << predicate) dict`.\n\n    removeWhen (\\c v -> v == 1) Dict.fromList [(\"Mary\", 1), (\"Jack\", 2), (\"Jill\", 1)] == Dict.fromList [(\"Jack\", 2)]\n",
                "type": "(comparable -> v -> Bool) -> Dict comparable v -> Dict comparable v"
            }
        ],
        "binops": []
    }
]