Data.OverloadedRecords
type family FieldType l s :: *
class HasField l s a
type family UpdateType l s a :: *
class SetField l s b
data Setter s t b
set