IDL modules form a namespace to group related types and interfaces, similar to C++ namespaces. For example, type Date in module MJD is specified as MJD::Date. Module names must begin with a letter. Modules can be nested by declaring the nested module inside the parent module. For example, to declare interfaces and types in the namespace com::mycompany, use the syntax below and add them to the declaration of module mycompany:
module com { module foo { ... }; };