The user may continue from the error and tell the package system how to resolve the conflict. It may be that the same symbol is accessible to a package through more than one path. For example, the symbol might be an external symbol of more than one used package, or the symbol might be directly present in a package and also inherited from another package. In such cases there is no name conflict. The same identical symbol cannot conflict with itself.
Name conflicts occur only between distinct symbols with the same name.
The creator of a package can tell the system in advance how to resolve a name conflict through the use of shadowing . Every package has a list of shadowing symbols. A shadowing symbol takes precedence over any other symbol of the same name that would otherwise be accessible to the package. The functions shadow and shadowing-import may be used to declare shadowing symbols. Name conflicts are detected when they become possible, that is, when the package structure is altered.