                         return convert(type)
                     }.joined(separator: "\n\n")
                     outq.async(group: queues) { print(code) }
+                }
+            }
+
+            if let dir = outputDirectory {
+                let atChar = Character("@").utf8.first!
+                DispatchQueue.concurrentPerform(iterations: 27) { i in
+                    let ascii = atChar + UInt8(i)
+                    let f = "\(dir)/\(node)-\(Character(UnicodeScalar(ascii))).swift"
+                    try? fileManager.removeItem(atPath: f)
+                    if alphaNames {
+                        try? preamble.write(toFile: f, atomically: true, encoding: .utf8)
+                    }
                 }
             }
 

                    outq.async(group: queues) { print("\(error)", to: &Streams.stdErr) }
                }
            }
            func writebg(queue: DispatchQueue = background, _ string: String, to fileName: String) {
                queue.async(group: queues) { write(string, to: fileName) }
            }
            func write<T: GIR.Record>(_ types: [T], using ptrconvert: (String) -> (GIR.Record) -> String) {

                            }
                            f = "\(dir)/\(node)-\(firstName)\(name).swift"
                        }
                        writebg(queue: alphaq, output, to: f, append: alphaNames)
                        output = ""
                        first = nil
                    }
                    if first != nil {
                        let f = "\(dir)/\(node)-\(firstName)\(useAlphaNames ? "" : name).swift"
                        writebg(queue: alphaq, output, to: f, append: alphaNames)
                    }
                } else {
                    let code = types.map { type in
