 public struct CGRect {
     public var origin: CGPoint
     public var size: CGSize
-    @transparent public init() {
+    @_transparent public init() {
         self.origin = CGPoint()
         self.size = CGSize()
     }
-    @transparent public init(origin: CGPoint, size: CGSize) {
+    @_transparent public init(origin: CGPoint, size: CGSize) {
         self.origin = origin
         self.size = size
     }

    /// 32-bit architectures and Double on 64-bit architectures.
    /// We assume 64 bit for now
    public typealias NativeType = Double
    @transparent public init() {
        self.native = 0.0
    }
    @transparent public init(_ value: Float) {
        self.native = NativeType(value)
    }
    @transparent public init(_ value: Double) {
        self.native = NativeType(value)
    }
    /// The native value.

public struct CGSize {
    public var width: CGFloat
    public var height: CGFloat
    @_transparent public init() {
        self.width = CGFloat()
        self.height = CGFloat()
    }
    @_transparent public init(width: CGFloat, height: CGFloat) {
        self.width = width
        self.height = height
    }
