Dylan allows very precise control over how symbols are imported from other modules. For example, individual symbols may be imported by name. They may be renamed, either one at a time, or by adding a prefix to all a module's symbols at once. Some or all of them may be re-exported immediately. See the Dylan Reference Manual for specific examples.
Dylan's import system has a number of advantages. Name conflicts occur rarely. Programmers don't need to define or maintain function prototypes. There's no explicit need for header files. Modules may also provide different interfaces to the same objects—one module exports a complete interface, which another module imports, redefines and re-exports.