# IR module semantic rules

When reading or writing IR modules, the following processing rules must be observed:

## Sets of modules

In order to apply the semantic validation rules, a processor must consider all the provided modules together. The provided set of module files represent the IR layer of an Alexa Conversations skill.

## Name uniqueness

A name cannot be declared twice in a given set of modules.

## Referential integrity

A name used in an expression must be declared in the IR (i.e., in one of the provided modules).

## Exports

A name can only be used in a module if:

- It is declared inside the same module.
- It is declared in a different module and is included in the `exports` expression of that module.
