[GHC] #8745: GeneralizedNewtypeDeriving is still not Safe

GHC ghc-devs at haskell.org
Wed Feb 12 15:18:33 UTC 2014


#8745: GeneralizedNewtypeDeriving is still not Safe
-------------------------------------------------+-------------------------
        Reporter:  goldfire                      |            Owner:
            Type:  bug                           |           Status:  new
        Priority:  normal                        |        Milestone:
       Component:  Compiler                      |          Version:
      Resolution:                                |  7.8.1-rc1
Operating System:  Unknown/Multiple              |         Keywords:  Safe
 Type of failure:  None/Unknown                  |     Architecture:
       Test Case:                                |  Unknown/Multiple
  should_fail/TcCoercibleFailSafe                |       Difficulty:
        Blocking:                                |  Unknown
                                                 |       Blocked By:
                                                 |  Related Tickets:
-------------------------------------------------+-------------------------

Comment (by goldfire):

 The role annotation story is this: the annotations, if provided, simply
 override defaults (phantom for datatypes, nominal for classes). Then role
 inference happens (annotations or no). If, after inference, the
 annotations disagree with the inferred roles, the annotation is rejected.
 Because it's perfectly type-safe to have a class with a representational
 parameter, the role annotation is accepted and works. This can be useful
 if, say, someone wanted to have something like `Coercible` implemented in
 user-land somehow -- note that `Coercible`'s parameters are
 representational.

 One way forward here is to allow role annotations on classes only when we
 have !IncoherentInstances. In fact, I rather like that solution -- a role
 annotation on a class quickly leads to the possibility of incoherence, and
 this solution also neatly prohibits such annotations in Safe Haskell.
 Thoughts?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8745#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list