[
    {
        "name": "List.Zipper",
        "comment": " A zipper for `List`.\n\n# The `Zipper` type\n@docs Zipper\n\n# Constructing a `Zipper`\n@docs singleton, fromList, withDefault\n\n# Accessors\n@docs before, current, after, toList\n\n# Mapping\n@docs map, mapBefore, mapCurrent, mapAfter\n\n# Moving around\n@docs first, previous, next, last, find\n\n",
        "unions": [
            {
                "name": "Zipper",
                "comment": " The `Zipper` type. ",
                "args": [
                    "a"
                ],
                "cases": [
                    [
                        "Zipper",
                        [
                            "List a",
                            "a",
                            "List a"
                        ]
                    ]
                ]
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "after",
                "comment": " Returns all elements after the element the `Zipper` is focussed on ",
                "type": "Zipper a -> List a"
            },
            {
                "name": "before",
                "comment": " Returns all elements before the element the `Zipper` is focussed on. ",
                "type": "Zipper a -> List a"
            },
            {
                "name": "current",
                "comment": " Returns the element the `Zipper` is currently focussed on. ",
                "type": "Zipper a -> a"
            },
            {
                "name": "find",
                "comment": " Returns a `Zipper` focussed on the first element for which the predicate returns `True` (starting from a given `Zipper`). ",
                "type": "(a -> Bool) -> Zipper a -> Maybe (Zipper a)"
            },
            {
                "name": "first",
                "comment": " Move the focus to the first element of the list. ",
                "type": "Zipper a -> Zipper a"
            },
            {
                "name": "fromList",
                "comment": " Construct a `Zipper` from a list. The `Zipper` will focus on the first element (if there is a first element). ",
                "type": "List a -> Maybe (Zipper a)"
            },
            {
                "name": "last",
                "comment": " Move the focus to the last element of the list. ",
                "type": "Zipper a -> Zipper a"
            },
            {
                "name": "map",
                "comment": " Apply a function to every element in the `Zipper`. ",
                "type": "(a -> b) -> Zipper a -> Zipper b"
            },
            {
                "name": "mapAfter",
                "comment": " Apply a function to all elements after the element the `Zipper` is focussed on. ",
                "type": "(List a -> List a) -> Zipper a -> Zipper a"
            },
            {
                "name": "mapBefore",
                "comment": " Apply a function to all elements before the element the `Zipper` is focussed on. ",
                "type": "(List a -> List a) -> Zipper a -> Zipper a"
            },
            {
                "name": "mapCurrent",
                "comment": " Apply a function to the element the `Zipper` is focussed on. ",
                "type": "(a -> a) -> Zipper a -> Zipper a"
            },
            {
                "name": "next",
                "comment": " Move the focus to the element after the element the `Zipper` is currently focussed on (if there is such an element). ",
                "type": "Zipper a -> Maybe (Zipper a)"
            },
            {
                "name": "previous",
                "comment": " Move the focus to the element before the element the `Zipper` is currently focussed on (if there is such an element). ",
                "type": "Zipper a -> Maybe (Zipper a)"
            },
            {
                "name": "singleton",
                "comment": " Construct a `Zipper` focussed on the first element of a singleton list. ",
                "type": "a -> Zipper a"
            },
            {
                "name": "toList",
                "comment": " Reconstruct the list. ",
                "type": "Zipper a -> List a"
            },
            {
                "name": "withDefault",
                "comment": " Provide an alternative when constructing a `Zipper` fails. ",
                "type": "a -> Maybe (Zipper a) -> Zipper a"
            }
        ],
        "binops": []
    }
]