
Hi,
oh, I didn't realize that you meant using HEAD.
I'd guess that the new behavior is a result of the changes Simon made to
the constraint solver a little while ago (maybe about a month ago?).
I haven't had a chance to look at the code yet, but I believe he eliminated
some constraint interactions, which did not contribute towards
type-checking more programs, but lead to more confusing error messages.
By the way, I am not sure that this is a regression---I kind of like new
the new behavior. For my second example we get:
test.hs:9:8:
No instance for (C Bool Float) arising from a use of ‛op’
In the expression: op True :: Float
In an equation for ‛test’: test = op True :: Float
This tells us exactly what the problem is, namely the missing instance,
without going into stuff about functional dependencies. I guess we _could_
also say that such an instance can't exist because of the other instance
and the functional dependency, but I am not sure how relevant that is...
-Iavor
On Tue, Dec 3, 2013 at 1:40 PM, Joachim Breitner
Hi,
Am Dienstag, den 03.12.2013, 11:08 -0800 schrieb Iavor Diatchki:
Here is a piece of code that produces the desired error:
[..]
The `DataKinds` and `KindSigantures` are only used to match your example closely. Here is a simpler version that causes essentially the same error:
[..]
thanks for these examples. Both, though, give different error messages in GHC HEAD. I’m more and more confident that this is an inadvertent error message, see https://ghc.haskell.org/trac/ghc/ticket/8592
Once that is sorted out, I’ll make sure these examples (or at least a representative one) makes it into the testsuite.
Greetings, Joachim
-- Joachim “nomeata” Breitner mail@joachim-breitner.de • http://www.joachim-breitner.de/ Jabber: nomeata@joachim-breitner.de • GPG-Key: 0x4743206C Debian Developer: nomeata@debian.org