pipes-key-value-csv-0.2.0.0: src/Pipes/KeyValueCsv/Names.hs
{-|
Module : Pipes.KeyValueCsv.Names
Copyright : (c) Marcin Mrotek, 2015
License : BSD3
Maintainer : marcin.jan.mrotek@gmail.com
Stability : experimental
Default key name generation by printing the field label type names.
-}
{-# LANGUAGE
DataKinds
, ExplicitForAll
, PolyKinds
#-}
module Pipes.KeyValueCsv.Names
( module Pipes.KeyValueCsv.Names
, FieldAll
, Record
) where
import qualified Pipes.KeyValueCsv.Internal.Names as Internal
import Data.Proxy
import Data.Vinyl
import Data.Vinyl.Functor
import Data.Vinyl.Utils.Field
import Data.Vinyl.Utils.Proxy
import Data.Text (Text)
import Data.Typeable
names :: forall (rs :: [k]). (FieldAll rs Typeable, Record rs) => Rec (Const Text) rs
names = Internal.names $ reifyFieldConstraint (Proxy :: Proxy Typeable) proxyRecord