[GHC] #9196: Higher-rank constraint treated as type instead

GHC ghc-devs at haskell.org
Fri Jun 13 17:47:48 UTC 2014


#9196: Higher-rank constraint treated as type instead
-------------------------------------+------------------------------------
        Reporter:  goldfire          |            Owner:
            Type:  bug               |           Status:  patch
        Priority:  normal            |        Milestone:
       Component:  Compiler          |          Version:  7.8.2
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------

Comment (by archblob):

 The patch passes validation and I hope I understood the problem, even if
 that's not the case, at least I got to learn something new.

 Even though the pathological type construction can be detected and stopped
 earlier when checking the type and transforming from HsType to Type, doing
 so would yeild very bad error message, so the patch checks for a bad type
 in `check_valid_type` where the check for the same illegal types happens
 for classes.

 Even so, the type is not printed as the user wrote it, and this could be a
 source of confusion. This could be fixed by considering `ForAllTy` in
 `isPredTy`, but this will brake code because even though in the comments
 about `isPredTy` it is said that it is only used for printing, I found it
 used in places not concerning pretty printing. Even used it in tis patch
 :-P. Maybe there should really be a variation of this function that is
 only used for pretty printing.

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


More information about the ghc-tickets mailing list