Module Modintern

Module internalization errors

type module_internalization_error =
| NotAModuleNorModtype of Libnames.qualid
| NotAModuleType of Libnames.qualid
| NotAModule of Libnames.qualid
| IncorrectWithInModule
| IncorrectModuleApplication
exception ModuleInternalizationError of module_internalization_error

Module expressions and module types are interpreted relatively to possible functor or functor signature arguments. When the input kind is ModAny (i.e. module or module type), we tries to interprete this ast as a module, and in case of failure, as a module type. The returned kind is never ModAny, and it is equal to the input kind when this one isn't ModAny.

type module_kind =
| Module
| ModType
| ModAny

Module internalization, i.e. from AST to module expression

Module interpretation, i.e. from module expression to typed module entry