úÎEx@>5      !"#$%&'()*+,-./01234None&'3KVJThis 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..Error occurred parsing the document into cellsError decoding the content Wrong number of cells in the rowÒThree parts: (a) Multiple header cells matched the same expected cell, (b) Headers that were missing, (c) Missing headers that were lambdas. They cannot be shown so instead their positions in the  are given.,Not enough cells in header, expected, actual -Error decoding unicode content, column number     None3QV?D5%Strict in the spine and in the values(Streaming variant of )Š. This is particularly useful when you need to produce millions of rows without having them all loaded into memory at the same time.)'Encode a collection to a CSV as a text 6J. For example, we can take the following columnar encoding of a person::{-let colPerson :: Colonnade Headed Person Text colPerson = mconcat [ C.headed "Name" name, , C.headed "Age" (T.pack . show . age)6 , C.headed "Company" (fromMaybe "N/A" . company) ]:}EAnd we have the following people whom we wish to encode in this way::{let people :: [Person] people =0 [ Person "Chao" 26 (Just "Tectonic, Inc.")5 , Person "Elsie" 41 (Just "Globex Corporation")$ , Person "Arabella" 19 Nothing ]:}0We pair the encoding with the rows to get a CSV:8LTIO.putStr (TB.toLazyText (encodeCsv colPerson people))Name,Age,CompanyChao,26,"Tectonic, Inc."Elsie,41,Globex CorporationArabella,19,N/A*-Encode a collection to a CSV as a bytestring 7.8 Maps over a  Decolonnadew that expects headers, converting these expected headers into the indices of the columns that they correspond to.9ÿOParse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped. This parser will consume the comma that comes after a field but not a newline that follows a field. If we are positioned at a newline when it starts, that newline will be consumed and we return CellResultNewline.:yConsume an unescaped field. If it ends with a newline, leave that in tact. If it ends with a comma, consume the comma.;XThis could be improved. We could avoid the builder and just write to a buffer directly.<,Is this an empty record (i.e. a blank line)?+hThis adds one to the index because text editors consider line number to be one-based, not zero-based.=rYou must pass the length of the list and as the first argument. Passing the wrong length will lead to an error.>This function uses  unsafeIndex to access elements of the ?.@FThis function does not check to make sure that the indicies in the  Decolonnade are in the ?p. Only use this if you have already verified that none of the indices in the siphon are out of the bounds.,(Uses the argument to parse a CSV column.-iUses the second argument to parse a CSV column whose header content matches the first column exactly..nUses the second argument to parse a CSV column that is positioned at the index given by the first argument. & encoded csv)Tablular encodingValue of each row*Tablular encodingValue of each rowA separatornewlineB separatornewlineC separatornewline8Headers in the source document*Decolonnade that contains expected headersD'index of first row, usually zero or oneRequired row lengthEtrue if null string!true if termination is acceptableFNTrue if termination is acceptable. False if it is because of a decoding error.'index of first row, usually zero or oneRequired row length &'()*+,-.)(*'&-,. +5GHIJKLMNOPQRSTUVWXYZ[\]^_       !"#$%&'()*+,-./01234567897:;<=>?@ABCDEFGHIJKLMMNOPQRSSTTUVWXYZ[\]]^_#siphon-0.8.1-6Xxxf9CzhPaLtpJ8ggFcUb Siphon.TypesSiphon SiphonPureSiphonApRowError RowErrorParseRowErrorDecode RowErrorSizeRowErrorHeadersRowErrorHeaderSizeRowErrorMalformed SiphonErrorsiphonErrorRowsiphonErrorCauseIndexed indexedIndex CellErrorcellErrorColumncellErrorContent$fExceptionSiphonError$fApplicativeSiphon$fFunctorSiphon$fShowCellError$fReadCellError $fEqCellError $fEqIndexed $fOrdIndexed$fFunctorIndexed $fShowIndexed $fReadIndexed$fShowRowError$fReadRowError $fEqRowError$fShowSiphonError$fReadSiphonError$fEqSiphonError decodeCsvUtf8encodeCsvStreamUtf8encodeCsvStream encodeCsv encodeCsvUtf8humanizeSiphonErrorheadlessheadedindexed$fMonoidHeaderErrors$fSemigroupHeaderErrors$fApplicativeEitherWrap $fShowEnded$fShowCellResult$fFunctorEitherWrap StrictList#text-1.2.2.2-EakMpasry3jA6OIwSZhq9MData.Text.Internal.BuilderBuilderbytestring-0.10.8.2 Data.ByteString.Builder.InternalheadedToIndexedfieldunescapedFieldunescape blankLinereverseVectorStrictListuncheckedRunWithRow&vector-0.12.0.1-LflPw1fguMb6as60UrZpxN Data.VectorVector uncheckedRunencodeCsvInternal encodeHeader encodeRowsconsumeBodyUtf8consumeHeaderRow consumeBody StrictListNilStrictListCons EitherWrap getEitherWrap TrailCharTrailCharNewlineTrailCharComma TrailCharEnd HeaderErrors IndexedHeaderindexedHeaderIndexedindexedHeaderHeader CellResultCellResultDataCellResultNewlineEndedEndedYesEndedNoEscaped getEscaped