         override init(node: XMLElement, atIndex i: Int) {
             var parent = node.attribute(named: "parent") ?? ""
             if parent.isEmpty {
-                parent = node.children.filter { $0.name ==  "prerequisite" }.first?.attribute(named: "name") ?? ""
+                parent = node.children.lazy.filter { $0.name ==  "prerequisite" }.first?.attribute(named: "name") ?? ""
             }
             self.parent = parent
             super.init(node: node, atIndex: i)

            return Array(all).sorted()
        }
    }


    /// a class data type record
    public class Class: Record {

    public var interfaces: [Interface] = []
    /// Records defined by this GIR file
    public var records: [Record] = []
    /// Unions defined by this GIR file
    public var unions: [Union] = []
    /// Classes defined by this GIR file
    public var classes: [Class] = []
    /// Free functions defined by this GIR file
