We need to add role annotations for 7.8

Brandon Allbery allbery.b at gmail.com
Mon Mar 24 14:32:40 UTC 2014


On Mon, Mar 24, 2014 at 10:28 AM, Brandon Allbery <allbery.b at gmail.com>wrote:

> On Mon, Mar 24, 2014 at 10:14 AM, Mark Lentczner <mark.lentczner at gmail.com
> > wrote:
>
>> On Fri, Mar 14, 2014 at 2:36 AM, Johan Tibell <johan.tibell at gmail.com>wrote:
>>
>>> I'm quite worried about this change though. I thought the default rolefor 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.
>>>
>>
>> On Fri, Mar 14, 2014 at 6:00 AM, Brandon Allbery <allbery.b at gmail.com>
>>  wrote:
>>
>> *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.
>>>
>>
>> Am I reading these pair of statements correctly? It seems to imply to me
>> that *every* parameterized type that uses a type constraint on a
>> parameter *must* be reviewed and possibly annotated to work correctly,
>> one way or the other!
>>
>
> No; if the default is representational, everything works as it did in
> earlier versions, potential bugs/unsafety and all. If the default is
> immediately switched to nominal, *then* every affected type must be
> reviewed immediately. My counter-proposal was to have 7.8 default to
> representational to give library maintainers a release cycle to add the
> necessary annotations, then switch the default to nominal in 7.10 to get
> the additional safety.
>

By the way, since I suspected (and was subsequently proved out) that
appropriate warnings are difficult, perhaps there should be some mechanism
to specify to ghc 7.8 whether a compile should default to representational
or nominal so that authors have a way to test their code / look for
problems.

-- 
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/20140324/2c67d359/attachment-0001.html>


More information about the Libraries mailing list