úÎ ˜ a  Try to run a parser. C If it succeeds, return (Just value) and advance input position. < If it fails, return Nothing and keep the input position.       "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 3have 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 text into a spreadsheet, using the quotation character qm and the separator character sep. )*+       !"#$%&'()*+,-spreadsheet-0.1Data.SpreadsheetData.Spreadsheet.CharSourceData.Spreadsheet.ParserT fromStringtoStringfromStringSimpletoStringSimpleString runStringCgetisEndstopfallibletry UserMessagePossiblyIncompletePartialFalliblePartialFallibleStraightsatisfycharstringmanyappendIncompleteabsorbExceptionmanyIncompletesepByIncompletebetween terminatedeitherOrdeflt parseChar parseQuoted parseUnquoted parseCell parseLine parseLineEndparseLineWithEnd parseTablequote dequoteSimple