
On Fri, Mar 14, 2014 at 9:12 AM, Johan Tibell
On Fri, Mar 14, 2014 at 2:00 PM, Brandon Allbery
wrote: On Fri, Mar 14, 2014 at 5:36 AM, Johan Tibell
wrote: I'm quite worried about this change though. I thought the default role for data type was nominal, as that's the safe default. If the default is representational, every package author will need to be aware of this feature and update their packages. That's quite a high cost.
Nominal default breaks everything that uses newtype deriving and doesn't have role annotations, doesn't it? Representational default means things behave in 7.8 as they did in earlier GHCs.
True, but shouldn't coerce be called unsafeCoerce then as it is, in fact, unsafe from a correctness perspective?
My expectation would be that 7.8 keeps the old behavior while enabling the new, and possibly issues a warning when newtype deriving is used with no role annotations; this gives us a release cycle to get role annotations in place before making the new safe behavior default. -- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net