[
    {
        "name": "Json.Decode.Extra",
        "comment": "Convenience functions for working with Json\n\n# Date\n@docs date\n\n# Incremental Decoding\n@docs apply",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "apply",
                "comment": "Can be helpful when decoding large objects incrementally.\n\n    import Date (Date)\n\n    type alias User =\n      { id                : Int\n      , createdAt         : Date\n      , updatedAt         : Date\n      , deletedAt         : Maybe Date\n      , username          : Maybe String\n      , email             : Maybe String\n      , fullname          : Maybe String\n      , avatar            : Maybe String\n      , isModerator       : Bool\n      , isOrganization    : Bool\n      , isAdmin           : Bool\n      }\n\n    metaDecoder : (Int -> Date -> Date -> Maybe Date -> b) -> Decoder b\n    metaDecoder f = f\n      `map`      (\"id\"        := int)\n      `apply` (\"createdAt\" := date)\n      `apply` (\"updatedAt\" := date)\n      `apply` (\"deletedAt\" := maybe date)\n\n    userDecoder : Decoder User\n    userDecoder = metaDecoder User\n      `apply` (\"username\"          := maybe string)\n      `apply` (\"email\"             := maybe string)\n      `apply` (\"fullname\"          := maybe string)\n      `apply` (\"avatar\"            := maybe string)\n      `apply` (\"isModerator\"       := bool)\n      `apply` (\"isOrganization\"    := bool)\n      `apply` (\"isAdmin\"           := bool)\n\nThis is a shortened form of\n\n    metaDecoder : (Int -> Date -> Date -> Maybe Date -> b) -> Decoder b\n    metaDecoder f = f\n      `map`      (\"id\"        := int)\n      `andThen` \\f -> f `map` (\"createdAt\" := date)\n      `andThen` \\f -> f `map` (\"updatedAt\" := date)\n      `andThen` \\f -> f `map` (\"deletedAt\" := maybe date)\n\n    userDecoder : Decoder User\n    userDecoder = metaDecoder User\n      `andThen` \\f -> f `map` (\"username\"          := maybe string)\n      `andThen` \\f -> f `map` (\"email\"             := maybe string)\n      `andThen` \\f -> f `map` (\"fullname\"          := maybe string)\n      `andThen` \\f -> f `map` (\"avatar\"            := maybe string)\n      `andThen` \\f -> f `map` (\"isModerator\"       := bool)\n      `andThen` \\f -> f `map` (\"isOrganization\"    := bool)\n      `andThen` \\f -> f `map` (\"isAdmin\"           := bool)",
                "type": "Decoder (a -> b) -> Decoder a -> Decoder b"
            },
            {
                "name": "date",
                "comment": "Extract a date.\n\nNote that this function is not total, it will throw an exception given an incorrectly formatted date.\nSee 'Date.fromString' and 'Json.customDecoder'.",
                "type": "Decoder Date"
            }
        ],
        "binops": []
    }
]