[GHC] #15828: Type family equation foralls allow strange re-quantification of class-bound type variables

GHC ghc-devs at haskell.org
Fri Nov 30 10:44:16 UTC 2018


#15828: Type family equation foralls allow strange re-quantification of class-bound
type variables
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Compiler          |              Version:  8.7
      Resolution:                    |             Keywords:  TypeFamilies
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
                                     |  rename/should_fail/T15828
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D5283
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 > Fix a bug in commit 12eeb9 which permits the following:

 What is 12eeb9?
 {{{
 $ git show 12eeb9
 fatal: ambiguous argument '12eeb9': unknown revision or path not in the
 working tree.
 }}}
 (In an up to date tree.)

 > hy did this fail? It's extremely hard to tell, but it's because the two
 a variables aren't the same!

 Quite true.  So what would we ''like'' to show here?  Once we decide that
 we can think how to achieve it.  (It is perhaps fortunate that there is a
 dedicated pretty-printer for this particular error.)

 I'm quite keen on using "_" for the bits that don't matter, but if needs
 must, instead of printing `(F t1 t2 t3)` with one call, we can make
 separate calls for `t1`, `t2`, `t3` etc, and that would eliminate the need
 to fake-up a tyvar "_" which you'll see in the code.

 Would love to have your help if here if you are willing.

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


More information about the ghc-tickets mailing list