A proposal by Martin Jambon: > A namespace name follows the same syntax as a module name (Abc.Def). > There are no changes to the OCaml syntax, namespaces being used like > modules where possible. > > A list of compilation units forms a package. A package is defined by a > "Package" file that contains: > - the name of the package (default: current directory name) > - the containing namespace (default: empty path) > - the list of compilation units > - the packages used by this package (default: none) > > Several packages may use the same namespace as long as their > compilation units have different names. > > Sample Package file: > > name = atdgen > namespace = Mylife.Atdgen > provides = Error Oj_run Ob_run > requires = biniou yojson atd > > Package files are found by looking for */Package in the package search > path similarly to how ocamlfind finds META files. The presence of a > Package file overrides the search of cmi files using the legacy "-I". > > We believe that this proposal allows the compilers, ocamldep, ocamldoc > and ocamlfind to be adapted to support the new features and are > backward-compatible.