úÎ7×44F      !"#$%&'()*+,-./0123456789:;<=>?@ABCDE None   None    None¼This implementation is definitely suboptimal. A better option (which would waste a little space but would be much faster) would be to build the new text by writing to a buffer directly.Specialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.Specialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.åParse a record, not including the terminating line separator. The terminating line separate is not included as the last record in a CSV file is allowed to not have a terminating line separator. You most likely want to use the ) parser in combination with this parser.lParse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped.A strict version of  for monads. A version of liftM23 that is strict in the result of its first action.(Match either a single newline character '\n'8, or a carriage return followed by a newline character "\r\n", or a single carriage return '\r'. Field delimiterField delimiterField delimiter !"  !"  !"  !"4None &ÂThis implementation is definitely suboptimal. A better option (which would waste a little space but would be much faster) would be to build the new bytestring by writing to a buffer directly.'Specialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.(Specialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.)åParse a record, not including the terminating line separator. The terminating line separate is not included as the last record in a CSV file is allowed to not have a terminating line separator. You most likely want to use the 4) parser in combination with this parser.,lParse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped.0XThis could be improved. We could avoid the builder and just write to a buffer directly.1A strict version of  for monads.2,Is this an empty record (i.e. a blank line)?3 A version of liftM23 that is strict in the result of its first action.4(Match either a single newline character '\n'8, or a carriage return followed by a newline character "\r\n", or a single carriage return '\r'.#$%&'Field delimiter()Field delimiter*Field delimiter+,-./012345678#$%&'()*+,-./012345678#$%&'()*+,-./012345678#$%&'()*+,-./01234567814None9:;<9:;<9:;<9:;<NoneOT>0This is a convenience function for working with  pipes-text3. It will convert a UTF-8 decoding error into a F3, so the pipes can be properly chained together.?7This is seldom useful but is included for completeness. =>?@ABexpected length of each row'index of first row, usually zero or oneCD'index of first row, usually zero or one&leftovers that should be handled firstE =>?@ABCDE =>?@ABCDE =>?@ABCDE None ## Safe SafeG     !"#$%&'()* !+"#%&'(,-./012.3456789:!siphon-0.1-3DPW0EbgkBKAgFzrxTarfw Siphon.Types Siphon.TextSiphon.Internal.TextSiphon.InternalSiphon.EncodingSiphon.Decoding Data.Functor<$>Siphon.ContentSiphon.ByteString.Char8Siphon siphonEscapesiphonIntercalatesiphonParseRow siphonNullEscaped getEscapedsiphon encodeRowescape escapeAlwaystext sepByDelim1'sepByEndOfLine1'row rowNoNewlinefield escapedFieldescapedFieldInnerunescapedFielddquoteunescape<$!>liftM2' endOfLinetextDoubleQuote doubleQuotenewlinecrcommabyteStringChar8removeBlankLines blankLineheaderpipe headedPipe mkParseErrorconvertDecodeError headlessPipe indexedPipe uncheckedPipeconsumeGeneral pipeGeneral awaitSkip&colonnade-0.4.7-C7Iq5xkkUdtBXlkEnOulgiColonnade.TypesDecodingRowError