(mac each (var expr . body) (w/uniq (gseq g) `(let ,gseq ,expr (if (alist ,gseq) ((afn (,g) (when (acons ,g) (let ,var (car ,g) ,@body) (self (cdr ,g)))) ,gseq) (isa ,gseq 'table) (maptable (fn (,g ,var) ,@body) ,gseq) (for ,g 0 (- (len ,gseq) 1) (let ,var (,gseq ,g) ,@body))))))
(mac each (var expr . body) (w/uniq (gseq g gf) `(let ,gseq ,expr (if (alist ,gseq) ((rfn ,gf (,g) (when (acons ,g) (let ,var (car ,g) ,@body) (,gf (cdr ,g)))) ,gseq) (isa ,gseq 'table) (maptable (fn (,g ,var) ,@body) ,gseq) (for ,g 0 (- (len ,gseq) 1) (let ,var (,gseq ,g) ,@body))))))