Sorry to spam you Jeff, again I sent my email to the poster rather than the list.  I'm using Yahoo beta webmail and don't see a way to set it to reply to the list rather than the originator.  Anyway, this was my post:

Hence the need to perform a "run" operation like runIdentity, evalState or runParser (for Parsec) to get something useful to happen.  Except for lists we don't seem to do this.  I suppose lists are so simple that the operators :, ++ and the [] constructor do all we ever need with them.  Finally there is no runIO because "main" is essentially that function in every real program? - Greg

----- Original Message ----
From: Jeff Polakow <jeff.polakow@db.com>
To: lanny@cisco.com
Cc: haskell-cafe-bounces@haskell.org; Haskell-Cafe <haskell-cafe@haskell.org>
Sent: Tuesday, August 14, 2007 8:45:06 AM
Subject: Re: [Haskell-cafe] Explaining monads


One general intuition about monads is that they represent computations rather than simple (already computed) values:

  



Boardwalk for $500? In 2007? Ha!
Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.



Luggage? GPS? Comic books?
Check out fitting gifts for grads at Yahoo! Search.