code: private ArrayListImpl<ChildLink<T>> modifiableDelegate() {
      if (delegate.getCount() != 0) {
        delegate = new ArrayListImpl<>(delegate);
      }
      return delegate;
    }
docs: Returns an ArrayListImpl that is safe to modify. If delegate.count does not equal to zero,
  returns a copy of delegate.