Data.OverloadedRecords

Oveloaded Labels

Overloaded Record Fields

Getter

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

class HasField l s a

Setter

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

class SetField l s b

data Setter s t b

set

IsLabel For Getter and Lens

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

class IsFieldAccessor l x y z