[
    {
        "name": "Erl",
        "comment": "Library for parsing and constructing URLs\n\n# Definition\n@docs Url\n\n# Common Helpers\n@docs extractFragment, extractHost, extractPath, extractProtocol, extractPort, extractQuery, parse, toString",
        "unions": [],
        "aliases": [
            {
                "name": "Url",
                "comment": "Url record that holds url attributes",
                "args": [],
                "type": "{ protocol : Protocol, username : Username, password : Password, host : Host, port_ : Port, path : Path, fragment : Fragment, query : Query }"
            }
        ],
        "values": [
            {
                "name": "extractFragment",
                "comment": "Extract the fragment (hash) from the url",
                "type": "String -> String"
            },
            {
                "name": "extractHost",
                "comment": "Extract the host from the url",
                "type": "String -> String"
            },
            {
                "name": "extractPath",
                "comment": "Extract the path from the url",
                "type": "String -> String"
            },
            {
                "name": "extractPort",
                "comment": "Extract the port from the url",
                "type": "String -> Int"
            },
            {
                "name": "extractProtocol",
                "comment": "Extract the protocol from the url",
                "type": "String -> String"
            },
            {
                "name": "extractQuery",
                "comment": "Extract the query string from the url",
                "type": "String -> String"
            },
            {
                "name": "parse",
                "comment": "Parse a Url an return a Erl.Url record\n\n    parse \"http://api.example.com/users/1#x/1?a=1\" == Erl.Url{...}",
                "type": "String -> Url"
            },
            {
                "name": "toString",
                "comment": "Generate url string from an Erl.Url record\n\n    url = {\n      protocol = \"http\",\n      username = \"\",\n      password = \"\",\n      host = [\"www\", \"foo\", \"com\"],\n      path = [\"users\", \"1\"],\n      port' = 2000,\n      fragment = [\"a\", \"b\"],\n      query = Dict.empty |> Dict.insert \"q\" \"1\" |> Dict.insert \"k\" \"2\"\n    }\n\n    Erl.toString url == http://www.foo.com:2000/users/1#a/b?k=2&q=1",
                "type": "Url -> String"
            }
        ],
        "binops": []
    }
]