This directory can be home to modules that contain constants that need to be
shared between other modules.

Modules within this directory must not import any other modules, or execute
any interesting code at import time. They may only assign statically defined
constants to variables (or do very basic string concat operations with
constants already defined in the module).
