public WithList Clone() { int n = this.length; WithList result = new WithList(n); result.length = n; With[] newElements = result.elements; for (int i = 0; i < n; i++) newElements[i] = this.elements[i]; return result; }