HList-0.2.1: Heterogeneous lists

Data.HList.Record

Documentation

newtype LVPair l v Source

Constructors

LVPair 

Fields

valueLVPair :: v
 

Instances

HasField' HTrue l (HCons (LVPair l v) r) v 
(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 ls rout r' => HRearrange' l ls (HCons (LVPair l v) HNil) rout (HCons (LVPair l v) r') 
(Narrow rout r', H2ProjectByLabels (HCons l HNil) r (HCons (LVPair l v) HNil) rout) => Narrow r (HCons (LVPair l v) r') 
(HEq l l' b, HasField' b l (HCons (LVPair l' v') r) v) => HasField l (HCons (LVPair l' v') r) v 
(H2ProjectByLabels (HCons l HNil) a rin rout, NarrowM' rin rout b res) => NarrowM a (HCons (LVPair l v) b) res 
Fail (ExtraField l) => HRearrange HNil (HCons (LVPair l v) a) (ExtraField l) 
(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 
(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'' 
Eq v => Eq (LVPair l v) 
(Typeable x, Typeable y) => Typeable (LVPair x y) 
(ShowLabel l, Show v, ShowComponents r) => ShowComponents (HCons (LVPair l v) r) 
(HEq l1 l2 leq, HRLabelSet' l1 v1 l2 v2 leq r) => HRLabelSet (HCons (LVPair l1 v1) (HCons (LVPair l2 v2) r)) 
Fail (ProxyFound x) => HasNoProxies (HCons (LVPair lab (Proxy x)) l) 
HRLabelSet (HCons (LVPair l v) r) => HExtend (LVPair l v) (Record r) (Record (HCons (LVPair l v) r)) 
RecordValues r' vs => RecordValues (HCons (LVPair l v) r') (HCons v vs) 
RecordLabels r' ls => RecordLabels (HCons (LVPair l v) r') (HCons l ls) 
HMaybied r r' => HMaybied (HCons (LVPair l (Proxy v)) r) (HCons (LVPair l (Maybe v)) r') 
(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 
(HLabelSet (HCons l ls), HSameLength ls vs) => HExtend (LVPair l v) (RecordP ls vs) (RecordP (HCons l ls) (HCons v vs)) 
(RecordR2P r ls vs, HRLabelSet (HCons (LVPair l v) r), HLabelSet (HCons l ls), HSameLength ls vs) => RecordR2P (HCons (LVPair l v) r) (HCons l ls) (HCons v vs) 

newLVPair :: l -> v -> LVPair l vSource

newtype Record r Source

Constructors

Record r 

Instances

(UnionSymRec r1 r2' (Record ru), HExtend f2 (Record ru) (Record (HCons f2 ru))) => UnionSymRec' HFalse r1 f2 r2' (Record (HCons f2 ru)) 
NarrowM a HNil (HJust (Record HNil)) 
(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) 
UnionSymRec r1 (Record HNil) r1 
HLeftUnion r (Record HNil) r 
HasField l r v => HasField l (Record r) v 
NarrowM'' f (HJust (Record r)) (HJust (Record (HCons f r))) 
Eq r => Eq (Record r) 
ShowComponents r => Show (Record r) 
Typeable x => Typeable (Record x) 
(RecordLabels r' ls, H2ProjectByLabels ls r r' rout) => SubType (Record r) (Record r') 
(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 
(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'' 
(HRLabelSet r'', HAppend r r' r'') => HAppend (Record r) (Record r') (Record r'') 
(RecordLabels a la, RecordLabels b lb, HTIntersect la lb lc, H2ProjectByLabels lc a c aout, H2ProjectByLabels lc b c bout, HRLabelSet c) => LubNarrow (Record a) (Record b) (Record c) 
HRLabelSet (HCons (LVPair l v) r) => HExtend (LVPair l v) (Record r) (Record (HCons (LVPair l v) r)) 

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 ls Source

Instances

HLabelSet HNil 
(HMember x ls xmem, HLabelSet' x ls xmem) => HLabelSet (HCons x ls) 

class HLabelSet' x ls xmem Source

Instances

data DuplicatedLabel l Source

Constructors

DuplicatedLabel l 

class RecordLabels r ls | r -> lsSource

Instances

class RecordValues r ls | r -> ls whereSource

Methods

recordValues' :: r -> lsSource

Instances

class ShowLabel l whereSource

Methods

showLabel :: l -> StringSource

Instances

Typeable x => ShowLabel x 
Typeable x => ShowLabel (Proxy x) 
Show n => ShowLabel (Label n) 
(HNat x, Show desc) => ShowLabel (Label x ns desc) 
(HNat x, Show desc) => ShowLabel (Label x ns desc) 

class HasField l r v | l r -> v whereSource

Methods

hLookupByLabel :: l -> r -> vSource

Instances

HasField l r v => HasField l (Record r) v 
(HEq l l' b, HasField' b l (HCons (LVPair l' v') r) v) => HasField l (HCons (LVPair l' v') r) v 
(HEq l l' b, HasFieldP' b l (RecordP (HCons l' ls) vs) v) => HasField l (RecordP (HCons l' ls) vs) v 

class HasField' b l r v | b l r -> v whereSource

Methods

hLookupByLabel' :: b -> l -> r -> vSource

Instances

HasField l r v => HasField' HFalse l (HCons fld r) v 
HasField' HTrue l (HCons (LVPair l v) r) v 

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

class UnionSymRec r1 r2 ru | r1 r2 -> ru whereSource

Methods

unionSR :: r1 -> r2 -> (ru, ru)Source

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

Methods

unionSR' :: b -> r1 -> f2 -> r2' -> (ru, ru)Source

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

data FieldNotFound l Source

Constructors

FieldNotFound 

Instances