So all I need is this then without any change to safeset:
(mac redef(f args . body) `(= ,f (fn ,args ,@body)))
(mac after-exec (fnname args . body) `(let old ,fnname (redef ,fnname ,args (let result (old ,@args) ,@body result))))
It might still be cool to toggle safeset warnings. With Arc's single namespace, it's annoying to
(load "foo.arc")
-----
(= redef =) ; how pretty!
Disabling these warnings on reload is useful, but a separate use case. I tend to ignore them on reload, but I don't want to see them when I startup lest I start ignoring them altogether.