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));
        }