[Haskell-cafe] Monad with limited backtracking