A module definition satisfies the following syntax:
(49) module ::= "module" module-name "{" module-body "}" ";"
(50) module-name ::= identifier
(51) 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.