[GHC] #15621: Error message involving type families points to wrong location
GHC
ghc-devs at haskell.org
Thu Sep 13 07:41:03 UTC 2018
#15621: Error message involving type families points to wrong location
-------------------------------------+-------------------------------------
Reporter: RyanGlScott | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone: 8.6.1
Component: Compiler (Type | Version: 8.4.3
checker) |
Resolution: | Keywords: TypeFamilies
Operating System: Unknown/Multiple | Architecture:
Type of failure: Poor/confusing | Unknown/Multiple
error message | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by simonpj):
> What if there is a Refl :: F Int :~: F Int and a Refl :: F Int :~: F
Bool in the same function?
It's fine. Each type signature will give rise to its own implication
constraint (indeed already does, except that it is optimised away for
signatures that are monotypes).
So I think that #14185 is not a red herring at all!
I agree that there is a tension here. The ''whole point'' of Deriveds,
the only reason they exist, is so that we can more vigorously rewrite
wanteds with wanteds, and thus find equalities that must hold in any
ultimate solution. The trouble is that there may still be a choice of
which unifications to do in which order, and that affects error messages.
I'm proposing our implication constraints as a way to keep the two sub-
problems separate.
(They won't ''stay'' separate, because we'll float out any unsolved
equality constraints - and indeed deliberately so, so that they can meet
friends from other equality constraints and we can learn more equalities
thereby. But they will at least ''begin'' separate.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15621#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list