[Haskell-cafe] Why do I have to specify (Monad m) here
again?
David Tolpin
david.tolpin at gmail.com
Sun Feb 18 11:19:14 EST 2007
>> which would't hurt if GHC would infer m beeing a monad automatically?
>
> it is more explicit. for example, this simplifies understanding of
> error messages generated by compiler. and, if you change 'class'
> declaration, this will not silently change meaning of 'instance' declaration
>
Hello Bulat,
do you mean that the fact that one must keep class and instance declaration in agreement manually is an advantage and not just a limitation of the Haskell type system? Why then not just require that all constraints be declared explicitly. The following code compiles: is it a bad thing that it does?
class (Eq a) => Eql a where
(=:=) :: a -> a -> Bool
x =:= y = x == y
eql :: Eql a => a -> a -> Bool
eql x y = x == y
David
More information about the Haskell-Cafe
mailing list