Data.HList.Record
Documentation
Constructors
| LVPair | |
Fields
| |
Instances
labelLVPair :: LVPair l v -> lSource
Constructors
| Record r |
Instances
mkRecord :: HRLabelSet r => r -> Record rSource
class HRLabelSet ps Source
Instances
| 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
Instances
| 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
Instances
| Fail (DuplicatedLabel x) => HLabelSet' x ls HTrue | |
| HLabelSet ls => HLabelSet' x ls HFalse |
data DuplicatedLabel l Source
Constructors
| DuplicatedLabel l |
class RecordLabels r ls | r -> lsSource
Instances
| 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
Methods
recordValues' :: r -> lsSource
Instances
| 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
Methods
showComponents :: String -> l -> StringSource
Instances
| ShowComponents HNil | |
| (ShowLabel l, Show v, ShowComponents r) => ShowComponents (HCons (LVPair l v) r) |
class HasField l r v | l r -> v whereSource
Methods
hLookupByLabel :: l -> r -> vSource
class HasField' b l r v | b l r -> v whereSource
Methods
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
Methods
h2projectByLabels :: ls -> r -> (rin, rout)Source
Instances
| 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
Methods
h2projectByLabels' :: b -> ls -> r -> (rin, rout)Source
Instances
| 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
Methods
hLeftUnion :: r -> r' -> r''Source
Instances
| 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
Methods
hLeftUnionBool :: b -> r -> f -> r'Source
Instances
| HLeftUnionBool HTrue r f r | |
| HLeftUnionBool HFalse r f (HCons f r) |
class UnionSymRec r1 r2 ru | r1 r2 -> ru whereSource
Instances
| 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
Instances
| (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
Methods
hRearrange2 :: ls -> r -> r'Source
Instances
| 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
Methods
hRearrange2' :: l -> ls -> rin -> rout -> r'Source
Instances
| 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
Constructors
| ExtraField |
Instances
| Fail (ExtraField l) => HRearrange HNil (HCons (LVPair l v) a) (ExtraField l) |
data FieldNotFound l Source
Constructors
| FieldNotFound |
Instances
| Fail (FieldNotFound l) => HRearrange' l ls HNil rout (FieldNotFound l) |