(define-syntax :gen (syntax-rules (index) [(_ cc var (index i) expr) (:parallel cc (:gen var expr) (:integers i))] [(_ cc var expr) (:do cc (let ([gen expr])) ([var (gen)]) (not (eof-object? var)) (let ()) #t [(gen)])]))