public RawShardedList(ShardedList <T> parent, T[] impl)
            {
                this.Impl = impl;

                this.Parent       = parent;
                this.GlobalOffset =
                    new ShardedListAddress(() => parent.LocateRegion_(this));
            }
        private ShardedList(
            ShardedList <T>?parent,
            ISpannable <T> ts
            )
        {
            this.parent_ = parent;
            this.regions_.Add(new SpanShardedList(this, ts));

            this.UpdateLength_();

            if (parent != null)
            {
                this.GlobalOffset = new ShardedListAddress(
                    () => parent.LocateRegion_(this));
            }
            else
            {
                this.GlobalOffset = new NullShardedListAddress();
            }
        }