Must mplus always be associative? Haskell wiki vs. Oleg Kiselyov
问题 The Haskell wikibook asserts that Instances of MonadPlus are required to fulfill several rules, just as instances of Monad are required to fulfill the three monad laws. ... The most essential are that mzero and mplus form a monoid. A consequence of which is that mplus must be associative. The Haskell wiki agrees. However, Oleg, in one of his many backtracking search implementations, writes that -- Generally speaking, mplus is not associative. It better not be, -- since associative and non