definitionModule

Answer the module in which this lexer was defined. This is used for filtering – a module can only use this lexer if the module's ancestry includes the lexer's definitionModule.

If we didn't have this rule (and similar ones for parsing method and macro invocations, and applying grammatical restrictions), then a module's compilation rules would change if an incomparable module (i.e., not an ancestor) concurrently added a lexer/definition/restriction.

We do allow new method definitions to be added in concurrently loaded modules, and their introduction has an immediate effect on the behavior of existing call sites. There are ways to reduce the impact of this, such as the suggestion that new definitions should only be added for at least one argument type that didn't exist before this module was loaded.

Concurrently loaded modules might conflict when attempting to add a lexer to the same method, but this is probably a really bad idea anyhow. If we ever need to support it, we can allow a method to have a list of lexers instead of just one.

Return

The A_Module in which this lexer was defined.