Summary
Module names should be unique
Metadata
- Id: 8ffb2b85ef7926af2f99d52a53c4fe5251fea8bc
- Trac id: 1705
- Type: enhancement
- Reporter: sjamaan
- Owner:
- Cc:
- Status: closed
- Component: compiler
- Estimated difficulty: medium
- Resolution: wontfix
- Priority: minor
- Milestone: 6.0.0
- Version: 5.2.0
- Changetime: 2026-07-04 22:25:45 UTC
- Created: 2020-07-21 09:34:10 UTC
- Keywords: modules, encapsulation, name conflicts
Description
When you compile a program which uses a module and defines a module of the same name, the compiler should probably give a warning or error.
A practical (simplified) example of this which alicemaz ran into:
http://paste.call-cc.org/paste?id=59272bcd1450867b3db94a2b7a6148fbd39d4f44
I think we can't really do this in the interpreter because re-evaluating an existing module should be possible on the REPL (think incremental development from Emacs etc).
Changes and comments
[2023-11-06 23:07:44 UTC] felix changed milestone from 5.4 to 6.0.0
[2026-07-04 22:25:45 UTC] felix wrote:
Module names are unique and pervasive over the whole runtime environment. Allowing multiple instances of modules with a shared name would add considerable complexity and can easily be worked around by using compound module names with some prefix, like (main internal), (dep internal), etc.