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 <mail@joachim-breitner.de>wrote:
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