úÎ1&/ !       ‡Settings for a CSV file. This library is intended to be flexible and offer a way to process the majority of text data files out there. 1Separator character to be used in between fields @Quote character that may sometimes be present around fields. If !J is given, the library will never expect quotation even if it is present. 3Quote character that should be used in the output. 3Field separator that should be used in the output. "Default settings for a CSV file.  csvSep = ','  csvQuoteChar = Just '"'  csvOutputQuoteChar = Just '"'  csvOutputColSep = ','     BAn iteratee that processes each row of a CSV file and updates the  accumulator. 1You would implement one of these to use with the  function. DA datatype that incorporates the signaling of parsing status to the user-developed iteratee. MWe need this because some iteratees do interleaved IO (such as outputting to M a file via a handle inside the accumulator) and some final actions may need M to be taken upon encountering EOF (such as closing the interleaved handle). IUse this datatype when developing iteratees for use with fold* family of  functions (Row enumarators). 5Convert a CSV row into strict ByteString equivalent. ,Possibly return headers for a list of rows. 2The raw iteratee to process any Enumerator stream (Iteratee to push rows into a given file Open &@ fold over the CSV file. Processing starts on row 2 for MapRow . instance to use first row as column headers. File to open as a CSV file &CSV settings to use on the input file  Fold action Initial accumulator #Error or the resulting accumulator ATake a CSV file, apply function to each of its rows and save the ! resulting rows into a new file. %Each row is simply a list of fields.  Input file  CSV Settings "A function to map a row onto rows  Output file Number of rows processed Like 5 but operates on multiple files pouring results into  a single file.  Input files  CSV Settings "A function to map a row onto rows  Output file Number of rows processed  CSV settings  FilePath Collected data  CSV settings Target file path Data to be output Number of rows written  CSV settings Target file path Data to be output Number of rows written #Output given row into given handle IConvenience converter for fold step functions that live in the IO monad. Use this if you don'5t want to deal with Iteratees when writing your fold  functions. =Convenience converter for fold step functions that are pure. Use this if you don'5t want to deal with Iteratees when writing your fold  functions. JJust collect all rows into an array. This will cancel out the incremental  nature of this library. "#$%&'( instance for  !  !       )      !"#$%&'()*+,-csv-enumerator-0.8Data.CSV.EnumeratorData.CSV.Enumerator.TypesMapRowFieldRow CSVSettingsCSVScsvSep csvQuoteCharcsvOutputQuoteCharcsvOutputColSepdefCSVSettings CSVAction ParsedRowEOFCSVeablerowToStr fileHeadersiterCSVfileSink foldCSVFile mapCSVFile mapCSVFiles readCSVFile writeCSVFile appendCSVFile outputRow outputRows writeHeaders outputRowIteroutputRowsIter funToIterIO funToIter collectRowsbase Data.MaybeNothing rowParserrowbadrowcsvrowfield quotedField $fCSVeable[]