 	}
 	
 	func angleFrom(point: CGPoint) -> CGFloat {
-		return acos(self.cosOfAngleFrom(point))
+		return acos(cosOfAngleFrom(point))
 	}
 	
 	func cosOfAngleFrom(point: CGPoint) -> CGFloat {


extension CGPoint {
	var description: String {
		return "(\(self.x), \(self.y))"
	}
	
	var length: CGFloat {
		return sqrt(self.squareLength)
	}
	
	var squareLength: CGFloat {
		return sqrt(self.squareLength)
	}
	
	var unit: CGPoint {
		return self * (1.0 / self.length)
	}
	
	var phase: CGFloat {
		return atan2(self.y, self.x)
	}
	
	func distanceFrom(point: CGPoint) -> CGFloat {

	return CGPointEqualToPoint(left, right)
}

func += (inout left: CGPoint, right: CGPoint) {
	left = left + right
}

func -= (inout left: CGPoint, right: CGPoint) {
	left = left - right
}

func *= (inout left: CGPoint, right: CGFloat) {
	left = left * right
}

func /= (inout left: CGPoint, right: CGFloat) {
	left = left / right
}

extension CGAffineTransform {
	var inverse: CGAffineTransform {
		return CGAffineTransformInvert(self)
