(define (make rules targets . maybe-args) (let-optionals maybe-args ((pred string=?) (init-state (list))) (let* ((rule-set (rules->rule-set rules)) (target-rules (map (lambda (target) (lookup-rule pred target rules)) targets))) (map (lambda (t) (rule-make t init-state rule-set)) target-rules))))