(map (lambda(def) (let*-values ((synt-sug-form? (list? (proc-name-sexp def))) ((proc-name params-list tmp-proc-body-list) (if synt-sug-form? (values (ss-proc-name def) (ss-params-list def) (ss-body-list def)) (values (lambda-proc-name def) (lambda-params-list def) (lambda-body-list def)))) (keywords-list (get-keywords-list def)) (proc-body-list (filter-keywords tmp-proc-body-list keywords-list)) (page-path (if (eq? proc-name 'index) (conc "/" 'name) (conc "/" 'name "/" proc-name)))) (eval `(define-page (irregex '(seq ,page-path (* "/" ,(regex)))) (lambda (path) (let ((path (process-path path))) (apply (lambda ,params-list ,@proc-body-list) (process-url-args path ,page-path ',params-list)))) ,@keywords-list)))) 'body))))