On Wed, Jan 26, 2011 at 6:10 PM, David Menendez <dave@zednenem.com> wrote:
In the case of MaybeT, it isn't an optimization. It's a different
function. Using your proposed definition, we get:

*Main> flip runState 0 . runMaybeT $ mzero <*> lift (put 1)
(Nothing,1)
*Main> flip runState 0 . runMaybeT $ mzero `ap` lift (put 1)
(Nothing,0)
 
Good catch.

-Edward