[TYPES] Parametricity with subtyping and a Top type

Matt Hellige matt at immute.net
Thu May 12 17:19:37 EDT 2005

[Derek Dreyer <dreyer at tti-c.org>]
> [The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list]
> I observed similar oddities when I tried to include a Top "signature" at 
> one point in a type system for higher-order modules.
> But I don't view this as breaking parametricity.  Isn't the point just 
> that at Top everything is observationally indistinguishable?  So, in 
> particular, \x.\y.x and \x.\y.y are in fact equivalent functions, when 
> considered at the type forall a. a->a->Top, because there is no way to 
> tell apart their outputs.

Yes, I'd argue that it's the implied presence of down-casting which
causes the problem in this case... But of course if we assume an
OO-style of dynamic method dispatch (or virtual methods, or whatever),
that mechanism acts in effect as a sort of "safe downcast," and would
also have to be disallowed.


Matt Hellige                  matt at immute.net

More information about the Types-list mailing list