do-region looks a bit better now. do-region ((dim names start end) &body body)
it should be possible to expand this macro once for each dimension (and not for every array evaluation)
try to use new do-region in extract