As with the `elif left == right` clause above there is an assumption that neither `left` nor `right` are `numpy` arrays that might be broadcasted, or more generally that something like `left == right` is something that has scalar boolean context.  Both of the new `elif` clauses will give a `ValueError` for an `np.array` input.  That's sort of why this routine was intentionally a bit crippled, because for arbitrary inputs you need to be careful.

In any case it might be OK to put some of these other tests in a try/except block to fail through to a `MergeConflictError` if any exception gets raised.