On 12/08/2004, at 11:05 PM, Simon Peyton-Jones wrote:
module M where
class C a where op :: a -> a
instance C Int where op x = x+1
f x = Just (op x)
Under your proposal, I'd infer f :: Int -> Maybe Int, on the grounds that C is closed and there is only one instance.
If I'm reading Keean's posts right, that's exactly his point: if you only have one instance of class C, then it's valid to improve f's type to :: Int -> Maybe Int, right?
If, on the other hand, you had another instance (e.g. instance C Bool), then the signature of f would have to remain polymorphic.
-- % Andre Pang : trust.in.love.to.save
_______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe