The worst piece of syntax in Haskell

Cale Gibbard cgibbard at
Tue Feb 21 22:58:36 EST 2006

On 21/02/06, Ashley Yakeley <ashley at> wrote:
> Sebastian Sylvan wrote:
> >>Not quite the same complaint, but I've always been bothered by the
> >>inconsistent use of "=>". I would prefer "A => B" to mean "if A, then
> >>B". Accordingly:
> >>
> >>   class Monad m <= MonadPlus m
> >
> >
> > By your definition, couldn't what we have now (class Monad m =>
> > MonadPlus m) be read as "If m is in the Monad class, then the class
> > MonadPlus can be defined for m thusly:...", which seems pretty clear
> > to me.
> Not to me. It's like saying "If f is a piece of furniture, then the set
> of chairs can be defined for f thusly", which seems equally unclear to me.
> If m is in the Monad class... then what? It's not necessarily in the
> MonadPlus class. No useful inference can be drawn this way. What we mean
> to say instead is "if m is in the MonadPlus class, then it is in the
> Monad class".

I can see both points of view here. I think what Sebastian was trying
to say is that it means something along the lines of:
"If m is a Monad, then m is a MonadPlus provided that the following
are implemented."
which is a sensible interpretation. Either way would work.

 - Cale

More information about the Haskell-prime mailing list