x :> y succeeds, we know that that
y without any conflicts. This function is useful for patch types
commute is defined to always succeed; so we need some way to
pick out the specific cases where commutation succeeds without any conflicts.