Racket 8.0: Avoiding Accidental Public Exposure via provide (all-defined-out)
The goal is to maintain strict encapsulation of helper functions when migrating from Racket 7.0 to 8.0. In 7.0, (only-in mod id) allowed importing any top‑level binding, regardless of whether it was exported. 8.0 tightened this rule so that only identifiers explicitly exported by provide can be imported. Developers often add (provide (all-defined-out)) as a