         (hasParent ? "" : (
             "/// Untyped pointer to the underlying `\(ctype)` instance.\n" + indentation +
             "/// For type-safe access, use the generated, typed pointer `\(ptr)` property instead.\n" + indentation +
-            "public let ptr: UnsafeMutableRawPointer\n\n" + indentation)
+            "public let ptr: UnsafeMutableRawPointer!\n\n" + indentation)
         ) +
         "/// Designated initialiser from the underlying `C` data type.\n" + indentation +
         "/// This creates an instance without performing an unbalanced retain\n" + indentation +

        subTypeAliases + indentation +
        "/// Untyped pointer to the underlying `\(ctype)` instance.\n" + indentation +
        "/// For type-safe access, use the generated, typed pointer `\(ptr)` property instead.\n" + indentation +
        "public let ptr: UnsafeMutableRawPointer\n" +
    "}\n\n" +
    "public extension \(structName) {\n" + indentation +
        "/// Designated initialiser from the underlying `C` data type\n" + indentation +

        "/// This creates an instance without performing an unbalanced retain\n" + indentation +
        "/// i.e., ownership is transferred to the `\(className)` instance.\n" + indentation +
        "/// - Parameter op: pointer to the underlying object\n" + indentation +
        "@inlinable public init(_ op: UnsafePointer<\(ctype)>) {\n" + doubleIndentation +
            (hasParent ? "super.init(constPointer: op)\n" : "ptr = UnsafeMutableRawPointer(UnsafeMutablePointer(mutating: op))\n") + indentation +
        "}\n\n") + (indentation +
        "/// Optional initialiser from a constant pointer to the underlying `C` data type.\n" + indentation +
