
On Tue, Mar 25, 2014 at 4:28 AM, Andreas Abel
2. The chosen role names mean nothing to me. It feels a bit like the term "delegate" used in C# instead of just speaking of a higher-order function. Looking at the semantics, I find the following translation
nominal = computational
That is, the choice of type expression has a computational effect (like a different implementation of Ord).
representational = parametric
The choice of type expression is parametric, i.e., does not lead to other choices, but is purely propagated through.
Further, "representational" is a bit long for a keyword. 'nominal' invokes the exact opposite association for me than it means. In nominal calculi (Pitts et al), everything is *parametric* in the choice of names.
Nominal refers to nominal typing, where types are distinguished based on their names. So a type with a nominal argument may do different things based on the name of a type. The opposite of this is typically called "structural." Representational is (for the purposes here, at least) a synonym of that, though. I'd be surprised if this usage of the words wasn't quite a bit more common than knowledge of nominal logic. -- Dan