#693 and #687 refer to Strong and Weak Laws for MonadFilter/MonadCombine. In #687 the MonadCombine instance for XorT was commented out as it was unused. It was unused due to the fact that the MonadCombine instance for XorT could not meet some of the laws for MonadFilter, namely: right absorbtion, right distributivity, and left distributivity. #693 will make a similar change for OptionT and reduce the available instance from MonadCombine to Monad.
It is suggested that these need to be separated out into Weak and Strong Laws, at which point an instance, supporting the appropriate weaker laws, can be reinstated for both XorT and OptionT.
#693 and #687 refer to Strong and Weak Laws for
MonadFilter/MonadCombine. In #687 theMonadCombineinstance forXorTwas commented out as it was unused. It was unused due to the fact that theMonadCombineinstance forXorTcould not meet some of the laws forMonadFilter, namely: right absorbtion, right distributivity, and left distributivity. #693 will make a similar change forOptionTand reduce the available instance fromMonadCombinetoMonad.It is suggested that these need to be separated out into Weak and Strong Laws, at which point an instance, supporting the appropriate weaker laws, can be reinstated for both
XorTandOptionT.