[
    {
        "name": "Validate",
        "comment": "Convenience functions for validating data.\n\n# Validating a subject\n@docs Validator, ifBlank, ifNotInt, ifEmptyDict, ifEmptySet, ifInvalid\n\n\n# Combining validators\n@docs all, any, eager",
        "unions": [],
        "aliases": [
            {
                "name": "Validator",
                "comment": "A `Validator` is a function which takes a subject and returns a list of errors\ndescribing anything invalid about that subject.\n\nAn empty error list means the subject was valid.",
                "args": [
                    "error",
                    "subject"
                ],
                "type": "subject -> List error"
            }
        ],
        "values": [
            {
                "name": "all",
                "comment": "Run each of the given validators, in order, and return their concatenated\nerror lists.",
                "type": "List (Validator error subject) -> Validator error subject"
            },
            {
                "name": "any",
                "comment": "Return `True` if none of the given validators returns any errors for the given\nsubject, and `False` if any validator returns one or more errors.",
                "type": "List (Validator error subject) -> subject -> Bool"
            },
            {
                "name": "eager",
                "comment": "Run each of the given validators, in order, stopping after the first error\nand returning it. If no errors are encountered, return `Nothing`.",
                "type": "List (Validator error subject) -> subject -> Maybe error"
            },
            {
                "name": "ifBlank",
                "comment": "Return an error if the given `String` is empty, or if it contains only\nwhitespace characters.",
                "type": "error -> Validator error String"
            },
            {
                "name": "ifEmptyDict",
                "comment": "Return an error if the given `Dict` is empty.",
                "type": "error -> Validator error (Dict comparable v)"
            },
            {
                "name": "ifEmptySet",
                "comment": "Return an error if the given `Set` is empty.",
                "type": "error -> Validator error (Set comparable)"
            },
            {
                "name": "ifInvalid",
                "comment": "Return an error if the given predicate returns `True` for the given\nsubject.",
                "type": "(subject -> Bool) -> error -> Validator error subject"
            },
            {
                "name": "ifNotInt",
                "comment": "Return an error if the given `String` cannot be parsed as an `Int`.",
                "type": "error -> Validator error String"
            }
        ],
        "binops": []
    }
]