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 <ross@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