presto-main/src/main/java/io/prestosql/operator/aggregation/ParametricAggregation.java/ParametricAggregation/ParametricAggregation
class ParametricAggregation:    public ParametricAggregation(
            Signature signature,
            AggregationHeader details,
            ParametricImplementationsGroup<AggregationImplementation> implementations)
    {
        super(
                new FunctionMetadata(
                        signature,
                        true,
                        implementations.getArgumentDefinitions(),
                        details.isHidden(),
                        true,
                        details.getDescription().orElse(""),
                        AGGREGATE),
                details.isDecomposable(),
                details.isOrderSensitive());
        requireNonNull(details, "details is null");
        checkArgument(implementations.isNullable(), "currently aggregates are required to be nullable");
        this.implementations = requireNonNull(implementations, "implementations is null");
    }