-hCons :: HList l => e -> l -> HCons e l
-hCons = HCons
-
--- HExtendable
-class HExtendable e l where
- type HExtend e l
- hExtend :: e -> l -> HExtend e l
-
-instance HExtendable e HNil where
- type HExtend e HNil = HCons e HNil
- hExtend e nil = hCons e nil
-
-instance HList l => HExtendable e (HCons e' l) where
- type HExtend e (HCons e' l) = HCons e (HCons e' l)
- hExtend e (HCons e' l) = hCons e (hCons e' l)
-
--- HAppendable
-class HAppendable l l' where
- type HAppend l l'
- hAppend :: l -> l' -> HAppend l l'
-
-instance HList l => HAppendable HNil l where
- type HAppend HNil l = l
- hAppend _ l = l
-
-instance (HAppendable l l',
- HList (HAppend l l')) => HAppendable (HCons e l) l' where
- type HAppend (HCons e l) l' = HCons e (HAppend l l')
- hAppend (HCons e l) l' = hCons e (hAppend l l')
-
--- :*:
-infixr 2 :*:
-infixr 2 .*.
-
-type e :*: l = HCons e l