Fields
type family (l :: Symbol) := (t :: *) = (f :: *) | f -> l t where ...
type family (l :: Symbol) :=! (t :: *) = (f :: *) | f -> l t where ...
Patterns for fields
Records
type family R (t :: *) = (r :: *) where ...
Indexing records
Merging & partitioning records
Utilities