SBCL:定数の上書きエラーで上書きを選択する

SBCL:定数の上書きエラーで上書きを選択する

SBCLでは、defconstantで定数を再定義する場合、古い値とeqlでない場合、SB-EXT:DEFCONSTANT-UNEQLという継続可能なエラーが発せられます(詳細はマニュアル参照)
下記のようにすることにより、非対話的に再起動し処理を継続し値を上書きすることが可能です。

foo-constant
;=> "foo"

;; どのようなエラーになるか確認
(ignore-errors (defconstant foo-constant "foo"))
;=> NIL
;   #<SB-EXT:DEFCONSTANT-UNEQL {101BF02FD1}>

;; 捕捉して継続
(handler-bind ((sb-ext:defconstant-uneql #'continue))
  (defconstant foo-constant "bar"))

foo-constant
;=> "bar"