We need to add role annotations for 7.8

Austin Seipp austin at well-typed.com
Thu Mar 13 22:03:12 UTC 2014

That's right. If you had another instance of Ord for a newtype with
compare = flip compare, and were allowed to coerce the keys, you can
break it.

On Thu, Mar 13, 2014 at 5:00 PM, Andres Löh <andres at well-typed.com> wrote:
> [Sorry for the self-reply.]
> Oh, perhaps I actually understand this:
>> Please forgive my ignorance w.r.t. roles, but why aren't all of these
>> representational?
>>> Map k v -- k: nominal, v: represententional
>>> Set a -- k: nominal
>> AFAIK both Map and Set are "normal" datatypes. Not GADTs, no type
>> families involved. Why would anything need to be "nominal" then?
> Is this because the integrity of these types relies on the Ord
> instance being sane, and a newtype could have a different Ord instance
> defined?
> Cheers,
>   Andres
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://www.haskell.org/mailman/listinfo/libraries


Austin Seipp, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com/

More information about the Libraries mailing list