[
    {
        "name": "Formatting",
        "comment": " A type-safe string formatting library. Fulfils the need for\nstring-interpolation or a `printf` function, without sacrificing Elm's\nruntime guarantees.\n\nExample:\n\n    import Formatting exposing (..)\n\n    greeting =\n        s \"Hello \" <> string <> s \"!\"\n\n    print greeting \"Kris\"\n\n    --> \"Hello Kris!\"\n\n@docs Format, (<>), print, s, string, int, float\n",
        "unions": [
            {
                "name": "Format",
                "comment": " A string formatter. This type holds all the information we need to\ncreate a formatting function, wrapped up in a way that makes it easy\nto compose.\n\nBuild one of these up with primitives like `s`, `string` and `int`,\njoin them together with `<>`, and when you're done, generate the final\nprinting function with `print`.\n",
                "args": [
                    "r",
                    "a"
                ],
                "cases": []
            }
        ],
        "aliases": [],
        "values": [
            {
                "name": "float",
                "comment": " A placeholder for an `Float` argument.\n",
                "type": "Format r (Float -> r)"
            },
            {
                "name": "int",
                "comment": " A placeholder for an `Int` argument.\n",
                "type": "Format r (Int -> r)"
            },
            {
                "name": "print",
                "comment": " Turn your formatter into a function that's just waiting for its arguments.\n\nFor example:\n\n    order =\n        let\n            format = s \"FREE: \" <> int <> s \" x \" <> string  <> s \"!\"\n        in\n            print format 2 \"Ice Cream\"\n\n    --> \"FREE: 2 x Ice Cream!\"\n",
                "type": "Format String a -> a"
            },
            {
                "name": "s",
                "comment": " A boilerplate string.\n",
                "type": "String -> Format a a"
            },
            {
                "name": "string",
                "comment": " A placeholder for a `String` argument.\n",
                "type": "Format r (String -> r)"
            }
        ],
        "binops": [
            {
                "name": "<>",
                "comment": " Compose two formatters together.\n",
                "type": "Format b a -> Format c b -> Format c a",
                "associativity": "right",
                "precedence": 8
            }
        ]
    }
]