Module Lang.ModuleTypeSource

type type_of_desc =
  1. | ModPath of Paths.Path.Module.t
  2. | StructInclude of Paths.Path.Module.t
type simple_expansion =
  1. | Signature of Signature.t
  2. | Functor of FunctorParameter.t * simple_expansion
type typeof_t = {
  1. t_desc : type_of_desc;
  2. t_expansion : simple_expansion option;
}
module U : sig ... end
type path_t = {
  1. p_expansion : simple_expansion option;
  2. p_path : Paths.Path.ModuleType.t;
}
type with_t = {
  1. w_substitutions : substitution list;
  2. w_expansion : simple_expansion option;
  3. w_expr : U.expr;
}
type expr =
  1. | Path of path_t
  2. | Signature of Signature.t
  3. | Functor of FunctorParameter.t * expr
  4. | With of with_t
  5. | TypeOf of typeof_t
type t = {
  1. id : Paths.Identifier.ModuleType.t;
  2. locs : Paths.Identifier.SourceLocation.t option;
    (*

    Can be None for module types created by a type substitution.

    *)
  3. doc : Comment.docs;
  4. canonical : Paths.Path.ModuleType.t option;
  5. expr : expr option;
}