úÎÃXNoneI“Try to run a parser. If it succeeds, return (Just value) and advance input position. If it fails, return Nothing and keep the input position.       None !" !" !"NoneÿA spreadsheet is a list of lines, each line consists of cells, and each cell is a string. Ideally, spreadsheets read from a CSV file have lines with the same number of cells per line. However, we cannot assert this, and thus we parse the lines as they come in.fromString qm sep text parses text3 into a spreadsheet, using the quotation character qm and the separator character sep.fromString qm sep text parses textX into a spreadsheet and additionally returns text that follows after CSV formatted data.ÛThis is a quick hack. It does neither handle field nor line separators within quoted fields. You must provide well-formed CSV content without field and line separators within quotations. Everything else yields an error.#$%&'()*+,-.#$%&'()*+,-./       !"#$%&'()*+,-./01*spreadsheet-0.1.3.6-9iDgMnKnnR15RONLbp3eFoData.SpreadsheetData.Spreadsheet.CharSourceData.Spreadsheet.Parser UserMessageT fromStringfromStringWithRemaindertoStringfromStringSimpletoStringSimpletryString runStringCgetisEndstopfallible $fCStringPossiblyIncompletePartialFalliblePartialFallibleStraightsatisfycharstringmanyappendIncompleteabsorbExceptionmanyIncompletesepByIncompletebetween terminatedeitherOrdeflt parseChar parseQuoted parseUnquoted parseCell parseLine parseLineEndparseLineWithEnd parseTablequote_dequoteSimpledequoteSimpleOptionalunescapeQuoteSimple