Subst.UnsafeSourceUnsafe substitutions introduced by with constraints, local substitutions (type t := int * int) or recursive module check.
Replacing a module type name S by a non-path signature is unsafe as the packed module type (module S) becomes ill-formed.
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