[GHC] #15828: Type family equation foralls allow strange re-quantification of class-bound type variables
GHC
ghc-devs at haskell.org
Fri Nov 30 01:02:26 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: |
-------------------------------------+-------------------------------------
Changes (by RyanGlScott):
* cc: simonpj (added)
* status: closed => new
* resolution: fixed =>
Comment:
Hm... I might have been a little too hasty in closing this ticket. This
patch was undoubtedly an improvement over the status quo, as we now throw
a proper error instead of silently accepting the original program.
However, the error message leaves something to be desired:
{{{
T15828.hs:9:3: error:
• Type indexes must match class instance head
Expected: T (Maybe a) _
Actual: T (Maybe a) b -- Defined at T15828.hs:9:20
• In the type instance declaration for ‘T’
In the instance declaration for ‘C (Maybe a)’
}}}
Why did this fail? It's extremely hard to tell, but it's because the two
`a` variables aren't the same! I suspect that we're missing some necessary
tidying here.
Simon, this behavior appears to be new as of your commit
2257a86daa72db382eb927df12a718669d5491f8 (`Taming the Kind Inference
Monster`). In particular, this change looks suspicious:
{{{#!diff
+ pp_expected_ty = pprIfaceType (toIfaceType (mkTyConApp fam_tc
expected_args))
+ -- Do /not/ tidy, because that will rename all those
"_"
+ -- variables we have put in. And (I think) the
intance type
+ -- is already tidy
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15828#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list