[
    {
        "name": "Csv",
        "comment": " A parser for transforming CSV strings into usable input.\n\nThis library does its best to support RFC 4180, however, many CSV inputs do not strictly follow the standard.  There are two major deviations assumed in this library.\n\n1. The `\\n` character may be used instead of `\\r\\n` for new-lines.\n2. The trailing new-line may be omitted.\n\nRFC 4180 grammar, for reference, with notes.\n\nThe trailing newline is required, but we'll make it optional.\n\n    file = [header CRLF] record *(CRLF record) [CRLF]\n    header = name *(COMMA name)\n    record = field *(COMMA field)\n    name = field\n    field = (escaped / non-escaped)\n\nThere is no room for spaces around the quotes.  The specification is that \n\n    escaped = DQUOTE *(TEXTDATA / COMMA / CR / LF / 2DQUOTE) DQUOTE\n\nIn this specification, fields that don't have quotes surrounding them cannot have a quote inside them because it is excluded from `TEXTDATA`.\n\n    non-escaped = *TEXTDATA\n    COMMA = %x2C\n    CR = %x0D ;as per section 6.1 of RFC 2234 [2]\n    DQUOTE =  %x22 ;as per section 6.1 of RFC 2234 [2]\n    LF = %x0A ;as per section 6.1 of RFC 2234 [2]\n\nThe spec requires that new lines be `CR + LF` but we'll let them get away with just `LF` if they want..\n\n    CRLF = CR LF ;as per section 6.1 of RFC 2234 [2]\n\nAll the printable characters minus the double-quote and comma, this is important above.\n\n    TEXTDATA =  %x20-21 / %x23-2B / %x2D-7E\n\n# Types\n@docs Csv\n\n# Functions\n@docs parse\n",
        "unions": [],
        "aliases": [
            {
                "name": "Csv",
                "comment": " Represents a CSV document.  All CSV documents are have a header row, even if that row is empty.\n",
                "args": [],
                "type": "{ headers : List String, records : List (List String) }"
            }
        ],
        "values": [
            {
                "name": "parse",
                "comment": " Parse a CSV string into it's constituent fields.\n",
                "type": "String -> Result (List String) Csv"
            }
        ],
        "binops": []
    }
]