Module Subst

type +'k subst
type safe = [
  1. | `Safe
]
type unsafe = [
  1. | `Unsafe
]
type t = safe subst
val identity : 'a subst
val unsafe : t -> unsafe subst
val add_type : Ident.t -> Path.t -> 'k subst -> 'k subst
val add_module : Ident.t -> Path.t -> 'k subst -> 'k subst
val add_modtype : Ident.t -> Path.t -> 'k subst -> 'k subst
val for_saving : t -> t
val reset_for_saving : unit -> unit
val change_locs : 'k subst -> Location.t -> 'k subst
val module_path : t -> Path.t -> Path.t
val type_path : t -> Path.t -> Path.t
val modtype_path : t -> Path.t -> Path.t
val type_expr : t -> Types.type_expr -> Types.type_expr
val class_type : t -> Types.class_type -> Types.class_type
val value_description : t -> Types.value_description -> Types.value_description
val type_declaration : t -> Types.type_declaration -> Types.type_declaration
val class_declaration : t -> Types.class_declaration -> Types.class_declaration
type scoping =
  1. | Keep
  2. | Make_local
  3. | Rescope of int
val signature : scoping -> t -> Types.signature -> Types.signature
val signature_item : scoping -> t -> Types.signature_item -> Types.signature_item
val compose : t -> t -> t
module Unsafe : sig ... end
module Lazy : sig ... end