Actually, I think the backtracking property here stems more from the MonadPlus StateT instance than from the properties of Maybe. (mplus a b runs a and b by passing explicitely the same state to them).
2012/5/28 Roman Cheplyaka <[email protected]> > * Yves Parès <[email protected]> [2012-05-28 11:28:22+0200] > > > observe $ flip runStateT 10 $ (put 0 >> mzero) <|> modify (+3) > > > ((),13) > > > > If the only thing you need is backtracking, using LogicT might be a > little > > overkill, using Maybe in the bottom of you monad stack suits just fine: > > > > case flip runStateT 10 $ (put 0 >> mzero) <|> modify (+3) of > > Just x -> .... > > Nothing -> .... > > Indeed, I didn't realise that Maybe may be (no pun intended) sufficient > here! > > -- > Roman I. Cheplyaka :: http://ro-che.info/ >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
