funny type inference error with ghc7.6rc1

Carter Schonwald carter.schonwald at gmail.com
Fri Aug 17 20:00:32 CEST 2012


Hey All,

When playing with the current hackage versions of Epic and Idris to make
them play nice with ghc7.6rc1

http://hackage.haskell.org/package/idris-0.9.2.1
and
http://hackage.haskell.org/package/epic-0.9.3    (current version on github
now builds on ghc 7.6, https://github.com/edwinb/EpiVM)

I ran into some funny type inference problems. Namely, using
the idris-0.9.2.1  source and iteratively seeing how ghc complains,
I repeated found that ghc would infer extraneous class constraints with
variables that don't appear in the function type!

eg (Num a, Ord a) => PArg -> Doc, when the *correct* type to infer
would  be PArg -> Doc.
heres some gists with links to more info
https://gist.github.com/3365312
https://gist.github.com/3365073
https://gist.github.com/3364775

Anyways, I'm not sure what to make of this, is this a reasonable artifact
of  type inference getting confused on functions with a large number of
case analyses when various typeclass extensions are enabled? Or  Is this a
bug in terms of what inference should be able to handle?

Just to be clear, when I add the infererred type ascriptions without the
type class constraint, everything type checks in those modules. So my
confusion is why the inference adding those unused class constraint
variables!

thanks all,
-Carter
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20120817/2d7edd01/attachment.htm>


More information about the Glasgow-haskell-users mailing list