@Override
    public DoublePredefined copy() {
        return new DoublePredefined(getLabel(),
                                    getLevelOrNull(),
                                    getArg(0),
                                    args().stream().skip(1)
                                                   .map(DoubleBucket.class::cast)
                                                   .map(arg -> arg.copy())
                                                   .toList());
    }
Constructs a new instance of this class.

@param exp  The expression to evaluate, must evaluate to a double.
@param arg1 The compulsory bucket.
@param argN The optional buckets.
container-search/src/main/java/com/yahoo/search/grouping/request/DoublePredefined.java