On Mon, Mar 24, 2014 at 10:44 AM, Mark Lentczner <mark.lentczner@gmail.com> wrote:
On Mon, Mar 24, 2014 at 7:28 AM, Brandon Allbery <allbery.b@gmail.com> wrote:
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.

This is unworkable. How much conditional code do you want library writers to have to have? Library writers strive to have code which works with n prior releases where n is commonly 3. Having code that works with 7.6, 7.8, and 7.10 would be a nighmare!

No? Immediately switching to nominal requires those annotations immediately. No immediate change is needed if we keep the current default; if you have problems with conditional code, you will have them no matter what with roles --- the only question is when. Also see SPJ's response.
 
On Mon, Mar 24, 2014 at 7:32 AM, Brandon Allbery <allbery.b@gmail.com> wrote:

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. 

Also unworkable... now we need a conditional flag for the state of the default so the code can
be written to work with either based on a GHC flag? And how is that supposed to work with

Nope; in fact, code containing this flag should be rejected by hackage the same way some other options are rejected. It exists ONLY to help library authors with the transition, and should never be used with released code, only for maintainer debugging/testing.

It would be nice if it could be forced to only work in sandboxes, but that would require a rather unhealthy level of ghc / cabal-install interaction. I expect such testing will end up requiring hsenv. There's just no good way of handling this whole role annotations thing; it's a massive sledgehammer.

--
brandon s allbery kf8nh                               sine nomine associates
allbery.b@gmail.com                                  ballbery@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net