Documentation
LVPair | |
|
labelLVPair :: LVPair l v -> lSource
Record r |
mkRecord :: HRLabelSet r => r -> Record rSource
class HRLabelSet ps Source
HRLabelSet HNil | |
HRLabelSet (HCons x HNil) | |
(HEq l1 l2 leq, HRLabelSet' l1 v1 l2 v2 leq r) => HRLabelSet (HCons (LVPair l1 v1) (HCons (LVPair l2 v2) r)) |
class HRLabelSet' l1 v1 l2 v2 leq r Source
Fail (DuplicatedLabel l1) => HRLabelSet' l1 v1 l2 v2 HTrue r | |
(HRLabelSet (HCons (LVPair l2 v2) r), HRLabelSet (HCons (LVPair l1 v1) r)) => HRLabelSet' l1 v1 l2 v2 HFalse r |
class HLabelSet' x ls xmem Source
Fail (DuplicatedLabel x) => HLabelSet' x ls HTrue | |
HLabelSet ls => HLabelSet' x ls HFalse |
data DuplicatedLabel l Source
class RecordLabels r ls | r -> lsSource
RecordLabels HNil HNil | |
RecordLabels r' ls => RecordLabels (HCons (LVPair l v) r') (HCons l ls) |
recordLabels' :: RecordLabels r ls => r -> lsSource
recordLabels :: RecordLabels r ls => Record r -> lsSource
class RecordValues r ls | r -> ls whereSource
recordValues' :: r -> lsSource
RecordValues HNil HNil | |
RecordValues r' vs => RecordValues (HCons (LVPair l v) r') (HCons v vs) |
recordValues :: RecordValues r vs => Record r -> vsSource
class ShowComponents l whereSource
showComponents :: String -> l -> StringSource
ShowComponents HNil | |
(ShowLabel l, Show v, ShowComponents r) => ShowComponents (HCons (LVPair l v) r) |
class HasField l r v | l r -> v whereSource
hLookupByLabel :: l -> r -> vSource
class HasField' b l r v | b l r -> v whereSource
hLookupByLabel' :: b -> l -> r -> vSource
hProjectByLabels :: (HRLabelSet a, H2ProjectByLabels ls t a b) => ls -> Record t -> Record aSource
class H2ProjectByLabels ls r rin rout | ls r -> rin rout whereSource
h2projectByLabels :: ls -> r -> (rin, rout)Source
H2ProjectByLabels HNil r HNil r | |
(HMember l' ls b, H2ProjectByLabels' b ls (RecordP (HCons l' ls') vs') rin rout) => H2ProjectByLabels ls (RecordP (HCons l' ls') vs') rin rout | |
H2ProjectByLabels (HCons l ls) HNil HNil HNil | |
(HMemberM l' (HCons l ls) b, H2ProjectByLabels' b (HCons l ls) (HCons (LVPair l' v') r') rin rout) => H2ProjectByLabels (HCons l ls) (HCons (LVPair l' v') r') rin rout | |
H2ProjectByLabels (HCons l ls) (RecordP HNil HNil) (RecordP HNil HNil) (RecordP HNil HNil) |
class H2ProjectByLabels' b ls r rin rout | b ls r -> rin rout whereSource
h2projectByLabels' :: b -> ls -> r -> (rin, rout)Source
H2ProjectByLabels ls r' rin rout => H2ProjectByLabels' HNothing ls (HCons f' r') rin (HCons f' rout) | |
H2ProjectByLabels ls (RecordP ls' vs') rin (RecordP lo vo) => H2ProjectByLabels' HFalse ls (RecordP (HCons l' ls') (HCons v' vs')) rin (RecordP (HCons l' lo) (HCons v' vo)) | |
H2ProjectByLabels ls (RecordP ls' vs') (RecordP lin vin) rout => H2ProjectByLabels' HTrue ls (RecordP (HCons l' ls') (HCons v' vs')) (RecordP (HCons l' lin) (HCons v' vin)) rout | |
H2ProjectByLabels ls' r' rin rout => H2ProjectByLabels' (HJust ls') ls (HCons f' r') (HCons f' rin) rout |
class HLeftUnion r r' r'' | r r' -> r'' whereSource
hLeftUnion :: r -> r' -> r''Source
HLeftUnion r (Record HNil) r | |
(RecordLabels r ls, HMember l ls b, HLeftUnionBool b r (LVPair l v) r''', HLeftUnion (Record r''') (Record r') r'') => HLeftUnion (Record r) (Record (HCons (LVPair l v) r')) r'' |
class HLeftUnionBool b r f r' | b r f -> r' whereSource
hLeftUnionBool :: b -> r -> f -> r'Source
HLeftUnionBool HTrue r f r | |
HLeftUnionBool HFalse r f (HCons f r) |
class UnionSymRec r1 r2 ru | r1 r2 -> ru whereSource
UnionSymRec r1 (Record HNil) r1 | |
(RecordLabels r1 ls, HMember l ls b, UnionSymRec' b (Record r1) (LVPair l v) (Record r2') ru) => UnionSymRec (Record r1) (Record (HCons (LVPair l v) r2')) ru |
class UnionSymRec' b r1 f2 r2' ru | b r1 f2 r2' -> ru whereSource
(UnionSymRec r1 r2' (Record ru), HExtend f2 (Record ru) (Record (HCons f2 ru))) => UnionSymRec' HFalse r1 f2 r2' (Record (HCons f2 ru)) | |
(UnionSymRec r1 r2' (Record ru), HasField l2 ru v2, HUpdateAtHNat n (LVPair l2 v2) ru ru, RecordLabels ru ls, HFind l2 ls n) => UnionSymRec' HTrue r1 (LVPair l2 v2) r2' (Record ru) |
hRearrange :: (HLabelSet ls, HRearrange ls r r') => ls -> Record r -> Record r'Source
class HRearrange ls r r' | ls r -> r' whereSource
hRearrange2 :: ls -> r -> r'Source
HRearrange HNil HNil HNil | |
Fail (ExtraField l) => HRearrange HNil (HCons (LVPair l v) a) (ExtraField l) | |
(H2ProjectByLabels (HCons l HNil) r rin rout, HRearrange' l ls rin rout r') => HRearrange (HCons l ls) r r' |
class HRearrange' l ls rin rout r' | l ls rin rout -> r' whereSource
hRearrange2' :: l -> ls -> rin -> rout -> r'Source
Fail (FieldNotFound l) => HRearrange' l ls HNil rout (FieldNotFound l) | |
HRearrange ls rout r' => HRearrange' l ls (HCons (LVPair l v) HNil) rout (HCons (LVPair l v) r') |
data ExtraField l Source
Fail (ExtraField l) => HRearrange HNil (HCons (LVPair l v) a) (ExtraField l) |
data FieldNotFound l Source
Fail (FieldNotFound l) => HRearrange' l ls HNil rout (FieldNotFound l) |