public abstract void VisitLeaf(TreeLeaf leaf);
public override void VisitLeaf(TreeLeaf leaf) { this.Sum += leaf.Value; }
public override void VisitLeaf(TreeLeaf leaf) { this.Depth = 1; }