     let n = Int(1e2 + 1)
     let h = (left.b - left.a) / Double(n)
 
-    return (h / 3.0) * (reduce(1..<n, right(left.a)) {
+    return (h / 3.0) * (1 ..< n).reduce(right(left.a)) {
         let coefficient = $1 % 2 == 0 ? 4.0 : 2.0
         return $0 + coefficient * right(left.a + Double($1) * h)
-    } + right(left.b))
+    } + right(left.b)
 }
 
 // MARK: Indefinite Integral / Antiderivative

// MARK: Nth Derivative

infix operator ′ { associativity left }
func ′(var left: (Double -> Double), right: UInt) -> (Double) -> (Double) {
    return reduce(0..<right, left) { (function, _) in
        return function′
    }
}


prefix operator ∑ {}
prefix func ∑ (values: [Double]) -> Double {
    return values.reduce(0.0, combine: +)
}

// MARK: Cartesian Product

prefix operator ∏ {}
prefix func ∏ (values: [Double]) -> Double {
    return values.reduce(1.0, combine: *)
}

// MARK: - Vectors -
