[
    {
        "name": "Task.Extra",
        "comment": " Contains a list of convenient functions that cover common use cases\nfor tasks.\n\n# Chaining Tasks\n@docs optional, parallel\n\n# Delay a task\n@docs delay\n\n# Looping forever\n@docs loop\n\n# Commands\n@docs performFailproof\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "delay",
                "comment": " Delay a task by a given amount of time in milliseconds.\n",
                "type": "Time -> Task error value -> Task error value"
            },
            {
                "name": "loop",
                "comment": " Runs a task repeatedly every given milliseconds.\n\n    loop 1000 myTask -- Runs `myTask` every second\n",
                "type": "Time -> Task error value -> Task error ()"
            },
            {
                "name": "optional",
                "comment": " Similar to `Task.sequence`.\nThe difference with `Task.sequence` is that it doesn't return an `error` if\nany individual task fails. If an error is encountered, then this function will\nmarch on and perform the next task ignoring the error.\n",
                "type": "List (Task x value) -> Task y (List value)"
            },
            {
                "name": "parallel",
                "comment": " Analogous to `Task.sequence`.\nSchedule a list of tasks to be performed in parallel as opposed to in series\nas is the case with `Task.sequence`.\n\n*Note that there is no guarantee that the tasks will be performed or complete\nin the order you have stated. This is why you may use the returned `Process.Id`\nfor re-ordering or consider integrating a sorting mechanism within your program.*\n",
                "type": "List (Task error value) -> Task error (List Id)"
            },
            {
                "name": "performFailproof",
                "comment": " Command the runtime system to perform a task that is guaranteed to\nnot fail. The most important argument is the\n[`Task`](http://package.elm-lang.org/packages/elm-lang/core/latest/Task#Task)\nwhich describes what you want to happen. But you also need to provide\na function to tag the success outcome, so as to have a message to feed\nback into your application. Unlike with the standard\n[`perform`](http://package.elm-lang.org/packages/elm-lang/core/latest/Task#perform),\nyou need not provide a function to tag a failing outcome, because the\n[`Never`](http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#Never)\nin the type `Task Never a` expresses that no possibly failing task is\nallowed in that place anyway.\n\nA typical use of the function is `Date.now |> performFailproof CurrentDate`.\n",
                "type": "(a -> msg) -> Task Never a -> Cmd msg"
            }
        ],
        "binops": []
    }
]