The monad laws in the report are an aid to understanding the
relationships between the monadic functions.  I don't think any
Haskell compiler attempts to optimize method calls based on laws (or
whatever you want to call them) that would constrain the behavior of
all instances of a particular class.  The report states that new
monadic instances `should' obey the given laws, but only at the
expense of confusing users.  

The next report could certainly add or modify these laws to make this
section clearer.

  John



Reply via email to