I've read all the discussions about number types in Swift, and generally understand the complexity (even if I don't like it, and think that this is one huge area that the smarter people behind Swift could make some big improvements).
This is a much narrower question tho: Why can't we have a seamless bridge between CGFloat and Double? The lack of such makes dealing with Cocoa very annoying with tons of boilerplate and repetition required. I know that the definition of CGFloat is architecture dependent, but presumably the compiler knows what architecture it's compiling for.
At the very least, why can't we get arithmetic operator overrides for CGFloat <-> [swift number types]?
let c = mark.center // a CGPoint
let path = NSBezierPath()
let dx = 4.0;
let dy = 8.0;
path.moveToPoint(CGPoint(x: c.x - dx, y: c.y - dy))
^
results in the error "Binary operator '-' cannot be applied to operands of type 'CGFloat' and 'Double'"
This makes the Type Inference system virtually useless when dealing with Cocoa APIs that expect/return CGFloats.
I know that I can override the operators myself, but... yuck. This feels like something better handled by the Swift team, no?