;; Awful would export a request-handler-hook hook, so ;; (add-request-handler-hook! ;; 'foo ;; (lambda (path handler) ;; (when (string-prefix? "/foo" path) ;; (parameterize ;; ((debug-file "/tmp/foo-debug") ;; (enable-ajax #t)) ;; (handler)))) ;; could be written: (let ((foo (lambda (path handler) (when (string-prefix? "/foo" path) (parameterize ((debug-file "/tmp/foo-debug") (enable-ajax #t)) (handler)))))) (add-hook! request-handler-hook foo)) ;; or (define (foo path handler) (when (string-prefix? "/foo" path) (parameterize ((debug-file "/tmp/foo-debug") (enable-ajax #t)) (handler)))) (add-hook! request-handler-hook foo) ;; In both cases one could do (remove-hook! request-handler-hook 'foo) ;; To call the procedures registered in the hook ;; you should run in Awful internals (run-hook! request-handler-hook)