[Haskell] ANN: monadLib 2.0

Udo Stenzel u.stenzel at web.de
Wed Mar 22 13:33:06 EST 2006


Iavor Diatchki wrote:
> > >> whenM :: Monad m => m Bool -> m a -> m ()
> 
> I see some benefit to
> writing an explicit 'return ()', because it becomes more obvious that
> we are ignoring the (meaningful, that is not ()) result of a
> computation.

What about this?

*> when :: Monad m => m a -> Bool -> m (Maybe a)

It doesn't ignore any meaningful result, ignoring the (Maybe a) would be
explicit through the use of (>>).  The arguments are swapped, so it can
more easily replace whenM:

*> whenM p a ~~ p >>= when a

Granted, it reads clumsily.  Maybe there's a place for whenM.  I still
like the swapped arguments, as the infix version will read more natural.


Udo.

PS:
> I am not sure why you think that class hierarchies don't matter to
> programmers.  In fact Java programmers seem to like them a lot.

They probably don't have anything else to like about their language ;-)
-- 
Never argue with an idiot. They drag you down to their level,
then beat you with experience.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org//pipermail/libraries/attachments/20060322/0ee913e4/attachment.bin


More information about the Libraries mailing list