This allows terms of type STRecord r a to be coerced to type STRecord r b when Coercible a b holds, hence allowing the zero cost coerce instead of map wrap and map unwrap to introduce and eliminate newtypes under ST records for instance.
I couldn’t think of a case where a phantom roled region is an issue but in doubt I preferred to keep it nominal.
This allows terms of type
STRecord r a
to be coerced to typeSTRecord r b
whenCoercible a b
holds, hence allowing the zero costcoerce
instead ofmap wrap
andmap unwrap
to introduce and eliminate newtypes under ST records for instance.I couldn’t think of a case where a phantom roled region is an issue but in doubt I preferred to keep it nominal.