[Haskell-cafe] closed classes [was: Re: exceptions vs. Either]
ozone at algorithm.com.au
Thu Aug 12 09:52:29 EDT 2004
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
More information about the Haskell-Cafe