Tcl has tm commands for managing access to tcl modules
A list of directories (the "module path") is managed by the commands ::tcl::tm::path and ::tcl::tm::roots. For example, the current value of the module path is returned by the command [::tcl::tm::path list].
The command package require searches the "module path" directories for modules, which are files named "*.tm". The name of the module file determines the name and version that are entered into the package database when module directories are scanned.
See https://www.tcl-lang.org/man/tcl8.5/TclCmd/tm.htm for a full discussion of module filename requirements, resolution of '::' in module names, and translation of '::' to directory separator characters.
See Tcl modules for more on modules.
See Distribution Mechanisms for a discussion of extension mechanisms in general.
(1) TM frequently is used as an abbreviation of the word Trademark.
See http://uspto.gov/ [add other references] for more info on the legal ramifications of a trademark.