Data.OverloadedRecords

Usage Examples

Oveloaded Labels

Overloaded Record Fields

Getter

type family FieldType (l :: Symbol) (s :: *) :: *

class HasField l s a

data Getter s a

get

Setter, Modifier and Lens

type family UpdateType (l :: Symbol) (s :: *) (b :: *) :: *

class ModifyField l s t a b

type family R (ts :: [(Symbol, *)]) (r :: *) :: Constraint where ...

type family Rs (cs :: [[(Symbol, *)]]) (r :: *) where ...

type l ::: a

data Rec ctx r

type Setting a s t b

setting

type Setter s t b

set

data Modifier s t a b

modify

data WrappedLensLike f s t a b

lns

class ModifyRec l a cs

weakenRec

strengthenRec

type family Position (l :: Symbol) (a :: *) (cs :: [(Symbol, *)]) :: Nat where ...

Simple Setter, Modifier and Lens

type ModifyField' l s a

fieldLens'

modifyField'

setField'

type Setter' s a

set'

type Modifier' s a

modify'

type WrappedLensLike' f s a

lns'

IsLabel For Getter and Lens

type family FromArrow (a :: *) :: Bool where ...

class IsFieldAccessor l x y z