私は、Peter Seibel のBeyond Exception Handling: Conditions and Restartの章Practical Common Lisp、Kent Pitman のConditional Handling in the Lisp Language Family、およびその他の参考文献を読んで、Common Lisp での再起動とハンドラの適切な使用法を理解しようと努めてきました。
再起動について私が理解していることから、再起動は、何らかの条件が発生したときに関数の動作を選択するために、関数によって呼び出し元に提供されるオプションです。
それでは、再起動が関数の「パブリック インターフェイス」の一部として扱われ、それに応じて文書化されるのは事実でしょうか?
結局のところ、呼び出し元は、再起動と、それらを呼び出すために何をするかについて知っている必要がありますよね? そして、呼び出し元が呼び出す可能性のある再起動を取り除くのは悪いことだと思います。