> Yes.  So to be clearer, Gambit’s runtime system keeps a weak reference
> to each will created with make-will.  The weak reference is severed when
> the will’s action procedure is executed, making the will unreachable.  This
> allows the will object itself to be reclaimed after the action procedure is
> executed.

Clearer indeed!

Just for the benefit of anyone following this (i.e. this is not a question), I inferred this in the gsi REPL: the weak reference to the will seems to be severed even if the action procedure has made the object reachable again (e.g. by setting a global variable to it).  Now, even if you keep a strong reference to the will, its action procedure *won't* execute when the object becomes weakly reachable again.

> (define o (cons 'o 'o))                                   
> (define w (make-will o (lambda (x) (println "saving o") (set! o x))))
> (set! o #f)
> (##gc)
saving o
> (set! o #f)
> (##gc)
> w
#<will #3>