If a numpy/cupy array is passed to a function and there's no need to otherwise specify the array_ns because it can be derived from the array, don't pass array_ns.
Likely the rule should be:
- Inputs are already numpy/cupy arrays -> derive
- Only the output is an array -> pass in array_ns because it can't be derived otherwise