roc
roc copied to clipboard
Support bound and unbound extension variables in deriving
A key thing about unbound extension variables is that they provide no information. For example, given a type [A Str]b, one cannot do anything with b until it is resolved to a concrete type. This applies to implementations of abilities as well. For encoding/decoding, the most we can do is work on the concrete part of the type. Since only ground types can be fed into derived implementations, doing this is fine.