Component.ModuleTypetype 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 simple_expansion = | | Signature of Signature.t | 
| | Functor of FunctorParameter.t * simple_expansion | 
module U : sig ... endtype 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 |