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);
  }
  public DNewMultiArrayExpr(ArrayType type, List sizes) {
    super(type, new ValueBox[sizes.size()]);

    for (int i = 0; i < sizes.size(); i++)
      sizeBoxes[i] = Grimp.v().newExprBox((Value) sizes.get(i));
  }