Hi list,

GHC 6.10.1:

Prelude> :t let f x y = return x == return y in f
let f x y = return x == return y in f :: (Eq (m a), Monad m) => a -> a -> Bool

Hugs (Sep 2006):

Hugs> :t let f x y = return x == return y in f
ERROR - Ambiguous type signature in inferred type
*** ambiguous type : (Eq (a b), Monad a) => b -> b -> Bool
*** assigned to    : f

Who is right?

--
Thanks
Vladimir