module Data.Vinyl.Derived where
import Data.Vinyl.Core
import qualified Data.Vinyl.Idiom.Identity as I
import qualified Data.Vinyl.Idiom.Thunk as I
import qualified Data.Vinyl.Universe as U
import Control.Applicative
type PlainRec el = Rec el I.Identity
type LazyPlainRec el = Rec el I.Thunk
type FieldRec = Rec U.ElField
type PlainFieldRec = Rec U.ElField I.Identity
type HList = Rec U.Id I.Identity
type LazyHList = Rec U.Id I.Thunk
toPlainRec :: (forall f. Applicative f => Rec el f rs) -> PlainRec el rs
toPlainRec xs = xs
toLazyPlainRec :: (forall f. Applicative f => Rec el f rs) -> LazyPlainRec el rs
toLazyPlainRec xs = xs