             r2.origin.x + r2.size.width <= r1.origin.x ||
             r1.origin.y + r1.size.height <= r2.origin.y ||
             r2.origin.y + r2.size.height <= r1.origin.y) == false
-            else { return nil }
+            else { return .null }
         
         rect.origin.x = (r1.origin.x > r2.origin.x ? r1.origin.x : r2.origin.x)
         rect.origin.y = (r1.origin.y > r2.origin.y ? r1.origin.y : r2.origin.y)

    }
    
    public static var zero: CGRect { return CGRect() }
    
    // MARK: - Accessors
    

    /// Returns whether a rectangle has zero width or height, or is a null rectangle.
    public var isEmpty: Bool {
        
        return size.width == 0
            || size.height == 0
            || isNull
    }
    
    /// Returns whether the rectangle is equal to the null rectangle.
    public var isNull: Bool {
    
        return origin.x.isNaN
            || origin.y.isNaN
            || size.width.isNaN
            || size.height.isNaN
    }
    
    // MARK: - Methods
