Module Ocaml_typing.ShapeSource

Sourcemodule Uid : sig ... end
Sourcemodule Sig_component_kind : sig ... end
Sourcemodule Item : sig ... end
Sourcetype var = Ident.t
Sourcetype t = {
  1. uid : Uid.t option;
  2. desc : desc;
}
Sourceand desc =
  1. | Var of var
  2. | Abs of var * t
  3. | App of t * t
  4. | Struct of t Item.Map.t
  5. | Leaf
  6. | Proj of t * Item.t
  7. | Comp_unit of string
Sourceval print : Format.formatter -> t -> unit
Sourceval for_unnamed_functor_param : var
Sourceval fresh_var : ?name:string -> Uid.t -> var * t
Sourceval var : Uid.t -> Ident.t -> t
Sourceval abs : ?uid:Uid.t -> var -> t -> t
Sourceval app : ?uid:Uid.t -> t -> arg:t -> t
Sourceval str : ?uid:Uid.t -> t Item.Map.t -> t
Sourceval proj : ?uid:Uid.t -> t -> Item.t -> t
Sourceval leaf : Uid.t -> t
Sourceval decompose_abs : t -> (var * t) option
Sourceval for_persistent_unit : string -> t
Sourceval leaf_for_unpack : t
Sourcemodule Map : sig ... end
Sourceval dummy_mod : t
Sourceval of_path : find_shape:(Sig_component_kind.t -> Ident.t -> t) -> namespace:Sig_component_kind.t -> Path.t -> t
Sourceval set_uid_if_none : t -> Uid.t -> t
Sourcemodule Make_reduce (Context : sig ... end) : sig ... end

The Make_reduce functor is used to generate a reduction function for shapes.

Sourceval local_reduce : t -> t