(fn foreach [f lst] `(do ,(unpack (icollect [_ v (ipairs lst)] `(,f ,v))))) (fn foreachMulti [f lst] `(do ,(unpack (icollect [_ v (ipairs lst)] `(,f (table.unpack ,v)))))) {: foreach : foreachMulti}