@zep playing around with `ud:take`, there seems to be a bug when using spans longer than 1: the last row will only have the first column populated.
repro:
function chunk(ud, x, y, w, h)
local s = ud:width()
local rows = userdata("i32", h)
h -= 1
rows:set(0, y*s+x)
rows:set(h, (y+h)*s+x)
return ud:take(rows:lerp(), nil, 0, 0, w)
end
function iota(n)
if (n > 0) return n, iota(n-1)
end
local data = vec(iota(8*8))
data:mutate("f64", 8, 8)
?pod(data)
?pod(chunk(data, 1, 2, 4, 3))



