Subst.Unsafe
Unsafe substitutions introduced by with
constraints, local substitutions (type t := int * int
) or recursive module check.
val add_modtype : Ident.t -> Types.module_type -> 'any subst -> t
Replacing a module type name S by a non-path signature is unsafe as the packed module type (module S)
becomes ill-formed.
val add_modtype_path : Path.t -> Types.module_type -> 'any subst -> t
Deep editing inside a module type require to retypecheck the module, for applicative functors in path and module aliases.
val add_type_function :
Path.t ->
params:Types.type_expr list ->
body:Types.type_expr ->
t ->
t
val type_declaration :
t ->
Types.type_declaration ->
Types.type_declaration res
val signature_item :
scoping ->
t ->
Types.signature_item ->
Types.signature_item res
val signature : scoping -> t -> Types.signature -> Types.signature res