Safe Haskell | None |
---|
The HList library
(C) 2004, Oleg Kiselyov, Ralf Laemmel, Keean Schupke
Type-indexed operations on typeful heterogeneous lists.
- class HType2HNatCase b e l n | b e l -> n
- hType2HNat :: HType2HNat e l n => Proxy e -> l -> Proxy n
- hTypes2HNats :: HTypes2HNats es l ns => Proxy (es :: [*]) -> HList l -> Proxy (ns :: [HNat])
- class HDeleteManyCase b e1 e l l1 | b e1 e l -> l1 where
- hDeleteManyCase :: Proxy b -> Proxy e1 -> e -> HList l -> HList l1
- hDeleteAt :: forall e l n. (HDeleteAtHNat n l, HType2HNat e l n) => Proxy e -> HList l -> HList (HDeleteAtHNatR n l)
- hUpdateAt :: forall n e l. (HUpdateAtHNat n e l, HType2HNat e l n) => e -> HList l -> HList (HUpdateAtHNatR n e l)
- hProjectBy :: forall ns ps l. (HProjectByHNatsCtx ns l, HTypes2HNats ps l ns, ps ~ HProjectByHNatsR ns l) => Proxy ps -> HList l -> HList ps
- hSplitBy :: forall ps l ns. (HProjectByHNatsCtx ns l, HProjectAwayByHNatsCtx ns l, HTypes2HNats ps l ns) => Proxy ps -> HList l -> (HList (HProjectByHNatsR ns l), HList (HProjectAwayByHNatsR ns l))
Documentation
class HType2HNatCase b e l n | b e l -> nSource
Helper class
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
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
hSplitBy :: forall ps l ns. (HProjectByHNatsCtx ns l, HProjectAwayByHNatsCtx ns l, HTypes2HNats ps l ns) => Proxy ps -> HList l -> (HList (HProjectByHNatsR ns l), HList (HProjectAwayByHNatsR ns l))Source