@Override
    public TensorType type(TypeContext<NAMETYPE> context) {
        List<String> resolvedDimensions = dimensions.stream().map(d -> context.resolveBinding(d)).toList();
        return outputType(argument.type(context), resolvedDimensions);
    }
Creates a reduce function.

@param argument the tensor to reduce
@param aggregator the aggregator function to use
@param dimensions the list of dimensions to remove. If an empty list is given, all dimensions are reduced,
                  producing a dimensionless tensor (a scalar).
@throws IllegalArgumentException if any of the tensor dimensions are not present in the input tensor
vespajlib/src/main/java/com/yahoo/tensor/functions/Reduce.java