       let vars = seguesWithInfoForSourceType.map { segueWithInfo -> Var in
         let type = Type(
           name: "StoryboardSegue",
-          genericArgs: [segueWithInfo.segue.type.fullyQualifiedName, segueWithInfo.sourceType.fullyQualifiedName, segueWithInfo.destinationType.fullyQualifiedName],
+          genericArgs: [segueWithInfo.segue.type.description, segueWithInfo.sourceType.description, segueWithInfo.destinationType.description],
           optional: false
         )
         return Var(


  let deduplicatedSeguesWithInfo = seguesWithInfo
    .groupBy { segue, sourceType, destinationType in
      "\(segue.identifier)|\(segue.type.hashValue)|\(sourceType.hashValue)|\(destinationType.hashValue)"
    }
    .values
    .flatMap { $0.first }

  for duplicate in groupedSeguesWithInfo.duplicates {
    let anySegueWithInfo = duplicate.first!
    let names = duplicate.map { $0.segue.identifier }.sort().joinWithSeparator(", ")
    warn("Skipping \(duplicate.count) segues for '\(anySegueWithInfo.sourceType)' because symbol '\(sanitizedSwiftName(anySegueWithInfo.segue.identifier))' would be generated for all of these segues, but with a different destination or segue type: \(names)")
  }

  let structs = groupedSeguesWithInfo.uniques
