= Contributing to the standard library

For guidelines about standard library content, see
link:CONTRIBUTING.md[].

Note: All paths are given relative to the root of the repository.

First, build the compiler. Run `./configure`, then `make`. See
link:../HACKING.adoc[].

To add a new module, you must:

* Create new `.mli` and `.ml` files for the modules, obviously.

* Define the module in `stdlib/stdlib.mli` and `stdlib/stdlib.ml` in
  the section of the code commented "MODULE_ALIASES". Please maintain
  the same style as the rest of the code, in particular the
  alphabetical ordering and whitespace alignment of module aliases.

* Add `module_name` to the definition of `STDLIB_MODULE_BASENAMES` in
  `stdlib/StdlibModules`. You must keep the list sorted in dependency order.

* Run `make alldepend` to update all the `.depend` files. These files are not
  edited by hand.

* Run `make clean` or `make partialclean`, then `make`.

If you are adding multiple modules, follow the steps above and rebuild the
compiler after adding each module. If you add multiple modules before
rebuilding, the build may fail.
