We need to add role annotations for 7.8
dan.doel at gmail.com
Tue Mar 25 14:29:10 UTC 2014
On Tue, Mar 25, 2014 at 4:28 AM, Andreas Abel <andreas.abel at ifi.lmu.de>wrote:
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libraries