If racket/unsafe/undefined can actually be used for unsoundness, it should not be allowed. Instead, we should use an ad-hoc implementation of optional arguments (have a standard wrapper function with optional arguments using a unique symbol to indicate their absence, and pass those values to the "barrier" which verifies purity, so that # is never used.
If racket/unsafe/undefined can actually be used for unsoundness, it should not be allowed. Instead, we should use an ad-hoc implementation of optional arguments (have a standard wrapper function with optional arguments using a unique symbol to indicate their absence, and pass those values to the "barrier" which verifies purity, so that # is never used.