But, on my side, BackT [BackPoint 1] and BackT [NoBack 1] can be made indistinguishable outside the code where the monad is defined. Probably the effect required is not possible without breaking the law
2012/3/31 Ross Paterson <r...@soi.city.ac.uk>: > On Wed, Mar 28, 2012 at 01:34:29AM +0100, Alberto G. Corona wrote: >> In my package MFlow [1] I program an entire web navigation in a >> single procedure. That happened in the good-old WASH web application >> framework. >> The problem is the back button in the Browser. >> To go back in the code to the previous interactions when the data >> input does not match the expected because the user pressed the back >> button one or more times, i came across this Monad specimen,: that >> solves the problem. > > This definition does not satisfy the right identity law (m >>= return = m) > included in the monad definition: > > *FailBack> BackT [BackPoint 1] >>= return > BackT [NoBack 1] > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe