public Object clone() {
    List clonedSizes = new ArrayList(getSizeCount());

    for (int i = 0; i < getSizeCount(); i++) {
      clonedSizes.add(i, Grimp.cloneIfNecessary(getSize(i)));
    }

    return new DNewMultiArrayExpr(getBaseType(), clonedSizes);
  }