[GHC] #9443: Regression from 7.6.3 to 7.8.3: could not coerce because argument "has role Nominal"

GHC ghc-devs at haskell.org
Thu Aug 14 21:27:22 UTC 2014


#9443: Regression from 7.6.3 to 7.8.3: could not coerce because argument "has role
Nominal"
-------------------------------------+-------------------------------------
              Reporter:  bernalex    |            Owner:
                  Type:  bug         |           Status:  new
              Priority:  normal      |        Milestone:
             Component:  Compiler    |          Version:  7.8.3
            Resolution:              |         Keywords:
      Operating System:              |     Architecture:  x86_64 (amd64)
  Unknown/Multiple                   |       Difficulty:  Unknown
       Type of failure:  GHC         |       Blocked By:
  rejects valid program              |  Related Tickets:
             Test Case:              |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by haasn):

 I agree that the class definition you gave should not be allowed. The bug
 as presented here is a very special case, namely the case where we have:

 {{{
 class C a where
   meth :: C a => a -> a
 }}}

 This constraint is redundant because the context already implies it. So a
 fix for this issue would ''not'' necessarily imply allowing instance
 coercions in general - it would only allow instance coercions in the
 context of an instance coercion for that same instance, which is a rather
 minor detail.

 If this can be fixed easily, that's good; but if it can't, I don't think
 there's much of a loss.

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


More information about the ghc-tickets mailing list