Merge pull request #8432 from eeckstein/box2stack_v2

diff --git a/benchmark/single-source/DictTest.swift b/benchmark/single-source/DictTest.swift
index 52f9734..e284ef4 100644
--- a/benchmark/single-source/DictTest.swift
+++ b/benchmark/single-source/DictTest.swift
@@ -157,7 +157,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }
diff --git a/benchmark/single-source/DictTest2.swift b/benchmark/single-source/DictTest2.swift
index 98bfc5f..8d24731 100644
--- a/benchmark/single-source/DictTest2.swift
+++ b/benchmark/single-source/DictTest2.swift
@@ -37,7 +37,7 @@
   CheckResults(res == ref_result, "Incorrect results in Dictionary2: \(res) != \(ref_result)")
 }
 
-class Box<T : Hashable> : Hashable where T : Equatable {
+class Box<T : Hashable> : Hashable {
   var value: T
 
   init(_ v: T) {
@@ -48,7 +48,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }
diff --git a/benchmark/single-source/DictTest3.swift b/benchmark/single-source/DictTest3.swift
index ac2feb9..b34c19e 100644
--- a/benchmark/single-source/DictTest3.swift
+++ b/benchmark/single-source/DictTest3.swift
@@ -56,10 +56,7 @@
   }
 }
 
-extension Box : Equatable {
-}
-
-func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
   return lhs.value == rhs.value
 }
 
diff --git a/benchmark/single-source/DictionaryRemove.swift b/benchmark/single-source/DictionaryRemove.swift
index 044fb32..6bca06b 100644
--- a/benchmark/single-source/DictionaryRemove.swift
+++ b/benchmark/single-source/DictionaryRemove.swift
@@ -53,7 +53,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }
diff --git a/benchmark/single-source/DictionarySwap.swift b/benchmark/single-source/DictionarySwap.swift
index 7ab3edf..0a2f389 100644
--- a/benchmark/single-source/DictionarySwap.swift
+++ b/benchmark/single-source/DictionarySwap.swift
@@ -56,7 +56,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }
diff --git a/benchmark/single-source/RGBHistogram.swift b/benchmark/single-source/RGBHistogram.swift
index 52a6c83..a153505 100644
--- a/benchmark/single-source/RGBHistogram.swift
+++ b/benchmark/single-source/RGBHistogram.swift
@@ -124,7 +124,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }
diff --git a/benchmark/single-source/SetTests.swift b/benchmark/single-source/SetTests.swift
index b5521f3..00faea6 100644
--- a/benchmark/single-source/SetTests.swift
+++ b/benchmark/single-source/SetTests.swift
@@ -115,7 +115,7 @@
     return value.hashValue
   }
 
-  static func ==<T: Equatable>(lhs: Box<T>, rhs: Box<T>) -> Bool {
+  static func ==<T>(lhs: Box<T>, rhs: Box<T>) -> Bool {
     return lhs.value == rhs.value
   }
 }