Module Component.Substitution

type subst_module = [
| `Prefixed of Cpath.module_ * Cpath.Resolved.module_
| `Substituted
| `Renamed of Ident.path_module
]
type subst_module_type = [
| `Prefixed of Cpath.module_type * Cpath.Resolved.module_type
| `Renamed of Ident.module_type
]
type subst_type = [
| `Prefixed of Cpath.type_ * Cpath.Resolved.type_
| `Renamed of Ident.path_type
]
type subst_class_type = [
| `Prefixed of Cpath.class_type * Cpath.Resolved.class_type
| `Renamed of Ident.path_class_type
]
type t = {
module_ : subst_module PathModuleMap.t;
module_type : subst_module_type ModuleTypeMap.t;
type_ : subst_type PathTypeMap.t;
class_type : subst_class_type PathClassTypeMap.t;
type_replacement : (TypeExpr.t * TypeDecl.Equation.t) PathTypeMap.t;
module_type_replacement : ModuleType.expr ModuleTypeMap.t;
path_invalidating_modules : Ident.path_module list;
module_type_of_invalidating_modules : Ident.path_module list;
unresolve_opaque_paths : bool;
}