ocaml-base-compiler

Official release 4.14.0
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library ocamlcommon
Module Shape
module Uid : sig ... end
module Sig_component_kind : sig ... end
module Item : sig ... end
type var = Ident.t
type t = {
uid : Uid.t option;
desc : desc;
}
and desc =
| Var of var
| Abs of var * t
| App of t * t
| Struct of t Item.Map.t
| Leaf
| Proj of t * Item.t
| Comp_unit of string
val print : Format.formatter -> t -> unit
val for_unnamed_functor_param : var
val fresh_var : ?name:string -> Uid.t -> var * t
val var : Uid.t -> Ident.t -> t
val abs : ?uid:Uid.t -> var -> t -> t
val app : ?uid:Uid.t -> t -> arg:t -> t
val str : ?uid:Uid.t -> t Item.Map.t -> t
val proj : ?uid:Uid.t -> t -> Item.t -> t
val leaf : Uid.t -> t
val decompose_abs : t -> (var * t) option
val for_persistent_unit : string -> t
val leaf_for_unpack : t
module Map : sig ... end
val dummy_mod : t
val of_path : find_shape:( Sig_component_kind.t -> Ident.t -> t ) -> namespace:Sig_component_kind.t -> Path.t -> t
val set_uid_if_none : t -> Uid.t -> t
module Make_reduce (Context : sig ... end) : sig ... end

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

val local_reduce : t -> t