Keep the old code if the new one fails to compile
Add a before fn called before replacement
Assert sane state after exception in :before
All after fn called when a ns is removed