pipes-key-value-csv-0.2.0.0: src/Pipes/KeyValueCsv/Types/Common.hs
{-|
Module : Pipes.KeyValueCsv.Types.Common
Copyright : (c) Marcin Mrotek, 2015
License : BSD3
Maintainer : marcin.jan.mrotek@gmail.com
Stability : experimental
Types common to both CSV and key-value part of the library, and reexports of abstract types.
-}
{-# LANGUAGE
DataKinds
, GADTs
, FlexibleContexts
, ScopedTypeVariables
, PolyKinds
, RankNTypes
, TypeOperators
#-}
module Pipes.KeyValueCsv.Types.Common
( Line
, Lines
, Cell
, Cells
, Delimiter
, module Pipes.KeyValueCsv.Types.Common
) where
import Pipes.KeyValueCsv.Internal.Types
import Data.Vinyl.Functor
import Data.Text (Text)
import Pipes.Parse (Parser)
-- |As 'Parser' is a type synonym, it can't be partially applied as an argument for 'Rec'.
newtype WrapParser (a :: *) (m :: * -> *) (r :: *) = WrapParser { unwrapParser :: Parser a m r }
-- |Shorthand for a 'Parser' of 'Text' that can return a 'String' error a'la "Data.Text.Read".
type CellParser (m :: * -> *) (f :: k -> *) = WrapParser Text m :. (Either String :. f)