Swapable and SwapableMonadPlus