[{"name":"Control","comment":"\n\n\n# Creating a form\n\n@docs Control, Form, sandbox, form\n\n\n# Basic controls\n\n@docs bool, int, float, string, char, enum\n\n\n# Basic combinators\n\n@docs wrapper, tuple, triple, maybe, result, list, dict, set, array\n\n\n# Creating a new control\n\n@docs ControlConfig, create\n\n\n# Validating controls\n\n\n## Simple validation\n\n@docs failIf\n\n\n## Multi-field validation\n\nYou may want display errors on one or more controls based on the validation of\nanother control higher up the tree.\n\nTake the example of a password creation form. You want to validate that the\n\"Enter password\" and \"Confirm password\" fields both contain the same string, and\nshow helpful error messages on both fields if they don't. You can achieve this\nas follows:\n\n    passwordControl =\n        record\n            (\\password confirmation ->\n                { password = password\n                , confirmation = confirmation\n                }\n            )\n            |> field \"Enter password\"\n                (string\n                    |> catchFlag\n                        \"flag-passwords-do-not-match\"\n                        \"Must match 'Confirm password' field\"\n                )\n            |> field \"Confirm password\"\n                (string\n                    |> catchFlag\n                        \"flag-passwords-do-not-match\"\n                        \"Must match 'Enter password' field\"\n                )\n            |> end\n            |> throwFlagIf\n                (\\{ password, confirmation } -> password /= confirmation)\n                \"flag-passwords-do-not-match\"\n\n@docs throwFlagIf, catchFlag\n\n\n## List validation\n\n@docs throwFlagsAt\n\n\n# Configuring controls\n\n@docs initWith, debounce, id, name, label, class, classList\n\n\n# Building record combinators\n\n@docs record, field, hiddenField, readOnlyField, end, layout\n\n\n# Building custom type combinators\n\n@docs customType, tag0, tag1, tag2, tag3, tag4, tag5\n\n\n# Form internals\n\nThese are types that you will see in your form's `State` and `Delta` type signatures.\n\n@docs State, Delta, ListDelta, End\n\n\n# Internal stuff that you can ignore\n\nA user of this package shouldn't need to know about any of these types -\nthey are only exposed to make it possible to write type signatures.\n\n@docs Access, AdvancedControl, Builder, ControlFns, Flag, RecordFns, Status, ViewConfigStatic, ViewConfigDynamic, Path\n\n","unions":[{"name":"Access","comment":" An internal type used to represent whether a record field is editable, read-only, or hidden\n","args":[],"cases":[]},{"name":"AdvancedControl","comment":" A slightly more flexible version of `Control`\n","args":["input","state","delta","output"],"cases":[]},{"name":"Builder","comment":" An internal type used to differentiate between builders for record and custom type combinators\n","args":["r","c"],"cases":[]},{"name":"Delta","comment":" A `Delta` is the form's equivalent of an Elm program's `Msg` type. It is\nused internally within a form to update its state.\n","args":["delta"],"cases":[]},{"name":"End","comment":" Under the hood, this library encodes complex Elm types (such as records and\ncustom types) as nested tuples, which are used in both the `State` and `Delta`\ntypes for each `Control`. The `End` type is used to mark the end of a nested\ntuple.\n\nFor example, the `State` for this Elm type:\n\n    type alias User =\n        { name : String, age : Int }\n\nCould be encoded as:\n\n    ( String, ( Int, End ) )\n\n","args":[],"cases":[]},{"name":"Flag","comment":" Some internal stuff needed to handle validations\n","args":[],"cases":[]},{"name":"ListDelta","comment":" Special `Delta` type used only by `list` controls\n","args":["delta"],"cases":[]},{"name":"State","comment":" `State` is the form's equivalent of an Elm program's `Model` type. It is\nused to manage the form's internal state.\n","args":["state"],"cases":[]},{"name":"Status","comment":" an internal type needed to represent the validation state of a control\n","args":[],"cases":[]}],"aliases":[{"name":"Control","comment":" A `Control` is the basic unit from which forms are composed. This library\nprovides various example controls and combinators that you can use to build a\nform for any arbitrarily complex Elm type.\n","args":["state","delta","output"],"type":"Control.AdvancedControl output state delta output"},{"name":"ControlConfig","comment":" Configuration for a custom control. You need to supply the following fields:\n\n  - `initEmpty`: a default initial \"empty\" value for the `state` of the control. For a control whose `state` is of type `String`, this might be `\"\"`, for a number it might be `0`.\n  - `initWith`: a function that initialises the control's `state` from a value of the control's `output` type. For a control that outputs an `Int`, but whose `state` is a `String`, this might be `String.fromInt`.\n  - `update`: a function that updates the `state` of the control based on its existing `state` and a `delta` type that it receives. This is exactly analogous to an Elm program's update function, where `state` = `Model` and `delta` = `Msg`.\n  - `view`: a function that outputs `Html delta` based on the `state` of the control. This is similar to an Elm program's view function, except instead of just taking the `state` as an argument, it takes a record containing the `state` plus the id, name, class, and label for the input.\n  - `subscriptions`: a function that outputs `Sub delta` based on the `state` of the control. This is exactly analogous to an Elm program's subscriptions function.\n  - `parse`: a function that attempts to parse the control's state into its output type, producing a result. If parsing fails, it can provide a list of errors.\n\n","args":["state","delta","output"],"type":"{ initEmpty : ( state, Platform.Cmd.Cmd delta ), initWith : output -> ( state, Platform.Cmd.Cmd delta ), update : delta -> state -> ( state, Platform.Cmd.Cmd delta ), view : { label : String.String, id : String.String, name : String.String, class : String.String, state : state } -> Html.Html delta, subscriptions : state -> Platform.Sub.Sub delta, parse : state -> Result.Result (List.List String.String) output }"},{"name":"ControlFns","comment":" Some internal stuff needed to build up record and custom type controls\n","args":["input","state","delta","output"],"type":"{ index : Basics.Int, init : ( Control.State state, Platform.Cmd.Cmd (Control.Delta delta) ), initWith : input -> ( Control.State state, Platform.Cmd.Cmd (Control.Delta delta) ), baseUpdate : Basics.Float -> Control.Delta delta -> Control.State state -> ( Control.State state, Platform.Cmd.Cmd (Control.Delta delta) ), update : Control.Delta delta -> Control.State state -> ( Control.State state, Platform.Cmd.Cmd (Control.Delta delta) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic state -> Html.Html (Control.Delta delta), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic state -> List.List (Html.Html (Control.Delta delta)), parse : Control.State state -> Result.Result (List.List ( String.String, String.String )) output, path : Control.Path, emitFlags : Control.State state -> List.List Control.Flag, collectDebouncingReceivers : Control.State state -> List.List Control.Flag, collectErrors : Control.State state -> List.List Control.Flag -> List.List ( String.String, String.String ), receiverCount : Basics.Int, setAllIdle : Control.State state -> Control.State state, label : Maybe.Maybe String.String, id : Maybe.Maybe String.String, name : Maybe.Maybe String.String, class : List.List String.String, subscriptions : Control.State state -> Platform.Sub.Sub (Control.Delta delta) }"},{"name":"Form","comment":" A `Form` is an interface containing functions that you can use in your\nprogram to initialise, view, update, subscribe, and submit your form.\n","args":["state","delta","output","msg"],"type":"{ init : ( Control.State state, Platform.Cmd.Cmd msg ), initWith : output -> ( Control.State state, Platform.Cmd.Cmd msg ), update : Control.Delta delta -> Control.State state -> ( Control.State state, Platform.Cmd.Cmd msg ), view : Control.State state -> Html.Html msg, subscriptions : Control.State state -> Platform.Sub.Sub msg, submit : Control.State state -> ( Control.State state, Result.Result (List.List ( String.String, String.String )) output ) }"},{"name":"Path","comment":" an internal type needed to track the position of a control within a tree of\ncontrols\n","args":[],"type":"Path.Path"},{"name":"RecordFns","comment":" Some internal stuff needed to build up a record control\n","args":["input","state","delta","output","recordOutput"],"type":"{ access : Control.Access, field : Control.ControlFns input state delta output, fromInput : recordOutput -> output }"},{"name":"ViewConfigDynamic","comment":" Some internal stuff needed to view controls\n","args":["state"],"type":"{ state : state, status : Control.Status, flags : List.List Control.Flag, selected : Basics.Int }"},{"name":"ViewConfigStatic","comment":" Some internal stuff needed to view controls\n","args":[],"type":"{ name : Maybe.Maybe String.String, id : Maybe.Maybe String.String, label : Maybe.Maybe String.String, class : List.List String.String }"}],"values":[{"name":"array","comment":" A combinator that produces an `Array` from a control of a given type.\n\n    myArrayControl =\n        array int\n\n","type":"Control.Control state delta output -> Control.Control ( Control.State (List.List (Control.State state)), Control.End ) ( Control.Delta (Control.ListDelta delta), Control.End ) (Array.Array output)"},{"name":"bool","comment":" A control that produces a `Bool`. Renders as an HTML checkbox.\n","type":"Control.Control Basics.Bool Basics.Bool Basics.Bool"},{"name":"catchFlag","comment":" Catch a \"flag\" thrown by another `Control` and display an error on this\ncontrol.\n\nThis is meant to be used in combination with `throwFlagIf`, which throws the \"flag\".\n\n","type":"String.String -> String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"char","comment":" A control that produces a `Char`. Renders as an HTML text input.\n","type":"Control.Control String.String String.String Char.Char"},{"name":"class","comment":" Add an HTML class attribute for a `Control`. See docs for Html.Attributes.class in elm-html.\n\n    myStringControlHasAClass =\n        string\n            |> class \"important\"\n            |> class \"no-really\"\n\n","type":"String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"classList","comment":" Add a list of HTML class attributes to a `Control`. See docs for Html.Attributes.classList in the `elm/html`\npackage.\n\n    myStringControlHasClasses =\n        string\n            |> classList\n                [ ( \"important\", True )\n                , ( \"no-really\", True )\n                , ( \"ignore-me\", False )\n                ]\n\n","type":"List.List ( String.String, Basics.Bool ) -> Control.Control state delta output -> Control.Control state delta output"},{"name":"create","comment":" Create a simple control, with any arbitrary `state` and `delta` types, and\nproducing any arbitrary `output` type.\n\nHere's how we could create a control like the famous\n[counter example](https://elm-lang.org/examples/buttons) from the Elm Guide\n\n    type CounterDelta\n        = Increment\n        | Decrement\n\n    counterControl : Control Int CounterDelta Int\n    counterControl =\n        create\n            { initEmpty = 0\n            , initWith = identity\n            , update =\n                \\delta state ->\n                    case delta of\n                        Increment ->\n                            state + 1\n\n                        Decrement ->\n                            state - 1\n            , view =\n                \\{ state, name, id, label, class } ->\n                    Html.div [ Html.Attributes.class class ]\n                        [ Html.label\n                            [ Html.Attributes.for id ]\n                            [ Html.text label ]\n                        , Html.div\n                            [ Html.Attributes.id id\n                            , Html.Attributes.name name\n                            ]\n                            [ Html.button\n                                [ Html.Attributes.type_ \"button\"\n                                , Html.Events.onClick Increment\n                                ]\n                                [ Html.text \"+\" ]\n                            , Html.div [] [ Html.text <| String.fromInt state ]\n                            , Html.button\n                                [ Html.Attributes.type_ \"button\"\n                                , Html.Events.onClick Decrement\n                                ]\n                                [ Html.text \"-\" ]\n                            ]\n                        ]\n            , subscriptions = \\state -> Sub.none\n            , parse = Ok\n            }\n\n","type":"Control.ControlConfig state delta output -> Control.Control state delta output"},{"name":"customType","comment":" A combinator that produces a custom type.\n\n    type MyCustomType\n        = NoArgs\n        | OneArg String\n        | TwoArgs Int Float\n\n    myCustomTypeControl =\n        customType\n            (\\noArgs oneArg twoArgs tag ->\n                case tag of\n                    NoArgs ->\n                        noArgs\n\n                    OneArg arg1 ->\n                        oneArg arg1\n\n                    TwoArgs arg1 arg2 ->\n                        TwoArgs arg1 arg2\n            )\n            |> tag0 \"NoArgs\" NoArgs\n            |> tag1 \"OneArg\" OneArg string\n            |> tag2 \"TwoArgs\" TwoArgs ( \"Int\", int ) ( \"Float\", float )\n            |> end\n\n","type":"b -> Control.Builder r { applyInputs : a17 -> a17, debouncingReceiverCollector : a16 -> a16, deltaAfter : Control.End, deltaAfters : Control.End, deltaBefore : a15 -> a15, deltaBefores : a14 -> a14, destructor : b, errorCollector : a13 -> a13, flagEmitter : a12 -> a12, fns : c -> d -> d, idleSetter : a11 -> a11, index : number, initialDeltas : e -> f -> f, initialStates : g -> h -> h, initialiseDeltas : a10 -> a10, labels : List.List i, makeDeltaSetters : a9 -> a9, makeStateSetters : a8 -> a8, parser : a7 -> a7, stateAfter : Control.End, stateAfters : Control.End, stateBefore : a6 -> a6, stateBefores : a5 -> a5, stateInserter : a4 -> a4, subscriptionCollector : a3 -> a3, toArgStates : a2 -> a2, updater : a1 -> a1, viewer : a -> a }"},{"name":"debounce","comment":" Debounce a `Control` for a number of milliseconds before it will display\nany parsing or validation errors. This can be used to allow the user to finish\ntyping into a text input before we show them feedback.\n\n    sluggishStringControl =\n        string\n            |> debounce 2000\n\n","type":"Basics.Float -> Control.Control state delta output -> Control.Control state delta output"},{"name":"dict","comment":" A combinator that produces a `Dict` from controls of given key and value\ntypes. The key type must be `comparable`.\n\n    myDictControl =\n        dict ( \"Key\", int ) ( \"Value\", string )\n\n","type":"( String.String, Control.Control keyState keyDelta comparable ) -> ( String.String, Control.Control valueState valueDelta value ) -> Control.Control ( Control.State (List.List (Control.State ( Control.State keyState, ( Control.State valueState, Control.End ) ))), Control.End ) ( Control.Delta (Control.ListDelta ( Control.Delta keyDelta, ( Control.Delta valueDelta, Control.End ) )), Control.End ) (Dict.Dict comparable value)"},{"name":"end","comment":" Finalise the construction of a `record` or `customType` combinator.\n\n    type alias Hello =\n        { hello : String }\n\n    helloControl =\n        record Hello\n            |> field \"Hello\" string\n            |> end\n\n","type":"Control.Builder { l | afters : afters1, befores : Control.End -> befores1, debouncingReceiverCollector : (List.List Control.Flag -> Control.End -> Control.End -> List.List Control.Flag) -> List.List Control.Flag -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> List.List Control.Flag, deltaInitialiser : (d -> Control.End -> Control.End -> d) -> List.List e -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> i -> List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), errorCollector : (List.List Control.Flag -> List.List ( String.String, String.String ) -> Control.End -> Control.End -> List.List ( String.String, String.String )) -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> List.List ( String.String, String.String ), flagEmitter : (List.List Control.Flag -> Control.End -> Control.End -> List.List Control.Flag) -> List.List Control.Flag -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> List.List Control.Flag, fns : Control.Path -> Control.End -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ), idleSetter : (Control.End -> Control.End -> Control.End) -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> ( Control.State state, restStates ), initialDeltas : Control.Path -> Control.End -> i, initialStates : Control.Path -> Control.End -> ( Control.State state, restStates ), initialiser : (input -> Control.End -> Control.End) -> input -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ), makeSetters : (Control.End -> Control.End -> Control.End) -> befores1 -> afters1 -> ( Control.Delta delta -> recordDelta, restDeltaSetters ), parser : (Result.Result (List.List ( String.String, String.String )) output -> Control.End -> Control.End -> Result.Result (List.List ( String.String, String.String )) output) -> Result.Result (List.List ( String.String, String.String )) output1_1 -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> Result.Result (List.List ( String.String, String.String )) output, subscriptionCollector : (j -> Control.End -> Control.End -> Control.End -> j) -> List.List k -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.State state, restStates ) -> List.List (Platform.Sub.Sub ( Control.Delta delta, restDeltas )), toOutput : output1_1, updater : ({ newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) } -> Control.End -> Control.End -> Control.End -> Control.End -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) }) -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : ( Control.State state, restStates ) -> ( Control.State state, restStates ) } -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state, restStates ) -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) }, viewer : (List.List (Html.Html (Control.Delta ( Control.Delta delta, restDeltas ))) -> List.List Control.Flag -> Control.End -> Control.End -> Control.End -> List.List (Html.Html (Control.Delta ( Control.Delta delta, restDeltas )))) -> List.List (Html.Html (Control.Delta ( Control.Delta delta, restDeltas ))) -> List.List Control.Flag -> ( Control.RecordFns input2 state delta output2 recordOutput, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.State state, restStates ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta, restDeltas ))) } { r | applyInputs : (state1 -> Control.End -> state1) -> (stateSetter -> state0) -> ( stateSetter, restStateSetters ) -> input -> Control.State ( Control.State state, restStates ), debouncingReceiverCollector : (List.List Control.Flag -> Control.End -> Control.End -> List.List Control.Flag) -> List.List Control.Flag -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> List.List Control.Flag, deltaAfters : afters, deltaBefores : Control.End -> befores, destructor : stateSetter -> state0, errorCollector : (List.List Control.Flag -> List.List ( String.String, String.String ) -> Control.End -> Control.End -> List.List ( String.String, String.String )) -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> List.List ( String.String, String.String ), flagEmitter : (List.List Control.Flag -> Basics.Int -> Control.End -> Control.End -> List.List Control.Flag) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> List.List Control.Flag, fns : Control.Path -> Control.End -> ( Control.ControlFns input1 state delta output1, restFns ), idleSetter : (Basics.Int -> Control.End -> Control.End -> Control.End) -> Basics.Int -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> ( Control.State state, restStates ), initialDeltas : Control.Path -> Control.End -> m, initialStates : Control.Path -> Control.End -> ( Control.State state, restStates ), initialiseDeltas : (n -> Control.End -> Control.End -> n) -> List.List o -> ( Control.Delta delta -> ( Control.Delta delta, restDeltas ), restSetters ) -> m -> List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), labels : List.List String.String, makeDeltaSetters : (Control.End -> Control.End -> Control.End) -> befores -> afters -> ( Control.Delta delta -> ( Control.Delta delta, restDeltas ), restSetters ), makeStateSetters : (a1 -> b1 -> Control.End -> Control.End -> Control.End -> Control.End -> Control.End) -> c -> ( Control.State state, restStates ) -> ( Control.ControlFns input1 state delta output1, restFns ) -> f -> g -> h -> ( stateSetter, restStateSetters ), parser : (a -> b -> Control.End -> Control.End -> a) -> Result.Result (List.List ( String.String, String.String )) value -> Basics.Int -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> Result.Result (List.List ( String.String, String.String )) output, stateAfters : h, stateBefores : Control.End -> g, stateInserter : c, subscriptionCollector : (p -> Control.End -> Control.End -> Control.End -> p) -> List.List q -> ( Control.Delta delta -> ( Control.Delta delta, restDeltas ), restSetters ) -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.State state, restStates ) -> List.List (Platform.Sub.Sub ( Control.Delta delta, restDeltas )), toArgStates : Control.End -> f, updater : ({ newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) } -> Control.End -> Control.End -> Control.End -> Control.End -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) }) -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : ( Control.State state, restStates ) -> ( Control.State state, restStates ) } -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.Delta delta -> ( Control.Delta delta, restDeltas ), restSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state, restStates ) -> { newCmds : List.List (Platform.Cmd.Cmd ( Control.Delta delta, restDeltas )), newStates : Control.End -> ( Control.State state, restStates ) }, viewer : (Maybe.Maybe (Html.Html ( Control.Delta delta, restDeltas )) -> List.List Control.Flag -> Basics.Int -> Control.End -> Control.End -> Control.End -> Maybe.Maybe (Html.Html ( Control.Delta delta, restDeltas ))) -> Maybe.Maybe (Html.Html ( Control.Delta delta, restDeltas )) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input1 state delta output1, restFns ) -> ( Control.Delta delta -> ( Control.Delta delta, restDeltas ), restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html ( Control.Delta delta, restDeltas )) } -> Control.AdvancedControl input ( Control.State state, restStates ) ( Control.Delta delta, restDeltas ) output"},{"name":"enum","comment":" A control that produces a custom type where none of the\nvariants have any payload. Renders as an HTML radio input.\n\n    type Colour\n        = Red\n        | Green\n        | Blue\n\n    colourControl : Control Colour Colour Colour\n    colourControl =\n        enum\n            ( \"Red\", Red )\n            ( \"Green\", Green )\n            [ ( \"Blue\", Blue ) ]\n\n","type":"( String.String, enum ) -> ( String.String, enum ) -> List.List ( String.String, enum ) -> Control.Control enum enum enum"},{"name":"failIf","comment":" Display an error on a `Control` if its output fails to meet the predicate.\n\n    positiveInt =\n        int\n            |> failIf\n                (\\x -> x < 1)\n                \"Must be greater than zero!\"\n\n","type":"(output -> Basics.Bool) -> String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"field","comment":" Add a field to a `record` combinator.\n\n    type alias Hello =\n        { hello : String }\n\n    helloControl =\n        record Hello\n            |> field \"Hello\" string\n            |> end\n\n","type":"String.String -> b -> Control.AdvancedControl input7 state8 delta10 output8 -> Control.Builder { n | after : d, afters : e, before : ( Control.Delta delta11, a17 ) -> c5, befores : ( ( Control.Delta delta11, a17 ) -> c5, a16 ) -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> restFns7 -> restStates7 -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> f -> g -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates6 -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> restFns5 -> restStates5 -> List.List Control.Flag, fns : Control.Path -> ( { access : Control.Access, field : Control.ControlFns input7 state8 delta10 output8, fromInput : b }, a10 ) -> c3, idleSetter : a9 -> restFns4 -> restStates4 -> restStates4, index : number, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta delta10), a8 ) -> c2, initialStates : Control.Path -> ( Control.State state8, a7 ) -> c1, initialiser : a6 -> recordInput -> restFns3 -> restStates3, labels : List.List String.String, makeSetters : a5 -> befores -> afters -> next, parser : a4 -> Result.Result (List.List ( String.String, String.String )) output1_1 -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> i -> j -> k -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters1 -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> restFns -> restDeltaSetters -> restStates -> List.List (Html.Html (Control.Delta recordDelta)) } c -> Control.Builder { after : ( Control.Delta delta9, d ), afters : ( d, e ), before : a17 -> c5, befores : a16 -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> ( Control.RecordFns input6 state7 delta8 output7 recordOutput6, restFns7 ) -> ( Control.State state7, restStates7 ) -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> ( a13 -> msg1, f ) -> ( Platform.Cmd.Cmd a13, g ) -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.RecordFns input5 state6 delta7 output6 recordOutput5, restFns6 ) -> ( Control.State state6, restStates6 ) -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> ( Control.RecordFns input4 state5 delta6 output5 recordOutput4, restFns5 ) -> ( Control.State state5, restStates5 ) -> List.List Control.Flag, fns : Control.Path -> a10 -> c3, idleSetter : a9 -> ( Control.RecordFns input3 state4 delta5 output4 recordOutput3, restFns4 ) -> ( Control.State state4, restStates4 ) -> ( Control.State state4, restStates4 ), index : number, initialDeltas : Control.Path -> a8 -> c2, initialStates : Control.Path -> a7 -> c1, initialiser : a6 -> recordInput -> ( Control.RecordFns output3 state3 delta4 output3 recordInput, restFns3 ) -> ( Control.State state3, restStates3 ), labels : List.List String.String, makeSetters : a5 -> ( ( value, after ) -> delta3, befores ) -> ( after, afters ) -> ( value -> delta3, next ), parser : a4 -> Result.Result (List.List ( String.String, String.String )) (output0 -> output1_1) -> ( Control.RecordFns input2 state2 delta2 output0 recordOutput2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> ( a2 -> msg, i ) -> ( { q | field : { p | subscriptions : o -> Platform.Sub.Sub a2 } }, j ) -> ( o, k ) -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.RecordFns input1 state1 delta1 output1 recordOutput1, restFns1 ) -> ( Control.Delta delta1 -> recordDelta1, restDeltaSetters1 ) -> ( Control.Delta delta1, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> ( Control.RecordFns input state delta output recordOutput, restFns ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.State state, restStates ) -> List.List (Html.Html (Control.Delta recordDelta)) } c"},{"name":"float","comment":" A control that produces a `Float`. Renders as an HTML number input.\n","type":"Control.Control String.String String.String Basics.Float"},{"name":"form","comment":" Convert a `Control` into a `Form`, which you can then plumb into your Elm application. You will need to supply a\ncouple of variants from your app's `Msg` type: one to handle updates of the form's state, and one to handle the\nsubmission of the form.\n\n    type alias Msg\n        = FormUpdated (Delta String)\n        | FormSubmitted\n\n    myForm : Form (State String) (Delta String) Int Msg\n    myForm =\n        form\n            { control = int\n            , title = \"Just a simple Int control\"\n            , onUpdate = FormUpdated\n            , onSubmit = FormSubmitted\n            }\n\n","type":"{ control : Control.Control state delta output, title : String.String, onUpdate : Control.Delta delta -> msg, onSubmit : msg } -> Control.Form state delta output msg"},{"name":"hiddenField","comment":" Add a hidden field to a `record` combinator.\n\n    type alias Hello =\n        { hello : String }\n\n    helloControl =\n        record Hello\n            |> hiddenField \"Hello\" string\n            |> end\n\n","type":"String.String -> b -> Control.AdvancedControl input7 state8 delta10 output8 -> Control.Builder { n | after : d, afters : e, before : ( Control.Delta delta11, a17 ) -> c5, befores : ( ( Control.Delta delta11, a17 ) -> c5, a16 ) -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> restFns7 -> restStates7 -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> f -> g -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates6 -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> restFns5 -> restStates5 -> List.List Control.Flag, fns : Control.Path -> ( { access : Control.Access, field : Control.ControlFns input7 state8 delta10 output8, fromInput : b }, a10 ) -> c3, idleSetter : a9 -> restFns4 -> restStates4 -> restStates4, index : number, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta delta10), a8 ) -> c2, initialStates : Control.Path -> ( Control.State state8, a7 ) -> c1, initialiser : a6 -> recordInput -> restFns3 -> restStates3, labels : List.List String.String, makeSetters : a5 -> befores -> afters -> next, parser : a4 -> Result.Result (List.List ( String.String, String.String )) output1_1 -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> i -> j -> k -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters1 -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> restFns -> restDeltaSetters -> restStates -> List.List (Html.Html (Control.Delta recordDelta)) } c -> Control.Builder { after : ( Control.Delta delta9, d ), afters : ( d, e ), before : a17 -> c5, befores : a16 -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> ( Control.RecordFns input6 state7 delta8 output7 recordOutput6, restFns7 ) -> ( Control.State state7, restStates7 ) -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> ( a13 -> msg1, f ) -> ( Platform.Cmd.Cmd a13, g ) -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.RecordFns input5 state6 delta7 output6 recordOutput5, restFns6 ) -> ( Control.State state6, restStates6 ) -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> ( Control.RecordFns input4 state5 delta6 output5 recordOutput4, restFns5 ) -> ( Control.State state5, restStates5 ) -> List.List Control.Flag, fns : Control.Path -> a10 -> c3, idleSetter : a9 -> ( Control.RecordFns input3 state4 delta5 output4 recordOutput3, restFns4 ) -> ( Control.State state4, restStates4 ) -> ( Control.State state4, restStates4 ), index : number, initialDeltas : Control.Path -> a8 -> c2, initialStates : Control.Path -> a7 -> c1, initialiser : a6 -> recordInput -> ( Control.RecordFns output3 state3 delta4 output3 recordInput, restFns3 ) -> ( Control.State state3, restStates3 ), labels : List.List String.String, makeSetters : a5 -> ( ( value, after ) -> delta3, befores ) -> ( after, afters ) -> ( value -> delta3, next ), parser : a4 -> Result.Result (List.List ( String.String, String.String )) (output0 -> output1_1) -> ( Control.RecordFns input2 state2 delta2 output0 recordOutput2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> ( a2 -> msg, i ) -> ( { q | field : { p | subscriptions : o -> Platform.Sub.Sub a2 } }, j ) -> ( o, k ) -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.RecordFns input1 state1 delta1 output1 recordOutput1, restFns1 ) -> ( Control.Delta delta1 -> recordDelta1, restDeltaSetters1 ) -> ( Control.Delta delta1, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> ( Control.RecordFns input state delta output recordOutput, restFns ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.State state, restStates ) -> List.List (Html.Html (Control.Delta recordDelta)) } c"},{"name":"id","comment":" Set an id for a `Control`.\n\n    myStringControlHasAnId =\n        string\n            |> id \"my-string\"\n\n","type":"String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"initWith","comment":" Initialise a `Control` using a value of the type that the `Control` outputs.\n\n    oneAndHello =\n        tuple ( \"Int\", int ) ( \"String\", string )\n            |> initWith ( 1, \"hello\" )\n\n","type":"input -> Control.AdvancedControl input state delta output -> Control.AdvancedControl input state delta output"},{"name":"int","comment":" A control that produces an `Int`. Renders as an HTML number input.\n","type":"Control.Control String.String String.String Basics.Int"},{"name":"label","comment":" Set a label for a `Control`.\n\n    myStringControlHasALabel =\n        string\n            |> label \"Enter your name\"\n\n","type":"String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"layout","comment":" Change the layout of the fields of a `record` control.\n\n    type alias MyRecord =\n        { name : String\n        , age : Int\n        }\n\n    myRecordControl =\n        record\n            (\\name age ->\n                { name = name\n                , age = age\n                }\n            )\n            |> field \"Name\" string\n            |> field \"Age\" int\n            |> end\n            |> layout (\\fieldViews staticConfig dynamicConfig -> Html.div [] fieldViews)\n\n","type":"(List.List (Html.Html (Control.Delta delta)) -> Control.ViewConfigStatic -> Control.ViewConfigDynamic state -> Html.Html (Control.Delta delta)) -> Control.Control state delta output -> Control.Control state delta output"},{"name":"list","comment":" A combinator that produces a `List` of controls of a given type.\n\n    myListControl =\n        list int\n\n","type":"Control.Control state delta output -> Control.Control (List.List (Control.State state)) (Control.ListDelta delta) (List.List output)"},{"name":"maybe","comment":" A combinator that produces a `Maybe` of a control of a given type.\n\n    myMaybeControl =\n        maybe int\n\n","type":"Control.Control state delta output -> Control.Control ( Control.State (), ( Control.State ( Control.State state, Control.End ), Control.End ) ) ( Control.Delta (), ( Control.Delta ( Control.Delta delta, Control.End ), Control.End ) ) (Maybe.Maybe output)"},{"name":"name","comment":" Set a name for a `Control`.\n\n    myStringControlHasAName =\n        string\n            |> name \"My string\"\n\n","type":"String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"readOnlyField","comment":" Add a read-only field to a `record` combinator.\n\n    type alias Hello =\n        { hello : String }\n\n    helloControl =\n        record Hello\n            |> readOnlyfield \"Hello\" string\n            |> end\n\n","type":"String.String -> b -> Control.AdvancedControl input7 state8 delta10 output8 -> Control.Builder { n | after : d, afters : e, before : ( Control.Delta delta11, a17 ) -> c5, befores : ( ( Control.Delta delta11, a17 ) -> c5, a16 ) -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> restFns7 -> restStates7 -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> f -> g -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates6 -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> restFns5 -> restStates5 -> List.List Control.Flag, fns : Control.Path -> ( { access : Control.Access, field : Control.ControlFns input7 state8 delta10 output8, fromInput : b }, a10 ) -> c3, idleSetter : a9 -> restFns4 -> restStates4 -> restStates4, index : number, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta delta10), a8 ) -> c2, initialStates : Control.Path -> ( Control.State state8, a7 ) -> c1, initialiser : a6 -> recordInput -> restFns3 -> restStates3, labels : List.List String.String, makeSetters : a5 -> befores -> afters -> next, parser : a4 -> Result.Result (List.List ( String.String, String.String )) output1_1 -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> i -> j -> k -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters1 -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> restFns -> restDeltaSetters -> restStates -> List.List (Html.Html (Control.Delta recordDelta)) } c -> Control.Builder { after : ( Control.Delta delta9, d ), afters : ( d, e ), before : a17 -> c5, befores : a16 -> c4, debouncingReceiverCollector : a15 -> List.List Control.Flag -> ( Control.RecordFns input6 state7 delta8 output7 recordOutput6, restFns7 ) -> ( Control.State state7, restStates7 ) -> List.List Control.Flag, deltaInitialiser : a14 -> List.List (Platform.Cmd.Cmd msg1) -> ( a13 -> msg1, f ) -> ( Platform.Cmd.Cmd a13, g ) -> h, errorCollector : a12 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.RecordFns input5 state6 delta7 output6 recordOutput5, restFns6 ) -> ( Control.State state6, restStates6 ) -> List.List ( String.String, String.String ), flagEmitter : a11 -> List.List Control.Flag -> ( Control.RecordFns input4 state5 delta6 output5 recordOutput4, restFns5 ) -> ( Control.State state5, restStates5 ) -> List.List Control.Flag, fns : Control.Path -> a10 -> c3, idleSetter : a9 -> ( Control.RecordFns input3 state4 delta5 output4 recordOutput3, restFns4 ) -> ( Control.State state4, restStates4 ) -> ( Control.State state4, restStates4 ), index : number, initialDeltas : Control.Path -> a8 -> c2, initialStates : Control.Path -> a7 -> c1, initialiser : a6 -> recordInput -> ( Control.RecordFns output3 state3 delta4 output3 recordInput, restFns3 ) -> ( Control.State state3, restStates3 ), labels : List.List String.String, makeSetters : a5 -> ( ( value, after ) -> delta3, befores ) -> ( after, afters ) -> ( value -> delta3, next ), parser : a4 -> Result.Result (List.List ( String.String, String.String )) (output0 -> output1_1) -> ( Control.RecordFns input2 state2 delta2 output0 recordOutput2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, subscriptionCollector : a3 -> List.List (Platform.Sub.Sub msg) -> ( a2 -> msg, i ) -> ( { q | field : { p | subscriptions : o -> Platform.Sub.Sub a2 } }, j ) -> ( o, k ) -> l, toOutput : m, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.RecordFns input1 state1 delta1 output1 recordOutput1, restFns1 ) -> ( Control.Delta delta1 -> recordDelta1, restDeltaSetters1 ) -> ( Control.Delta delta1, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta1), newStates : recordState1 }, viewer : a -> List.List (Html.Html (Control.Delta recordDelta)) -> List.List Control.Flag -> ( Control.RecordFns input state delta output recordOutput, restFns ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.State state, restStates ) -> List.List (Html.Html (Control.Delta recordDelta)) } c"},{"name":"record","comment":" A combinator that produces a record type, or any 'product' type that needs to\nbe constructed from multiple controls. (For example, the `tuple` combinator in\nthis library is built using the `record` combinator).\n\n    type alias MyRecord =\n        { name : String\n        , age : Int\n        }\n\n    myRecordControl =\n        record\n            (\\name age ->\n                { name = name\n                , age = age\n                }\n            )\n            |> field \"Name\" string\n            |> field \"Age\" int\n            |> end\n\n","type":"b -> Control.Builder { after : Control.End, afters : Control.End, before : a12 -> a12, befores : a11 -> a11, debouncingReceiverCollector : a10 -> a10, deltaInitialiser : a9 -> a9, errorCollector : a8 -> a8, flagEmitter : a7 -> a7, fns : d -> e -> e, idleSetter : a6 -> a6, index : number, initialDeltas : f -> g -> g, initialStates : h -> i -> i, initialiser : a5 -> a5, labels : List.List j, makeSetters : a4 -> a4, parser : a3 -> a3, subscriptionCollector : a2 -> a2, toOutput : b, updater : a1 -> a1, viewer : a -> a } c"},{"name":"result","comment":" A combinator that produces a `Result` with a given error and\nsuccess type.\n\n    myResultControl =\n        result string int\n\n","type":"Control.Control failureState failureDelta failureOutput -> Control.Control successState successDelta successOutput -> Control.Control ( Control.State ( Control.State failureState, Control.End ), ( Control.State ( Control.State successState, Control.End ), Control.End ) ) ( Control.Delta ( Control.Delta failureDelta, Control.End ), ( Control.Delta ( Control.Delta successDelta, Control.End ), Control.End ) ) (Result.Result failureOutput successOutput)"},{"name":"sandbox","comment":" Test and debug a `Control` by turning it into a `Program` that you can run as a standalone Elm application.\n\nThis is useful when you're rapidly iterating on designing a form, and you don't yet want the hassle of plumbing it into\nyour main Elm application's `Model`and `Msg` types.\n\nOnce you're happy with the form, you can then ask the Elm repl (or your editor's Elm plugin) to tell you the type\nsignature of the `Program`, which will give you the form's `State` and `Delta` types. You can then plug these into your\nmain `Model`and `Msg` types wherever appropriate.\n\n    main : Program () (State String) (Delta String)\n    main =\n        sandbox\n            { control = int\n            , title = \"Just a simple Int control\"\n            , outputToString = Debug.toString\n            }\n\n","type":"{ outputToString : output -> String.String, title : String.String, control : Control.Control state delta output } -> Platform.Program () (Control.State state) (Control.Delta delta)"},{"name":"set","comment":" A combinator that produces a `Set` from controls of a given member\ntypes. The member type must be `comparable`.\n\n    mySetControl =\n        set string\n\n","type":"Control.Control state delta comparable -> Control.Control ( Control.State (List.List (Control.State state)), Control.End ) ( Control.Delta (Control.ListDelta delta), Control.End ) (Set.Set comparable)"},{"name":"string","comment":" A control that produces a `String`. Renders as an HTML text input.\n","type":"Control.Control String.String String.String String.String"},{"name":"tag0","comment":" Add a tag with no arguments to a custom type.\n\n    type Unit\n        = Unit\n\n    unitControl =\n        customType\n            (\\unit tag ->\n                case tag of\n                    Unit ->\n                        unit\n            )\n            |> tag0 \"Unit\"\n            |> end\n\n","type":"String.String -> output8 -> Control.Builder r { p | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : b, deltaAfters : d, deltaBefore : ( Control.Delta delta10, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta10, a21 ) -> c8, a20 ) -> c7, destructor : e, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta () -> Control.State () -> ( Control.State (), Platform.Cmd.Cmd (Control.Delta ()) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic () -> List.List (Html.Html (Control.Delta ())), class : List.List String.String, collectDebouncingReceivers : Control.State () -> List.List Control.Flag, collectErrors : Control.State () -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State () -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State (), Platform.Cmd.Cmd (Control.Delta ()) ), initWith : output8 -> ( Control.State (), Platform.Cmd.Cmd (Control.Delta ()) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State () -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State () -> Control.State (), subscriptions : Control.State () -> Platform.Sub.Sub (Control.Delta ()), update : Control.Delta () -> Control.State () -> ( Control.State (), Platform.Cmd.Cmd (Control.Delta ()) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic () -> Html.Html (Control.Delta ()) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ()), a15 ) -> c5, initialStates : Control.Path -> ( Control.State (), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> f -> g -> h, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : i, stateAfters : j, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> k -> l -> m -> n, toArgStates : ( (output8 -> o) -> o, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, b ), deltaAfters : ( b, d ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : e, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, f ) -> ( Platform.Cmd.Cmd a12, g ) -> h, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, i ), stateAfters : ( i, j ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, k ) -> ( { s | subscriptions : q -> Platform.Sub.Sub a3 }, l ) -> ( q, m ) -> n, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"tag1","comment":" Add a tag with one argument to a custom type.\n\n    type alias MyResult =\n        Result String Int\n\n    myResultControl =\n        customType\n            (\\ok err tag ->\n                case tag of\n                    Ok value ->\n                        ok value\n\n                    Err error ->\n                        err error\n            )\n            |> tag1 \"Ok\" Ok int\n            |> tag1 \"Err\" Err string\n            |> end\n\n","type":"String.String -> (output9 -> output8) -> Control.AdvancedControl output9 state8 delta10 output9 -> Control.Builder r { s | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : d, deltaAfters : e, deltaBefore : ( Control.Delta delta11, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta11, a21 ) -> c8, a20 ) -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta ( Control.Delta delta10, Control.End ) -> Control.State ( Control.State state8, Control.End ) -> ( Control.State ( Control.State state8, Control.End ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta10, Control.End )) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state8, Control.End ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta10, Control.End ))), class : List.List String.String, collectDebouncingReceivers : Control.State ( Control.State state8, Control.End ) -> List.List Control.Flag, collectErrors : Control.State ( Control.State state8, Control.End ) -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State ( Control.State state8, Control.End ) -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State ( Control.State state8, Control.End ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta10, Control.End )) ), initWith : ( output9, b ) -> ( Control.State ( Control.State state8, Control.End ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta10, Control.End )) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State ( Control.State state8, Control.End ) -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State ( Control.State state8, Control.End ) -> Control.State ( Control.State state8, Control.End ), subscriptions : Control.State ( Control.State state8, Control.End ) -> Platform.Sub.Sub (Control.Delta ( Control.Delta delta10, Control.End )), update : Control.Delta ( Control.Delta delta10, Control.End ) -> Control.State ( Control.State state8, Control.End ) -> ( Control.State ( Control.State state8, Control.End ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta10, Control.End )) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state8, Control.End ) -> Html.Html (Control.Delta ( Control.Delta delta10, Control.End )) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta10, Control.End )), a15 ) -> c5, initialStates : Control.Path -> ( Control.State ( Control.State state8, Control.End ), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> g -> h -> i, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : j, stateAfters : k, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> l -> m -> n -> o, toArgStates : ( (( p, Control.End ) -> q) -> p -> q, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, d ), deltaAfters : ( d, e ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, g ) -> ( Platform.Cmd.Cmd a12, h ) -> i, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, j ), stateAfters : ( j, k ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, l ) -> ( { u | subscriptions : t -> Platform.Sub.Sub a3 }, m ) -> ( t, n ) -> o, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"tag2","comment":" Add a tag with two arguments to a custom type.\n\n    type Point\n        = Point Float Float\n\n    pointControl =\n        customType\n            (\\point tag ->\n                case tag of\n                    Point x y ->\n                        point x y\n            )\n            |> tag2 Point ( \"X\", float ) ( \"Y\", float )\n\n","type":"String.String -> (output10 -> output9 -> output8) -> ( String.String, Control.AdvancedControl output10 state9 delta11 output10 ) -> ( String.String, Control.AdvancedControl output9 state8 delta10 output9 ) -> Control.Builder r { t | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : d, deltaAfters : e, deltaBefore : ( Control.Delta delta12, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta12, a21 ) -> c8, a20 ) -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) -> Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> ( Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state9, ( Control.State state8, Control.End ) ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ))), class : List.List String.String, collectDebouncingReceivers : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> List.List Control.Flag, collectErrors : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )) ), initWith : ( output10, ( output9, b ) ) -> ( Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), subscriptions : Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> Platform.Sub.Sub (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )), update : Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) -> Control.State ( Control.State state9, ( Control.State state8, Control.End ) ) -> ( Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state9, ( Control.State state8, Control.End ) ) -> Html.Html (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) )), a15 ) -> c5, initialStates : Control.Path -> ( Control.State ( Control.State state9, ( Control.State state8, Control.End ) ), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> g -> h -> i, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : j, stateAfters : k, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> l -> m -> n -> o, toArgStates : ( (( p, ( q, Control.End ) ) -> s) -> p -> q -> s, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, d ), deltaAfters : ( d, e ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, g ) -> ( Platform.Cmd.Cmd a12, h ) -> i, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, j ), stateAfters : ( j, k ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, l ) -> ( { v | subscriptions : u -> Platform.Sub.Sub a3 }, m ) -> ( u, n ) -> o, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"tag3","comment":" Add a tag with three arguments to a custom type.\n\n    type Point3D\n        = Point3D Float Float Float\n\n    point3DControl =\n        customType\n            (\\point3D tag ->\n                case tag of\n                    Point3D x y z ->\n                        point3D x y z\n            )\n            |> tag3 Point3D ( \"X\", float ) ( \"Y\", float ) ( \"Z\", float )\n\n","type":"String.String -> (output11 -> output10 -> output9 -> output8) -> ( String.String, Control.AdvancedControl output11 state10 delta12 output11 ) -> ( String.String, Control.AdvancedControl output10 state9 delta11 output10 ) -> ( String.String, Control.AdvancedControl output9 state8 delta10 output9 ) -> Control.Builder r { u | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : d, deltaAfters : e, deltaBefore : ( Control.Delta delta13, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta13, a21 ) -> c8, a20 ) -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) -> Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> ( Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ))), class : List.List String.String, collectDebouncingReceivers : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> List.List Control.Flag, collectErrors : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )) ), initWith : ( output11, ( output10, ( output9, b ) ) ) -> ( Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), subscriptions : Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> Platform.Sub.Sub (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )), update : Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) -> Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> ( Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) -> Html.Html (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) )), a15 ) -> c5, initialStates : Control.Path -> ( Control.State ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> g -> h -> i, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : j, stateAfters : k, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> l -> m -> n -> o, toArgStates : ( (( p, ( q, ( s, Control.End ) ) ) -> t) -> p -> q -> s -> t, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, d ), deltaAfters : ( d, e ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, g ) -> ( Platform.Cmd.Cmd a12, h ) -> i, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, j ), stateAfters : ( j, k ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, l ) -> ( { w | subscriptions : v -> Platform.Sub.Sub a3 }, m ) -> ( v, n ) -> o, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"tag4","comment":" Add a tag with four arguments to a custom type.\n","type":"String.String -> (output12 -> output11 -> output10 -> output9 -> output8) -> ( String.String, Control.AdvancedControl output12 state11 delta13 output12 ) -> ( String.String, Control.AdvancedControl output11 state10 delta12 output11 ) -> ( String.String, Control.AdvancedControl output10 state9 delta11 output10 ) -> ( String.String, Control.AdvancedControl output9 state8 delta10 output9 ) -> Control.Builder r { v | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : d, deltaAfters : e, deltaBefore : ( Control.Delta delta14, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta14, a21 ) -> c8, a20 ) -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) -> Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> ( Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ))), class : List.List String.String, collectDebouncingReceivers : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> List.List Control.Flag, collectErrors : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )) ), initWith : ( output12, ( output11, ( output10, ( output9, b ) ) ) ) -> ( Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), subscriptions : Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> Platform.Sub.Sub (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )), update : Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) -> Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> ( Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) -> Html.Html (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) )), a15 ) -> c5, initialStates : Control.Path -> ( Control.State ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> g -> h -> i, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : j, stateAfters : k, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> l -> m -> n -> o, toArgStates : ( (( p, ( q, ( s, ( t, Control.End ) ) ) ) -> u) -> p -> q -> s -> t -> u, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, d ), deltaAfters : ( d, e ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, g ) -> ( Platform.Cmd.Cmd a12, h ) -> i, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, j ), stateAfters : ( j, k ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, l ) -> ( { x | subscriptions : w -> Platform.Sub.Sub a3 }, m ) -> ( w, n ) -> o, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"tag5","comment":" Add a tag with five arguments to a custom type.\n","type":"String.String -> (output13 -> output12 -> output11 -> output10 -> output9 -> output8) -> ( String.String, Control.AdvancedControl output13 state12 delta14 output13 ) -> ( String.String, Control.AdvancedControl output12 state11 delta13 output12 ) -> ( String.String, Control.AdvancedControl output11 state10 delta12 output11 ) -> ( String.String, Control.AdvancedControl output10 state9 delta11 output10 ) -> ( String.String, Control.AdvancedControl output9 state8 delta10 output9 ) -> Control.Builder r { w | applyInputs : a23 -> state0 -> restStateSetters1 -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> restFns7 -> restStates6 -> List.List Control.Flag, deltaAfter : d, deltaAfters : e, deltaBefore : ( Control.Delta delta15, a21 ) -> c8, deltaBefores : ( ( Control.Delta delta15, a21 ) -> c8, a20 ) -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> restFns6 -> restStates5 -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> restFns5 -> restStates4 -> List.List Control.Flag, fns : Control.Path -> ( { baseUpdate : Basics.Float -> Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) ) -> Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> ( Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )) ), childViews : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> List.List (Html.Html (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) ))), class : List.List String.String, collectDebouncingReceivers : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> List.List Control.Flag, collectErrors : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> List.List Control.Flag -> List.List ( String.String, String.String ), emitFlags : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> List.List Control.Flag, id : Maybe.Maybe String.String, index : Basics.Int, init : ( Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )) ), initWith : ( output13, ( output12, ( output11, ( output10, ( output9, b ) ) ) ) ) -> ( Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )) ), label : Maybe.Maybe String.String, name : Maybe.Maybe String.String, parse : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> Result.Result (List.List ( String.String, String.String )) output8, path : Control.Path, receiverCount : Basics.Int, setAllIdle : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), subscriptions : Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> Platform.Sub.Sub (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )), update : Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) ) -> Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> ( Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )) ), view : Control.ViewConfigStatic -> Control.ViewConfigDynamic ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ) -> Html.Html (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )) }, a17 ) -> c6, idleSetter : a16 -> Basics.Int -> restFns4 -> restStates3 -> restStates3, index : Basics.Int, initialDeltas : Control.Path -> ( Platform.Cmd.Cmd (Control.Delta ( Control.Delta delta14, ( Control.Delta delta13, ( Control.Delta delta12, ( Control.Delta delta11, ( Control.Delta delta10, Control.End ) ) ) ) )), a15 ) -> c5, initialStates : Control.Path -> ( Control.State ( Control.State state12, ( Control.State state11, ( Control.State state10, ( Control.State state9, ( Control.State state8, Control.End ) ) ) ) ), a14 ) -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> g -> h -> i, labels : List.List String.String, makeDeltaSetters : a11 -> befores1 -> afters1 -> next, makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> restFns3 -> restToArgStates -> befores -> afters -> restStateSetters, parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> restFns2 -> restStates2 -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : j, stateAfters : k, stateBefore : ( Maybe.Maybe a24, a7 ) -> c2, stateBefores : ( ( Maybe.Maybe a24, a7 ) -> c2, a6 ) -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (restArgStates -> tagStates) -> restMaybeArgStates -> restArgStates -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> l -> m -> n -> o, toArgStates : ( (( p, ( q, ( s, ( t, ( u, Control.End ) ) ) ) ) -> v) -> p -> q -> s -> t -> u -> v, a2 ) -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : restStates1 -> recordState0 } -> restFns1 -> restDeltaSetters -> restDeltas -> restStates1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> restFns -> restSetters -> restStates -> Maybe.Maybe (Html.Html delta1) } -> Control.Builder r { applyInputs : a23 -> (stateSetter1 -> state0) -> ( stateSetter1, restStateSetters1 ) -> state1_1, debouncingReceiverCollector : a22 -> List.List Control.Flag -> ( Control.ControlFns input6 state7 delta9 output7, restFns7 ) -> ( Control.State state7, restStates6 ) -> List.List Control.Flag, deltaAfter : ( Control.Delta delta8, d ), deltaAfters : ( d, e ), deltaBefore : a21 -> c8, deltaBefores : a20 -> c7, destructor : f, errorCollector : a19 -> List.List Control.Flag -> List.List ( String.String, String.String ) -> ( Control.ControlFns input5 state6 delta7 output6, restFns6 ) -> ( Control.State state6, restStates5 ) -> List.List ( String.String, String.String ), flagEmitter : a18 -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input4 state5 delta6 output5, restFns5 ) -> ( Control.State state5, restStates4 ) -> List.List Control.Flag, fns : Control.Path -> a17 -> c6, idleSetter : a16 -> Basics.Int -> ( Control.ControlFns input3 state4 delta5 output4, restFns4 ) -> ( Control.State state4, restStates3 ) -> ( Control.State state4, restStates3 ), index : Basics.Int, initialDeltas : Control.Path -> a15 -> c5, initialStates : Control.Path -> a14 -> c4, initialiseDeltas : a13 -> List.List (Platform.Cmd.Cmd msg1) -> ( a12 -> msg1, g ) -> ( Platform.Cmd.Cmd a12, h ) -> i, labels : List.List String.String, makeDeltaSetters : a11 -> ( ( value, after1 ) -> delta4, befores1 ) -> ( after1, afters1 ) -> ( value -> delta4, next ), makeStateSetters : a10 -> ((Basics.Int -> Basics.Int -> (Control.End -> state3) -> Control.End -> Control.End -> Control.State state3) -> Basics.Int -> Basics.Int -> (c3 -> c3) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ) -> ( Control.State argState1, restInits ) -> Control.State tagStates1) -> ( Control.State argState1, restInits ) -> ( Control.ControlFns fieldInput fieldState delta3 output3, restFns3 ) -> ( (fieldInput -> Control.State tagStates1) -> stateSetter, restToArgStates ) -> ( ( Maybe.Maybe (Control.State fieldState), after ) -> ( Maybe.Maybe (Control.State argState1), restMaybeArgStates1 ), befores ) -> ( after, afters ) -> ( stateSetter, restStateSetters ), parser : a9 -> Result.Result (List.List ( String.String, String.String )) output2 -> Basics.Int -> ( Control.ControlFns input2 state2 delta2 output2, restFns2 ) -> ( Control.State state2, restStates2 ) -> Result.Result (List.List ( String.String, String.String )) output2, stateAfter : ( Maybe.Maybe a8, j ), stateAfters : ( j, k ), stateBefore : a7 -> c2, stateBefores : a6 -> c1, stateInserter : a5 -> Basics.Int -> Basics.Int -> (( Control.State argState, restArgStates ) -> tagStates) -> ( Maybe.Maybe (Control.State argState), restMaybeArgStates ) -> ( Control.State argState, restArgStates ) -> Control.State tagStates, subscriptionCollector : a4 -> List.List (Platform.Sub.Sub msg) -> ( a3 -> msg, l ) -> ( { y | subscriptions : x -> Platform.Sub.Sub a3 }, m ) -> ( x, n ) -> o, toArgStates : a2 -> c, updater : a1 -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : ( Control.State state1, restStates1 ) -> recordState0 } -> ( Control.ControlFns input1 state1 delta output1, restFns1 ) -> ( Control.Delta delta -> recordDelta, restDeltaSetters ) -> ( Control.Delta delta, restDeltas ) -> ( Control.State state1, restStates1 ) -> { newCmds : List.List (Platform.Cmd.Cmd recordDelta), newStates : recordState1 }, viewer : a -> Maybe.Maybe (Html.Html delta1) -> List.List Control.Flag -> Basics.Int -> ( Control.ControlFns input state delta0 output, restFns ) -> ( Control.Delta delta0 -> delta1, restSetters ) -> ( Control.State state, restStates ) -> Maybe.Maybe (Html.Html delta1) }"},{"name":"throwFlagIf","comment":" Throw a \"flag\" from a `Control` if its output fails to meet the predicate.\n\nThis is meant to be used in combination with `catchFlag`, which catches the \"flag\"\nand displays an error.\n\n","type":"(output -> Basics.Bool) -> String.String -> Control.Control state delta output -> Control.Control state delta output"},{"name":"throwFlagsAt","comment":" Conditionally display an error on one or more items in a `list` control,\nbased on the output of the `list` control.\n\nThe following example will display errors on the first two items in a list of\nstrings, if and only if those first two items are \"hello\" and \"world\":\n\n    myString =\n        string\n            |> catchFlag\n                \"flag-hello-world\"\n                \"The first two items in the list must not be \\\"hello\\\" and \\\"world\\\".\")\n\n    list myString\n        |> throwFlagsAt\n            (\\list_ ->\n                case list of\n                    \"hello\" :: \"world\" :: _ -> [ 0, 1 ]\n\n                    _ -> []\n            )\n            \"flag-hello-world\"\n\n","type":"(output -> List.List Basics.Int) -> String.String -> Control.Control (List.List state) (Control.ListDelta delta) output -> Control.Control (List.List state) (Control.ListDelta delta) output"},{"name":"triple","comment":" A combinator that produces a triple of three controls of given types.\n\n    myTripleControl =\n        triple ( \"First\", string ) ( \"Second\", int ) ( \"Third\", float )\n\n","type":"( String.String, Control.Control state1 delta1 output1 ) -> ( String.String, Control.Control state2 delta2 output2 ) -> ( String.String, Control.Control state3 delta3 output3 ) -> Control.Control ( Control.State state1, ( Control.State state2, ( Control.State state3, Control.End ) ) ) ( Control.Delta delta1, ( Control.Delta delta2, ( Control.Delta delta3, Control.End ) ) ) ( output1, output2, output3 )"},{"name":"tuple","comment":" A combinator that produces a tuple of two controls of given types.\n\n    myTupleControl =\n        tuple ( \"First\", string ) ( \"Second\", int )\n\n","type":"( String.String, Control.Control state1 delta1 output1 ) -> ( String.String, Control.Control state2 delta2 output2 ) -> Control.Control ( Control.State state1, ( Control.State state2, Control.End ) ) ( Control.Delta delta1, ( Control.Delta delta2, Control.End ) ) ( output1, output2 )"},{"name":"wrapper","comment":" A combinator that produces a wrapper type around a given type.\n\n    type Id\n        = Id Int\n\n    idControl =\n        wrapper { wrap = Id, unwrap = \\(Id i) -> i } int\n\n","type":"{ wrap : output -> wrapped, unwrap : wrapped -> output } -> Control.Control state delta output -> Control.Control ( Control.State state, Control.End ) ( Control.Delta delta, Control.End ) wrapped"}],"binops":[]}]