> 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