internal abstract StandardExpansion <T> CreateNew(StandardExpander expander);
internal StandardExpansion(StandardExpander expander, Path path, BranchState state) { this.Expander = expander; this.Path = path; this.State = state; }
internal override StandardExpansion <Node> CreateNew(StandardExpander expander) { return(new NodeExpansion(expander, Path, State)); }
internal NodeExpansion(StandardExpander expander, Path path, BranchState state) : base(expander, path, state) { }
internal override StandardExpansion <Relationship> CreateNew(StandardExpander expander) { return(new RelationshipExpansion(expander, Path, State)); }
internal RelationshipExpansion(StandardExpander expander, Path path, BranchState state) : base(expander, path, state) { }