     ///   - rhs: The given value.
     /// - Returns: The resulting vector.
     @inlinable
-    public static func / (lhs: CGVector, rhs: Int) -> CGVector {
-       return lhs / CGFloat(rhs)
+    static func /<I: BinaryInteger>(lhs: CGVector, rhs: I) -> CGVector {
+       lhs / CGFloat(rhs)
     }
     
     /// Divides a vector by the given value.

    ///   - rhs: The given value.
    /// - Returns: The resulting vector.
    @inlinable
    public static func * (lhs: CGVector, rhs: Double) -> CGVector {
        return lhs * CGFloat(rhs)
    }
    
    /// Multiplies a vector by the given value.

    ///   - rhs: The given value.
    /// - Returns: The resulting vector.
    @inlinable
    static func /<F:BinaryFloatingPoint>(lhs: CGVector, rhs: F) -> CGVector {
        lhs / CGFloat(rhs)
    }
    
    /// Divides a vector by the given value.
