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 |