[GHC] #10789: Notify user when a kind mismatch holds up a type family reduction
GHC
ghc-devs at haskell.org
Mon Jun 18 08:40:09 UTC 2018
#10789: Notify user when a kind mismatch holds up a type family reduction
-------------------------------------+-------------------------------------
Reporter: goldfire | Owner: v0d1ch
Type: feature request | Status: new
Priority: normal | Milestone: 8.8.1
Component: Compiler | Version: 7.10.2
Resolution: | Keywords: newcomer,
| TypeFamilies
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #13192 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
Sasa asks (on ghc-devs)
With the help of @int_index I found the place in TcErrors.hs where the
error printing occurs and I think the check that I need to add will look
similar to this one
https://github.com/ghc/ghc/blob/master/compiler/typecheck/TcErrors.hs#L1935.
So I guess that we need to check if one of the kinds of two types we are
comparing defaults to * (or Type if you will) and then add new warning
that will be more descriptive as to why the failure happened. Maybe there
is a way to check if what we are comparing are actually type families so
that would make the job easier I guess.
Richard replies
I don't think the problem is particular to `Type` or defaulting.
Instead, the problem is when
* one of the two mismatched types is a type family application
* and the type family has equations that pattern-match on an invisible
parameter,
* and it's that invisible-parameter matching that's gone awry.
Now that I think about it, detecting these particular conditions might
be tricky: you might need to edit code in `FamInstEnv` that does type
family equation lookup to return diagnostic information if a match fails.
(I would look at `reduceTyFamApp_maybe`, and perhaps it can return
something more interesting than Nothing in the failure case.)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10789#comment:18>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list