(define (make rcs targets . maybe-arg) (let-optionals maybe-arg ((init-state (list))) (let* ((rules (rcs->rules rcs)) (rule-set (rules->rule-set rules)) (target-rules (map (lambda (t) (lookup-rule t rules)) targets))) (map (lambda (t) (rule-make t init-state rule-set)) target-rules))))