@Override
    public TypeInfo withEllipsis() {
      switch (getKind()) {
        case ELLIPSIS: return this;
        case ARRAY:
          return new DerivedTypeInfo(TypeKind.ELLIPSIS, myChild);
        default:
          throw new UnsupportedOperationException();
      }
    }
@Override
    public TypeInfo withEllipsis()