 
     init(payloadOf name: String) {
       self.details = .constructorPayload(name)
+    }
+
+    init(loweredType ty: GIRType) {
+      self.details = .loweredType(ty)
     }
 
     static func == (lhs: CacheKey, rhs: CacheKey) -> Bool {

    let info = self.lower(type)
    self.loweringCache[key] = info
    self.loweringCache[resolvedKey] = info
    return info
  }


      case meta(Meta)
      case nominal(String)
      case constructorPayload(String)
      case loweredType(GIRType)
    }
    private let details: Details

