Module Component.ModuleType

type substitution =
| ModuleEq of Cfrag.module_ * Module.decl
| ModuleSubst of Cfrag.module_ * Cpath.module_
| ModuleTypeEq of Cfrag.module_type * expr
| ModuleTypeSubst of Cfrag.module_type * expr
| TypeEq of Cfrag.type_ * TypeDecl.Equation.t
| TypeSubst of Cfrag.type_ * TypeDecl.Equation.t
type type_of_desc =
| ModPath of Cpath.module_
| StructInclude of Cpath.module_
type simple_expansion =
| Signature of Signature.t
| Functor of FunctorParameter.t * simple_expansion
type typeof_t = {
t_desc : type_of_desc;
t_expansion : simple_expansion option;
}
module U : sig ... end
type path_t = {
p_expansion : simple_expansion option;
p_path : Cpath.module_type;
}
type with_t = {
w_substitutions : substitution list;
w_expansion : simple_expansion option;
w_expr : U.expr;
}
type expr =
| Path of path_t
| Signature of Signature.t
| With of with_t
| Functor of FunctorParameter.t * expr
| TypeOf of typeof_t
type t = {
doc : CComment.docs;
canonical : Cpath.module_type option;
expr : expr option;
}