Lang.ModuleTypetype substitution = | | ModuleEq of Paths.Fragment.Module.t * Module.Equation.t | 
| | ModuleTypeEq of Paths.Fragment.ModuleType.t * expr | 
| | TypeEq of Paths.Fragment.Type.t * TypeDecl.Equation.t | 
| | ModuleSubst of Paths.Fragment.Module.t * Paths.Path.Module.t | 
| | ModuleTypeSubst of Paths.Fragment.ModuleType.t * expr | 
| | TypeSubst of Paths.Fragment.Type.t * 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 | 
| | Functor of FunctorParameter.t * expr | 
| | With of with_t | 
| | TypeOf of typeof_t | 
type t = {| id : Paths.Identifier.ModuleType.t; | 
| doc : Comment.docs; | 
| canonical : Paths.Path.ModuleType.t option; | 
| expr : expr option; | 
}