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