   }
 }
 
+extension CGPoint : Equatable {}
 public func == (lhs: CGPoint, rhs: CGPoint) -> Bool {
   return lhs.x == rhs.x  &&  lhs.y == rhs.y
 }
 
 
-public extension CGSize : Equatable {
+public extension CGSize {
   static var zeroSize: CGSize { return CGSize(width: 0, height: 0) }
 
   init() {

  }
}

public func == (lhs: CGSize, rhs: CGSize) -> Bool {
  return lhs.width == rhs.width  &&  lhs.height == rhs.height
}


public extension CGVector : Equatable {
  static var zeroVector: CGVector { get { return CGVector(0, 0) } }

  init(_ dx: CGFloat, _ dy: CGFloat) {

  }
}

extension CGRect : Equatable {}
public func == (lhs: CGRect, rhs: CGRect) -> Bool {
  return CGRectEqualToRect(lhs, rhs)
}
