pure double anyfunc(ref double x) { ... } pure double anyfunc(double[]) { ... } double[] c = anyfun(a[]) + 2.0*b[]; This proposal could be nice for making array operations more useful, but complicates overloading.