         } else {
             let rhsInLhs = rhs.converted(to: lhs.unit)
             return lhs.value < rhsInLhs.value
-        }
-    }
-
-    /// Compare two measurements of the same `Dimension`.
-    ///
-    /// If `lhs.unit == rhs.unit`, returns `lhs.value > rhs.value`. Otherwise, converts `rhs` to the same unit as `lhs` and then compares the resulting values.
-    /// - returns: `true` if `lhs` is greater than `rhs`.
-    public static func >(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
-        if lhs.unit == rhs.unit {
-            return lhs.value > rhs.value
-        } else {
-            let rhsInLhs = rhs.converted(to: lhs.unit)
-            return lhs.value > rhsInLhs.value
-        }
-    }
-
-    /// Compare two measurements of the same `Dimension`.
-    ///
-    /// If `lhs.unit == rhs.unit`, returns `lhs.value < rhs.value`. Otherwise, converts `rhs` to the same unit as `lhs` and then compares the resulting values.
-    /// - returns: `true` if `lhs` is less than or equal to `rhs`.
-    public static func <=(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
-        if lhs.unit == rhs.unit {
-            return lhs.value <= rhs.value
-        } else {
-            let rhsInLhs = rhs.converted(to: lhs.unit)
-            return lhs.value <= rhsInLhs.value
-        }
-    }
-
-    /// Compare two measurements of the same `Dimension`.
-    ///
-    /// If `lhs.unit == rhs.unit`, returns `lhs.value >= rhs.value`. Otherwise, converts `rhs` to the same unit as `lhs` and then compares the resulting values.
-    /// - returns: `true` if `lhs` is greater or equal to `rhs`.
-    public static func >=(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
-        if lhs.unit == rhs.unit {
-            return lhs.value >= rhs.value
-        } else {
-            let rhsInLhs = rhs.converted(to: lhs.unit)
-            return lhs.value >= rhsInLhs.value
         }
     }
 }

    public static func <(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
        return lhs.value < rhs.value
    }

    /// Compare two measurements of the same `Unit`.
    /// - note: This function does not check `==` for the `unit` property of `lhs` and `rhs`.
    /// - returns: `lhs.value > rhs.value`
    public static func >(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
        return lhs.value > rhs.value
    }

    /// Compare two measurements of the same `Unit`.
    /// - note: This function does not check `==` for the `unit` property of `lhs` and `rhs`.
    /// - returns: `lhs.value <= rhs.value`
    public static func <=(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
        return lhs.value <= rhs.value
    }

    /// Compare two measurements of the same `Unit`.
    /// - note: This function does not check `==` for the `unit` property of `lhs` and `rhs`.
    /// - returns: `lhs.value >= rhs.value`
    public static func >=(lhs: Measurement<UnitType>, rhs: Measurement<UnitType>) -> Bool {
        return lhs.value >= rhs.value
    }
}

// Implementation note: similar to NSArray, NSDictionary, etc., NSMeasurement's import as an ObjC generic type is suppressed by the importer. Eventually we will need a more general purpose mechanism to correctly import generic types.

        return Measurement(value: lhs / rhs.value, unit: rhs.unit)
    }

    /// Compare two measurements of the same `Dimension`.
    ///
    /// If `lhs.unit == rhs.unit`, returns `lhs.value == rhs.value`. Otherwise, converts `rhs` to the same unit as `lhs` and then compares the resulting values.
    /// - returns: `true` if the measurements are equal.
    public static func ==(_ lhs: Measurement<UnitType>, _ rhs: Measurement<UnitType>) -> Bool {
        if lhs.unit == rhs.unit {
            return lhs.value == rhs.value
        } else {
            let rhsM = rhs as NSMeasurement
            if rhsM.canBeConverted(to: lhs.unit) {
                return lhs.value == rhsM.converting(to: lhs.unit).value
            } else {
                return false
            }
        }
    }

    /// Compare two measurements of the same `Unit`.
