> I encountered a confusing error message, which you can
> reproduce with 
> 
>   type P a = Maybe a
> 
>   instance Monad P where
>     (>>=)  = error "foo"
>     return = error "bar"
> 
> I get 
> 
>   bug.hs:5: `P' should have 1 argument, but has been given 0 .

Would it be better if it said 

        Type synonym constructor P should have 1 argument,
        but has been given 0

Haskell requires that type synonyms are never partially applied;
that's what's being complained about here.

If you did fully apply it, GHC 3.1 (without -fglasow-exts) would
then complain about making an instance of a type synonym.
At the moment, though, it trips over the mal-formed type expression first.

Does that make sense?  Any suggestions for improving the error
message in a way that would have made sense to you at the time?

Simon


Reply via email to