 // [Closed]Range and [Closed]CountableRange.
 
 public protocol ClosedRangeProtocol : RangeProtocol {}
+
+@warn_unused_result
+public func == <
+  LHS : ClosedRangeProtocol, RHS : ClosedRangeProtocol 
+  where LHS.Bound == RHS.Bound
+>(lhs: LHS, rhs: RHS) -> Bool {
+  return
+    lhs.lowerBound == rhs.lowerBound &&
+    lhs.upperBound == rhs.upperBound
+}
 
 extension ClosedRangeProtocol {
   @inline(__always)

  }
}

@warn_unused_result
public func == <Bound>(
  lhs: CountableClosedRange<Bound>,
  rhs: CountableClosedRange<Bound>
) -> Bool {
  return
    lhs.lowerBound == rhs.lowerBound &&
    lhs.upperBound == rhs.upperBound
}

/// A collection of consecutive discrete index values.
///
/// - parameter Element: Is both the element type and the index type of the

  }
}

/// Returns a closed range that contains `minimum` and
/// `maximum`.
///
