> @optional_tag(isPure!F, pure) int[] map(F)(F f, int[] data) {
> int[] res;
> foreach (x; data)
> res ~= f(x);
> return res;
> }
This may not suffice to correctly tell apart strong pure functions from weak pure ones...
Bye,
bearophile