     }
     
     public static var zero: CGRect { return CGRect() }
+    
+    public static var null: CGRect { return CGRect(x: .nan, y: .nan, width: .nan, height: .nan) }
     
     // MARK: - Accessors
     

    }
    
    /// Returns the intersection of two rectangles.
    public func intersection(_ other: CGRect) -> CGRect? {
        
        var r1 = self
        var r2 = other

            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 .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)
