[
    {
        "name": "Template.Infix",
        "comment": " Infix operators for more concise template construction\n\n@docs (<%), (%>)\n",
        "unions": [],
        "aliases": [],
        "values": [],
        "binops": [
            {
                "name": "%>",
                "comment": " Operator alias for andString\n\n    template \"my string \" <% .hello %> \" another string\"\n",
                "type": "Template record -> String -> Template record",
                "associativity": "left",
                "precedence": 9
            },
            {
                "name": "<%",
                "comment": " Operator alias for andValue\n\n    template \"my string \" <% .hello\n",
                "type": "Template record -> (record -> String) -> Template record",
                "associativity": "left",
                "precedence": 9
            }
        ]
    },
    {
        "name": "Template",
        "comment": " Type-safe string templating\n\n# types\n@docs Template\n\n# construction\n@docs template, withValue, withString\n\n# rendering\n@docs render\n\n",
        "unions": [],
        "aliases": [
            {
                "name": "Template",
                "comment": " A list of the components of a template\n",
                "args": [
                    "a"
                ],
                "type": "List (Component a)"
            }
        ],
        "values": [
            {
                "name": "render",
                "comment": " Walks through a template's components and renders them to a single string\n\n    render\n      (template \"my string \" `andValue` .hello)\n      ({ hello = \"world\" })\n",
                "type": "Template record -> record -> String"
            },
            {
                "name": "template",
                "comment": " Create an initial template starting with the given string\n\n    template \"my string \"\n",
                "type": "String -> Template record"
            },
            {
                "name": "withString",
                "comment": " Attach a string to a template\n\n    template \"my string \"\n        |> withValue .hello\n        |> withString \" another string\"\n",
                "type": "String -> Template record -> Template record"
            },
            {
                "name": "withValue",
                "comment": " Attach a record accessor to a template\n\n    template \"my string \"\n        |> withValue .hello\n",
                "type": "(record -> String) -> Template record -> Template record"
            }
        ],
        "binops": []
    }
]