{-# LANGUAGE DataKinds #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} module Data.Vinyl.Derived where import Data.Vinyl.Core import Data.Vinyl.Functor import GHC.TypeLits data ElField (field :: (Symbol, *)) where Field :: KnownSymbol s => t -> ElField '(s,t) type FieldRec = Rec ElField type HList = Rec Identity type LazyHList = Rec Thunk