1;;;
2;;; srfi-173 hooks
3;;;
4
5(define-module srfi-173
6  (use gauche.hook)
7  (export make-hook hook? list->hook list->hook!
8          hook-add! hook-delete! hook-reset!
9          hook->list hook-run))
10(select-module srfi-173)
11
12;; The following procedures are the same as gauche.hook
13;; make-hook  hook?  hook->list
14
15(define (hook-add! hook proc) (add-hook! hook proc))
16(define (hook-delete! hook proc) (delete-hook! hook proc))
17(define (hook-reset! hook) (reset-hook! hook))
18
19(define (list->hook arity lst)
20  (rlet1 hook (make-hook arity)
21    (dolist [p lst] (add-hook! hook p))))
22(define (list->hook! hook lst)
23  (reset-hook! hook)
24  (dolist [p lst] (add-hook! hook p)))
25
26(define (hook-run hook . args) (apply run-hook hook args))
27