1. Is there a reason you start with `(1) and then pop? Why not just initialize lis to nil?
2. Here's a slightly more idiomatic implementation (also more efficient, because it avoids deconstructing and reconstructing lis on every iteration):
(def l (start end)
(for i start (<= i end) ++.i
arc> (help accum)
arc> (help for)