The free MonadPlus defined as
data Free f a = Pure a | Free (f (Free f a)) | Plus [Free f a]
was removed in free 4.6 with the following remark (changelog):
Removed
Control.MonadPlus.Free
. UseFreeT f []
instead and the result will be law-abiding.
What was the problem, in particular, what laws didn't hold?
See Question&Answers more detail:os