sig
type t
type u = t -> t
val f : u
endbecomes
sig (A) (* A is a binder referring to the whole signature *)
type t = A.t
type u = A.t -> A.t
val f : A.u
endSame with structures.
modules via translation
F-ing approach to modules: elaboration of modules into F-omega Paper Fulfilling OCaml Modules with Transparency proposes a new elaboration target, M-omega.