We need to add role annotations for 7.8

Dan Doel 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.

-- Dan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140325/f84780fd/attachment.html>


More information about the Libraries mailing list