Simon Peyton-Jones wrote:
As a trivial example, try

        f a = a |= a

What type shall we infer for f? f :: (Bounded a, Enum a, SemiRing a) => a -> a
or
f :: (CSemiRing a) => a -> a

This has always confused me - GHC always seems to use the strongest possible conditions when inferring types (CSemiRing is stronger than PO because it implies it). Why isn't the type just


        f :: (PO a) => a -> a

? Isn't this the most straight-forward (and universal) typing, especially in the presence of overlapping/undecidable instances?

-Stefan


_______________________________________________ Glasgow-haskell-users mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to