[{"name":"Threads","comment":"\n\n\n# Core\n\n@docs element\n@docs document\n@docs application\n@docs Program\n@docs Document\n@docs Model\n@docs Msg\n\n\n# Procedure\n\n@docs Procedure\n@docs none\n@docs batch\n@docs modify\n@docs push\n@docs await\n@docs awaitGlobal\n@docs fork\n@docs syncAll\n@docs quit\n\n\n# Lower level functions\n\n@docs elementView\n@docs documentView\n@docs init\n@docs update\n@docs subscriptions\n@docs onUrlRequest\n@docs onUrlChange\n\n","unions":[{"name":"Model","comment":" ","args":["shared","global","local"],"cases":[]},{"name":"Msg","comment":" ","args":["global","local"],"cases":[]},{"name":"Procedure","comment":" Procedures to be processed in a thread.\n\n  - shared: Shared memory\n  - global: Global events\n  - local: Local events that only affect on the forked thread itself\n\n","args":["shared","global","local"],"cases":[]}],"aliases":[{"name":"Document","comment":" Reexport [Browser.Document](https://package.elm-lang.org/packages/elm/browser/latest/Browser#Document) for convenience.\n","args":["global"],"type":"Browser.Document global"},{"name":"Program","comment":" An alias for [Platform.Program](https://package.elm-lang.org/packages/elm/core/latest/Platform#Program).\n","args":["flags","shared","global","local"],"type":"Platform.Program flags (Threads.Model shared global local) (Threads.Msg global local)"}],"values":[{"name":"application","comment":" Threads version of [Browser.application](https://package.elm-lang.org/packages/elm/browser/latest/Browser#application)\n","type":"{ init : shared, procedure : flags -> Url.Url -> Browser.Navigation.Key -> Threads.Procedure shared global local, view : shared -> Threads.Document global, subscriptions : shared -> Platform.Sub.Sub global, onUrlRequest : Browser.UrlRequest -> global, onUrlChange : Url.Url -> global } -> Threads.Program flags shared global local"},{"name":"await","comment":" Construct a `Procedure` instance that awaits the local events for the thread.\n\nIf it returns `Nothing`, it awaits again.\nOtherwise, it evaluates the given `Procedure`.\n\n","type":"(local -> shared -> Maybe.Maybe (Threads.Procedure shared global local)) -> Threads.Procedure shared global local"},{"name":"awaitGlobal","comment":" Construct a `Procedure` instance that awaits global events.\n\nIf it returns `Nothing`, it awaits again.\nOtherwise, it evaluates the given `Procedure`.\n\n","type":"(global -> shared -> Maybe.Maybe (Threads.Procedure shared global local)) -> Threads.Procedure shared global local"},{"name":"batch","comment":" Batch `Procedure`s together. The elements are evaluated in order.\n","type":"List.List (Threads.Procedure shared global local) -> Threads.Procedure shared global local"},{"name":"document","comment":" Threads version of [Browser.document](https://package.elm-lang.org/packages/elm/browser/latest/Browser#document)\n","type":"{ init : shared, procedure : flags -> Threads.Procedure shared global local, view : shared -> Threads.Document global, subscriptions : shared -> Platform.Sub.Sub global } -> Threads.Program flags shared global local"},{"name":"documentView","comment":" ","type":"(shared -> Threads.Document global) -> Threads.Model shared global local -> Threads.Document (Threads.Msg global local)"},{"name":"element","comment":" Threads version of [Browser.element](https://package.elm-lang.org/packages/elm/browser/latest/Browser#element)\n","type":"{ init : shared, procedure : flags -> Threads.Procedure shared global local, view : shared -> Html.Html global, subscriptions : shared -> Platform.Sub.Sub global } -> Threads.Program flags shared global local"},{"name":"elementView","comment":" ","type":"(shared -> Html.Html global) -> Threads.Model shared global local -> Html.Html (Threads.Msg global local)"},{"name":"fork","comment":" Construct a `Procedure` instance that evaluates the given `Procedure` in a forked thread.\n\nThe forked thread runs independently of the original thread.\ni.e., The subsequent `Procedure`s in the original thread are evaluated immediately.\n\n","type":"(() -> Threads.Procedure shared global local) -> Threads.Procedure shared global local"},{"name":"init","comment":" ","type":"shared -> Threads.Procedure shared global local -> ( Threads.Model shared global local, Platform.Cmd.Cmd (Threads.Msg global local) )"},{"name":"modify","comment":" Construct a `Procedure` instance that modifies shared memory state.\n","type":"(shared -> shared) -> Threads.Procedure shared global local"},{"name":"none","comment":" Construct a `Procedure` instance that do nothing.\n","type":"Threads.Procedure shared global local"},{"name":"onUrlChange","comment":" ","type":"(Url.Url -> global) -> Url.Url -> Threads.Msg global local"},{"name":"onUrlRequest","comment":" ","type":"(Browser.UrlRequest -> global) -> Browser.UrlRequest -> Threads.Msg global local"},{"name":"push","comment":" Construct a `Procedure` instance that pushes a local `Cmd`.\n","type":"(shared -> Platform.Cmd.Cmd local) -> Threads.Procedure shared global local"},{"name":"quit","comment":" Quit the thread immediately.\n\nSubsequent `Procedures` are not evaluated and are discarded.\n\n","type":"Threads.Procedure shared global local"},{"name":"subscriptions","comment":" ","type":"(shared -> Platform.Sub.Sub global) -> Threads.Model shared global local -> Platform.Sub.Sub (Threads.Msg global local)"},{"name":"syncAll","comment":" Construct a `Procedure` instance that wait for all given `Procedure`s to be completed.\n\nGiven `Procedure`s are evaluated in the independent thread, but the subsequent `Procedure`s in the original thread are **not** evaluated immediately.\n\n","type":"List.List (Threads.Procedure shared global local) -> Threads.Procedure shared global local"},{"name":"update","comment":" ","type":"Threads.Msg global local -> Threads.Model shared global local -> ( Threads.Model shared global local, Platform.Cmd.Cmd (Threads.Msg global local) )"}],"binops":[]}]