         guard !reservedTypes.contains(s) else { return s + "Type" }
         return s.swiftName
     }
-    
+
+    /// return a verbatim, idiomatic swift representation of an identifier string (escaped if necessary)
+    var swiftVerbatimIdiomatic: String {
+        if let s = castableScalars[self] { return s }
+        if let s = castablePointers[self] { return s }
+        if let s = swiftVerbatimIdiomaticReplacements[self] { return s }
+        let s = swiftType
+        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

//  gir2swift
//
//  Created by Rene Hexel on 29/04/2016.
//  Copyright © 2016, 2017, 2018, 2019 Rene Hexel. All rights reserved.
//
#if os(Linux)
    import Glibc

        return swiftIdentifier
    }

    /// 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
    }

