RJ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ None%&2IJThis just actually a specialization of the free applicative. Check out Control.Applicative.Free in the free library to learn more about this. The meanings of the fields are documented slightly more in the source code. Unfortunately, haddock does not play nicely with GADTs.headers that were missing$headers that occurred more than once.Error occurred parsing the document into cells Error decoding the content  Wrong number of cells in the row Error decoding unicode content+  !"#$%&'()*'  !"#$%&+$%& !"# *)('   !"#$%&'()*None@ABC@ABC@ABC@ABCNoneGThis 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.HSpecialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.ISpecialized version of sepBy1'> which is faster due to not accepting an arbitrary separator.JParse 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 T) parser in combination with this parser.LlParse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped.RA strict version of  for monads.S A version of liftM23 that is strict in the result of its first action.T(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'.DEFGHField delimiterIJField delimiterKField delimiterLMNOPQRSTUVWXYDEFGHIJKLMNOPQRSTUVWXYDEFGHIJKLMNOPQRSTUVWXYDEFGHIJKLMNOPQRSTUVWXYR4None ]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 k) parser in combination with this parser.clParse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped.gXThis could be improved. We could avoid the builder and just write to a buffer directly.hA strict version of  for monads.i,Is this an empty record (i.e. a blank line)?j A version of liftM23 that is strict in the result of its first action.k(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'.Z[\]^Field delimiter_`Field delimiteraField delimiterbcdefghijklmnoZ[\]^_`abcdefghijklmnoZ[\]^_`abcdefghijklmnoZ[\]^_`abcdefghijklmnoh4NonepqrspqrspqrspqrsNone2OTu0This is a convenience function for working with  pipes-text3. It will convert a UTF-8 decoding error into a 3, so the pipes can be properly chained together.v7This is seldom useful but is included for completeness.Converts the content type of a . The  f constraint means that f can be  but not .This function uses  unsafeIndex to access elements of the .FThis function does not check to make sure that the indicies in the  are in the . Maps over a w that expects headers, converting these expected headers into the indices of the columns that they correspond to.hThis adds one to the index because text editors consider line number to be one-based, not zero-based.tuvwxexpected length of each row'index of first row, usually zero or oneyz'index of first row, usually zero or one&leftovers that should be handled first{|}Headers in the source document*Decolonnade that contains expected headers~ tuvwxyz{|} tvwxyzu|{}tuvwxyz{|}~ NoneDZZD Safe Safe   !!"#$  %&'())*+,-./0123456789:;<=>?@ABCDEFGHEFGIJKLMNOPQRSTUVWXYZ[EFGIJKL\MNPQRS]TUWXYZK^_`abcd`efghijklmnopqrpqstuvwxyz{{|}~!siphon-0.6-63tet8ylPOl2eTz6yJRJ2n Siphon.Types Siphon.TextSiphon.Internal.TextSiphon.InternalSiphon.EncodingSiphon.Decoding Data.Functor<$>Siphon.ContentSiphon.ByteString.Char8Siphon DecolonnadeDecolonnadePure DecolonnadeAp HeadingErrorsheadingErrorsMissingheadingErrorsDuplicateRowError RowErrorParseRowErrorDecode RowErrorSizeRowErrorHeadingRowErrorMinSizeRowErrorMalformedDecolonnadeRowErrordecodingRowErrorRowdecodingRowErrorErrorDecolonnadeCellErrorsgetDecolonnadeCellErrorsIndexed indexedIndexindexedHeadingDecolonnadeCellErrordecodingCellErrorContentdecodingCellErrorHeaderdecodingCellErrorMessage siphonEscapesiphonIntercalatesiphonParseRow siphonNullEscaped getEscaped$fApplicativeDecolonnade$fFunctorDecolonnade$fMonoidHeadingErrors$fExceptionHeadingErrors $fEqIndexed $fOrdIndexed$fFunctorIndexed $fShowIndexed $fReadIndexed$fShowDecolonnadeCellError$fReadDecolonnadeCellError$fEqDecolonnadeCellError$fMonoidDecolonnadeCellErrors$fShowDecolonnadeCellErrors$fReadDecolonnadeCellErrors$fEqDecolonnadeCellErrors$fShowHeadingErrors$fReadHeadingErrors$fEqHeadingErrors$fShowRowError$fReadRowError $fEqRowError$fShowDecolonnadeRowError$fReadDecolonnadeRowError$fEqDecolonnadeRowErrorsiphon encodeRowescape escapeAlwaystext sepByDelim1'sepByEndOfLine1'row rowNoNewlinefield escapedFieldescapedFieldInnerunescapedFielddquoteunescape<$!>liftM2' endOfLinetextDoubleQuote doubleQuotenewlinecrcommabyteStringChar8removeBlankLines blankLineheaderpipe headedPipe mkParseErrorconvertDecodeError headlessPipe indexedPipeconsumeGeneral pipeGeneralheadlessheadedindexed$fApplicativeEitherWrap$fFunctorEitherWrapcontramapContent(contravariant-1.4-DLkWk1C84PBIpOEzPkGGNFData.Functor.Contravariant Contravariant&colonnade-1.1.0-LD5wvLX045gKBQvCsU5LfxColonnade.EncodeHeadlessHeadeduncheckedRunWithRow&vector-0.12.0.0-4Id7FElSeAC3wKuJGC9cw4 Data.VectorVector uncheckedRunheadedToIndexed prettyError EitherWrap getEitherWrap uncheckedPipe awaitSkipmaxIndexheadlessToIndexed decLengthprettyRowErrorprettyCellErrorsprettyHeadingErrorscolumnNumToLettersmapLeft