HList-0.4.1.0: Heterogeneous lists

Safe HaskellNone
LanguageHaskell2010

Data.HList.HTypeIndexed

Description

The HList library

(C) 2004, Oleg Kiselyov, Ralf Laemmel, Keean Schupke

Type-indexed operations on typeful heterogeneous lists.

Synopsis

Documentation

class HType2HNatCase b e l n | b e l -> n Source

Helper class

Instances

hType2HNat :: HType2HNat e l n => proxy1 e -> proxy l -> Proxy n Source

hTypes2HNats :: HTypes2HNats es l ns => Proxy (es :: [*]) -> hlist l -> Proxy (ns :: [HNat]) Source

class HDeleteManyCase b e1 e l l1 | b e1 e l -> l1 where Source

Methods

hDeleteManyCase :: Proxy b -> Proxy e1 -> e -> HList l -> HList l1 Source

Instances

HDeleteMany * e (HList l) (HList l1) => HDeleteManyCase * True e e l l1 
HDeleteMany k e1 (HList l) (HList l1) => HDeleteManyCase k False e1 e l ((:) * e l1) 

hDeleteAt :: (HDeleteAtHNat n l, HType2HNat * e l n) => proxy1 e -> HList l -> HList (HDeleteAtHNatR n l) Source

hUpdateAt :: (HUpdateAtHNat n e l, HType2HNat * e l n) => e -> HList l -> HList (HUpdateAtHNatR n e l) Source

hProjectBy :: (HUnfoldFD (FHUProj True ns) (ApplyR (FHUProj True ns) (hlist l, Proxy HNat HZero)) z, HTypes2HNats [*] k es l ns, Apply (FHUProj True ns) (hlist l, Proxy HNat HZero)) => Proxy [*] es -> hlist l -> HList z Source

hSplitBy :: (HUnfoldFD (FHUProj True ns) (ApplyR (FHUProj True ns) (hlist l, Proxy HNat HZero)) z, HUnfoldFD (FHUProj False ns) (ApplyR (FHUProj False ns) (hlist l, Proxy HNat HZero)) z1, HTypes2HNats [*] k es l ns, Apply (FHUProj True ns) (hlist l, Proxy HNat HZero), Apply (FHUProj False ns) (hlist l, Proxy HNat HZero)) => Proxy [*] es -> hlist l -> (HList z, HList z1) Source