public SearchablePathElement(SearchablePathElement previous) : base(previous) { }
public DictPathElement(SearchablePathElement previous, object key) : base(previous) { this.Key = key; }
public PathElement(SearchablePathElement previous) { this.Previous = previous; }
public ArrayPathElement(SearchablePathElement previous, int index) : base(previous) { this.Index = index; }