[GHC] #8827: Inferring Safe mode with GeneralizedNewtypeDeriving is wrong

GHC ghc-devs at haskell.org
Mon Mar 24 09:00:17 UTC 2014


#8827: Inferring Safe mode with GeneralizedNewtypeDeriving is wrong
-------------------------------------+------------------------------------
        Reporter:  goldfire          |            Owner:
            Type:  bug               |           Status:  new
        Priority:  normal            |        Milestone:  7.10.1
       Component:  Compiler          |          Version:  7.9
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:  8226, 8745
-------------------------------------+------------------------------------

Comment (by simonpj):

 Replying to [comment:31 ekmett]:
 >
 > is somewhat in line with what I've been playing around with to try to
 work out how we can lift coercions over complex data types.

 Edward, I'm not following all the details of your comment here (like where
 is `Coercion` defined?), but it smells to me that you are hitting the the
 main limitation of the system as-implemented, namely the inability to
 abstract over a type constructor with a representational argument.  Eg
 {{{
 data T f a = MkT (f a)
 }}}
 Can I do `Coercible (T f Int) (T f Age)` (where `Age` is a newtype for
 `Int`)?  Only if we are guaranteed that `f` will be instantiated with type
 constructor with representational roles.

 So you want higher-order roles.  We know how to do that, but rejected it
 as Too Complicated.  We could revisit that I guess.

 I may also be misunderstanding your problem.  Perhaps it would help to
 exhibit the simplest case that doesn't work.

 Simon

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


More information about the ghc-tickets mailing list