Hail expr functions ambiguity

I’m starting to think that the aggregator functions need to be special somehow.

Here’s an example of two things that look very similar:

dataset = dataset.annotate_rows(AN = dataset.info.AC.sum())
dataset = dataset.annotate_rows(AN = func.sum(dataset.info.AC))

The first sums the elements of the array, and returns the sum. The second broadcasts AC across the column axis, and returns an array that is the same as dataset.info.AC * dataset.num_cols.

This seems problematic. Maybe we should move aggregator functions out of functions and into their own special place, so it would be something like

dataset = dataset.annotate_rows(AN = agg.sum(dataset.info.AC))