úÎ!G½CÓ5      !"#$%&'()*+,-./01234None&'4M siphonJThis 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.siphon.Error occurred parsing the document into cellssiphonError decoding the contentsiphon Wrong number of cells in the rowsiphonÒ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.siphon,Not enough cells in header, expected, actual siphon-Error decoding unicode content, column number   None4SXCG5siphon%Strict in the spine and in the values(siphonStreaming 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.)siphon'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*siphon-Encode a collection to a CSV as a bytestring 7.8siphon Maps over a  Decolonnadew that expects headers, converting these expected headers into the indices of the columns that they correspond to.9siphonÿ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.:siphonyConsume an unescaped field. If it ends with a newline, leave that in tact. If it ends with a comma, consume the comma.;siphonXThis could be improved. We could avoid the builder and just write to a buffer directly.<siphon,Is this an empty record (i.e. a blank line)?+siphonhThis adds one to the index because text editors consider line number to be one-based, not zero-based.=siphonrYou must pass the length of the list and as the first argument. Passing the wrong length will lead to an error.>siphonThis function uses  unsafeIndex to access elements of the ?.@siphonFThis 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.,siphon(Uses the argument to parse a CSV column.-siphoniUses the second argument to parse a CSV column whose header content matches the first column exactly..siphonnUses the second argument to parse a CSV column that is positioned at the index given by the first argument. &siphon encoded csv)siphonTablular encodingsiphonValue of each row*siphonTablular encodingsiphonValue of each rowAsiphon separatorsiphonnewlineBsiphon separatorsiphonnewlineCsiphon separatorsiphonnewline8siphonHeaders in the source documentsiphon*Decolonnade that contains expected headersDsiphon'index of first row, usually zero or onesiphonRequired row lengthEsiphontrue if null stringsiphon!true if termination is acceptableFsiphonNTrue if termination is acceptable. False if it is because of a decoding error.siphon'index of first row, usually zero or onesiphonRequired row length &'()*+,-.)(*'&-,. +G       !"#$%&'()*+,-./01234567897:;<=>?@ABCDEFGHIJK%siphon-0.8.1.1-7bwAqcNuOYLJR5m5ggKz1I 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.3.1Data.Text.Internal.BuilderBuilderbytestring-0.10.8.2 Data.ByteString.Builder.InternalheadedToIndexedfieldunescapedFieldunescape blankLinereverseVectorStrictListuncheckedRunWithRow&vector-0.12.0.3-ChzWbiXyvuNAQj0dcU08Sg Data.VectorVector uncheckedRunencodeCsvInternal encodeHeader encodeRowsconsumeBodyUtf8consumeHeaderRow consumeBody