Any designer can freely define reference names and will often allocate the same names as the other designers for their own purposes. That's why ASN.1 brings syntactic structure called module to help organising references. A module is a named collection of types and values definitions. Usually it groups together a set of related definitions of some abstract syntax. There are no special rules for grouping, all is left to designer's needs and wishes. Neither some ordering within a module is required, definitions can be placed there freely. The only rule is to keep on distinct references within one module.
So, how does the syntax of su a useful thing looks like? Here is an example:
WeatherReporting DEFINITIONS ::=
BEGIN
WeatherReport ::= SEQUENCE { ... }
sampleReport WeatherReport ::= { ... }
END
As you can see, module definition begins with reference name (starts with capital letter) followed by keyword DEFINITIONS and assignment sign ::=. Then between keywords BEGIN and END (sounds like Pascal, doesn't?) are type and value assignments. Very easy, isn't? Next page deals with exports and imports. Don't miss it.