We need to add role annotations for 7.8

Brandon Allbery allbery.b at gmail.com
Fri Mar 14 13:22:45 UTC 2014

On Fri, Mar 14, 2014 at 9:12 AM, Johan Tibell <johan.tibell at gmail.com>wrote:

> On Fri, Mar 14, 2014 at 2:00 PM, Brandon Allbery <allbery.b at gmail.com>wrote:
>> On Fri, Mar 14, 2014 at 5:36 AM, Johan Tibell <johan.tibell at gmail.com>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 at gmail.com                                  ballbery at sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140314/36c54d59/attachment.html>

More information about the Libraries mailing list