Comment 7 for bug 1903413

I think I could imagine either some sort of dynamic variable that drives the behavior of DELETE-PACKAGE, so we can have:

(let ((sb-ext:*delete-package-nukes-package-contents* t))
  (delete-package "FOO"))

Or, maybe preferably, some separate function, such as SB-EXT:NUKE-PACKAGE, which performs keyword-driven cleanup before doing the proper DELETE-PACKAGE. Something like:

(sb-ext:nuke-package "FOO" :classes t :structures t :functions t :variables t ...)

I think this warrants a separate wishlist ticket though.