     }
 }
 
+// Run isDisjoint Box switching the order of the two sets.  
+@inline(never)
+func run_SetIsDisjointBoxCommutative(
+    _ a: Set<Box<Int>>,
+    _ b: Set<Box<Int>>,
+    _ r: Bool,
+    _ n: Int) {
+    for _ in 0 ..< n {
+        let isDisjointA = a.isDisjoint(with: identity(b))
+        CheckResults(isDisjointA == r)
+  
+        let isDisjointB = b.isDisjoint(with: identity(a))
+        CheckResults(isDisjointB == r)
+    }
+}
+
 @inline(never)
 func run_SetIsDisjointSeqBox(
     _ a: Set<Box<Int>>,

    runFunction: { n in run_SetIsDisjointBox(setOAB, setOCD, true, 50 * n) },
    tags: [.validation, .api, .Set],
    setUpFunction: { blackHole([setOAB, setOCD]) }),
  BenchmarkInfo(
    name: "Set.isDisjoint.Int25",
    runFunction: { n in run_SetIsDisjointInt(setB, setAB, false, 5000 * n) },

let setCD = Set(size ..< 2 * size)                       // 400 ..< 800
let setBC = Set(size - quarter ..< 2 * size - quarter)   // 300 ..< 700
let setB = Set(size - quarter ..< size)                  // 300 ..< 400
let setCDS = Set(size ..< (size + (size/4)))             // 400 ..< 500

let setOAB = Set(setAB.map(Box.init))
let setOCD = Set(setCD.map(Box.init))
let setOBC = Set(setBC.map(Box.init))
let setOB = Set(setB.map(Box.init))
let setOCDS = Set(setCDS.map(Box.init))

let countA = size - quarter        // 300
let countB = quarter               // 100
