private OpenXmlPackageVisitor Fold([NotNull] OpenXmlPackageVisitor subject) { Document document = Document.Concat(subject.Document); Footnotes footnotes = Footnotes.Concat(subject.Footnotes); XElement styles = new XElement( Styles.Name, Styles.Attributes(), Styles.Elements() .Union( subject.Styles .Elements() .Where(x => x.Name != W + "docDefaults") .Where(x => (string)x.Attribute(W + "styleId") != "Normal"), XNode.EqualityComparer)); XElement numbering = new XElement( Numbering.Name, Numbering.Attributes(), Numbering.Elements() .Union( subject.Numbering.Elements(), XNode.EqualityComparer)); // TODO: write a ThemeVisit // XElement theme = // new XElement( // Theme.TargetUri, // Theme.Attributes(), // Theme.Elements() // .Union( // subject.Theme.Elements(), // XNode.EqualityComparer)); return(With(document, footnotes, styles, numbering, subject.Theme1)); }