Contraining return expr in kernels to be ref to a parameter, decoupling dynamic allocation and returning, allow return to ref non-dynamic arrays. Buffer pools