const package:vinyl

Build a record whose elements are derived solely from a constraint satisfied by each.
Build a record whose elements are derived solely from a list of constraint constructors satisfied by each.
Sometimes we may know something for all fields of a record, but when you expect to be able to each of the fields, you are then out of luck. Surely given ∀x:u.φ(x) we should be able to recover x:u ⊢ φ(x)! Sadly, the constraint solver is not quite smart enough to realize this and we must make it patently obvious by reifying the constraint pointwise with proof.
Sometimes we may know something for all fields of a record, but when you expect to be able to each of the fields, you are then out of luck. Surely given ∀x:u.φ(x) we should be able to recover x:u ⊢ φ(x)! Sadly, the constraint solver is not quite smart enough to realize this and we must make it patently obvious by reifying the constraint pointwise with proof.
Build a record whose elements are derived solely from a constraint satisfied by each.
Build a record whose elements are derived solely from a list of constraint constructors satisfied by each.
Constraint that all types in a type-level list satisfy a constraint.