Donald Bruce Stewart wrote:
david:
  
   Ah... so the secret is in the hidden variables.  On some
   level I am beginning to fear that Monads resurrect some of
   the scariest aspects of method overriding from my OO
   programming days.  Do you (all) ever find that the ever
   changing nature of >>= makes code hard to read?
    

You always know which monad you're in though, since its in the type.
And the scary monads aren't terribly common anyway.
  

Also, the monad laws impose a level of sanity that most OO frameworks do not, right?