     }
     
     public static func save<T: CSVWritable>(stars: [T], to path: String) throws {
-        let lines = [T.headerLine] + stars.flatMap({ $0.csvLine })
+        let lines = [T.headerLine] + stars.compactMap { $0.csvLine }
         let fileString = lines.joined(separator: "\n")
         try fileString.write(to: URL(fileURLWithPath: path), atomically: true, encoding: .utf8)
     }

        let yearsToAdvance = precess ? Float(yearsSinceEraStart) : nil
        let lines = lineIteratorC(file: fileHandle)
        var count = 0
        let stars = lines.dropFirst().flatMap { linePtr -> RadialStar? in
            defer { free(linePtr) }
            return RadialStar(rowPtr :linePtr, advanceByYears: yearsToAdvance, indexers: &indexers)
        }

        let yearsToAdvance = precess ? Double(yearsSinceEraStart) : nil
        let lines = lineIteratorC(file: fileHandle)
        var count = 0
        let stars = lines.dropFirst().compactMap { linePtr -> Star3D? in
            defer { free(linePtr) }
            return Star3D(rowPtr :linePtr, advanceByYears: yearsToAdvance, indexers: &indexers)
        }
