[GHC] #9580: Possible excessive leniency in interaction between coerce and data families?

GHC ghc-devs at haskell.org
Fri Sep 19 12:10:30 UTC 2014


#9580: Possible excessive leniency in interaction between coerce and data
families?
-------------------------------------+-------------------------------------
              Reporter:  dmcclean    |            Owner:  simonpj
                  Type:  bug         |           Status:  closed
              Priority:  low         |        Milestone:
             Component:  Compiler    |          Version:  7.8.3
  (Type checker)                     |         Keywords:
            Resolution:  fixed       |     Architecture:  Unknown/Multiple
      Operating System:              |       Difficulty:  Unknown
  Unknown/Multiple                   |       Blocked By:
       Type of failure:              |  Related Tickets:
  None/Unknown                       |
             Test Case:  indexed-    |
  types/should_fail/T9580            |
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------

Comment (by dmcclean):

 Thanks for fixing it!

 I just have one followup question. One reason the coercion shouldn't have
 worked is because the newtype constructor wasn't in scope.

 But, with the newtype constructor in scope, should it be coercible or not?
 I thought that it should still not be, because the data family's role
 signature has all nominal arguments. The newtype instance happens to use
 its argument in a representational way, but should that property of the
 definition be visible when "looking through" the data family?

 (It may be the case that one of your refactoring changes addresses this, I
 don't understand most of those comments.)

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


More information about the ghc-tickets mailing list