I’m a bit puzzled by this discussion…
Packages are only namespaces and have zero information about semantic protocols. I’m thinking about analogies from OCaml and the ancient COM/OLE interface system. Those examples provide versioning regarding semantic capabilities of a module, and versioning is important so that usage gets tied to a compatible library module. But namespaces are too thin to provide any of this sort of protection.
Seems like the discussion needs to address a module / interface system in Lisp, which does not exist to my knowledge.
- DM