A module definition satisfies the following syntax:
(48) module ::= "module" module-name "{" module-body "}" ";"
(49) module-name ::= identifier
(50) module-body ::= [ idl-statements ]
(3) idl-statements ::= { idl-statement } idl-statement
The only effect of a module is to scope IDL identifiers. It is similar to a C++ or Java namespace; it is considered good practice to enclose your type definitions inside a module definition to prevent name clashes between components.