HList-0.3.4.1: Heterogeneous lists

Safe HaskellNone

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

Helper class

Instances

HOccursNot * [*] e l => HType2HNatCase True e l HZero 
HType2HNat * [*] e l n => HType2HNatCase False e l (HSucc n) 

hType2HNat :: HType2HNat e l n => Proxy e -> l -> Proxy nSource

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 whereSource

Methods

hDeleteManyCase :: Proxy b -> Proxy e1 -> e -> HList l -> HList l1Source

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 :: forall e l n. (HDeleteAtHNat n l, HType2HNat e l n) => Proxy e -> HList l -> HList (HDeleteAtHNatR n l)Source

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

hProjectBy :: forall ns ps l. (HProjectByHNatsCtx ns l, HTypes2HNats ps l ns, ps ~ HProjectByHNatsR ns l) => Proxy ps -> HList l -> HList psSource