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.dehttp://www.joachim-breitner.de/
  Jabber: nomeata@joachim-breitner.de  • GPG-Key: 0x4743206C
  Debian Developer: nomeata@debian.org