Failing test case for MonadPlus[FreeT].
Previous version did not work for monads such as Maybe that don't satisfy
left distributivity, i.e.
(a <+> b) >>= f = (a >>= f) <+> (b >>= f)
Perhaps it was not clear, but I consider this ready to be merged (unlike #1275, which I created solely for the purpose of demonstrating the issue).
The key of the fix is to not stop at the first occurrence of M and perform plus on it, but keep evaluating (join-ing Ms) until the first Suspend is reached.
Let me know if you have questions/concerns.