{-| 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