We need to add role annotations for 7.8

Brandon Allbery allbery.b at gmail.com
Mon Mar 24 14:28:06 UTC 2014

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.

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/d188fd94/attachment.html>

More information about the Libraries mailing list