On Tue, Mar 25, 2014 at 4:28 AM, Andreas Abel <andreas.abel@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