[
    {
        "name": "Erl",
        "comment": " Library for parsing and constructing URLs\n\n# Types\n@docs Url, Query\n\n# Parse\n@docs parse\n\n# Parse helpers\n@docs extractHash, extractHost, extractPath, extractProtocol, extractPort, extractQuery\n\n# Construct\n@docs new, toString\n\n# Mutation helpers\n@docs addQuery, setQuery, removeQuery, clearQuery, appendPathSegments\n\n",
        "unions": [],
        "aliases": [
            {
                "name": "Query",
                "comment": " A Dict that holds keys and values for the query string\n",
                "args": [],
                "type": "Dict String String"
            },
            {
                "name": "Url",
                "comment": " Record that holds url attributes\n",
                "args": [],
                "type": "{ protocol : String, username : String, password : String, host : List String, port_ : Int, path : List String, hash : List String, query : Query }"
            }
        ],
        "values": [
            {
                "name": "addQuery",
                "comment": " Set key/value in query string\n    \n    Erl.addQuery key value url\n",
                "type": "String -> String -> Url -> Url"
            },
            {
                "name": "appendPathSegments",
                "comment": " Append some path segments to a url\n    \n    Erl.appendPathSegments [\"hello\", \"world\"] url\n",
                "type": "List String -> Url -> Url"
            },
            {
                "name": "clearQuery",
                "comment": " Clears the current query string\n    \n    Erl.clearQuery url\n",
                "type": "Url -> Url"
            },
            {
                "name": "extractHash",
                "comment": " Extract the hash (hash) from the url\n\n",
                "type": "String -> String"
            },
            {
                "name": "extractHost",
                "comment": " Extract the host from the url\n\n",
                "type": "String -> String"
            },
            {
                "name": "extractPath",
                "comment": " Extract the path from the url\n\n",
                "type": "String -> String"
            },
            {
                "name": "extractPort",
                "comment": " Extract the port from the url\n\n",
                "type": "String -> Int"
            },
            {
                "name": "extractProtocol",
                "comment": " Extract the protocol from the url\n\n",
                "type": "String -> String"
            },
            {
                "name": "extractQuery",
                "comment": " Extract the query string from the url\n\n",
                "type": "String -> String"
            },
            {
                "name": "new",
                "comment": " Generate an empty Erl.Url record\n\n    Erl.new ==\n\n    {\n      protocol = \"\",\n      username = \"\",\n      password = \"\",\n      host = [],\n      path = [],\n      port' = 0,\n      hash = [],\n      query = Dict.empty\n    }\n\n",
                "type": "Url"
            },
            {
                "name": "parse",
                "comment": " Parse a url string, returns an Erl.Url record\n\n    Erl.parse \"http://api.example.com/users/1#x/1?a=1\" == Erl.Url{...}\n",
                "type": "String -> Url"
            },
            {
                "name": "removeQuery",
                "comment": " Removes key from query string\n    \n    Erl.removeQuery key url\n",
                "type": "String -> Url -> Url"
            },
            {
                "name": "setQuery",
                "comment": " Set key/value in query string, removes any existing ones\n    \n    Erl.setQuery key value url\n",
                "type": "String -> String -> Url -> 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      hash = [\"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\"\n\n",
                "type": "Url -> String"
            }
        ],
        "binops": []
    }
]