Every Letlang module (which correspond to a source file with the extension .let) MUST begin with a <module-declaration-statement> rule.

<module-declaration-statement> :=
  "module" <module-path> ";"
  ;

<module-path> :=
  <identifier> ("::" <identifier>)*
  ;

<identifier> :=
  /[_a-zA-Z][_0-9a-zA-Z]*/
  ;

Examples:

module std::io;
module foo::main;

Every module path MUST be unique.