         return swiftIdentifier
     }
 
-    /// return a valid Swift type for an underlying C type
+    /// return a valid, idiomatic Swift type for an underlying C type
+    var swiftTypeIdiomatic: String {
+        if let s = swiftIdiomaticReplacements[self] { return s }
+        return swiftIdentifier
+    }
+    
+    /// return a valid, verbatim Swift type for an underlying C type
     var swiftTypeVerbatim: String {
         if let s = swiftVerbatimReplacements[self] { return s }
         return swiftIdentifier
     }
     
+    /// return an idiomatic, verbatim Swift type for an underlying C type
+    var swiftTypeVerbatimIdiomatic: String {
+        if let s = swiftVerbatimIdiomaticReplacements[self] { return s }
+        return swiftIdentifier
+    }
+
     /// return a valid Swift name by appending '_' to a reserved name
     var swiftName: String {
         guard !reservedNames.contains(self) else { return self + "_" }
+        return swiftIdentifier
+    }
+
+    /// return a valid Swift name by quoting a reserved name
+    var swiftQuoted: String {
+        guard !reservedNames.contains(self) else { return "`" + self + "`" }
         return swiftIdentifier
     }
 

        guard !reservedTypes.contains(s) else { return s + "Type" }
        return s.swiftName
    }
    
    /// indicate whether the type represented by the receiver is a constant
    var isCConst: Bool {
        let ns = trimmed

        return s.swiftName
    }

    /// return an idiomatic swift representation of an identifier string (escaped if necessary)
    var swiftIdiomatic: String {
        if let s = castableScalars[self] { return s }
        if let s = castablePointers[self] { return s }
        if let s = swiftIdiomaticReplacements[self] { return s }
        let s = swiftType
        guard !reservedTypes.contains(s) else { return s + "Type" }
        return s.swiftName
    }
    
    /// return a verbatim swift representation of an identifier string (escaped if necessary)
    var swiftVerbatim: String {
        if let s = castableScalars[self] { return s }
        if let s = castablePointers[self] { return s }
