Anomalous Class Fundep Inference

Ashley Yakeley ashley@semantic.org
Sun, 8 Apr 2001 03:07:11 -0700


In Hugs 98 Feb2001 (as hugs -98), this piece of code gives an error:

--
class X a b | a -> b where x :: a;
class (X a b) => Y a b | a -> b where y :: a;
instance (X a b) => Y a b where y = x;
instance (Num a) => X a a where x = 0; -- line A
--instance X Int Int where x = 0; -- line B
--

Reading file "Bug.hs":
Type checking      
ERROR Bug.hs:3 - Inferred type is not general enough
*** Expression    : y
*** Expected type : Y a b => a
*** Inferred type : Y a a => a


However, if I replace line A with line B, it compiles. Is this correct, 
or is it a bug in Hugs?

Sooner or later I should install GHC for Mac OS X...

-- 
Ashley Yakeley, Seattle WA