extern structure Lib : sig type t type u val x : t val y : u val f0 : {} -> u val f1 : t -> t val f2 : t -> u -> t end type t' = Lib.t val x' : t' = Lib.x val f0' = Lib.f0 val f1' = Lib.f1 val f2' = Lib.f2 structure Lib' = Lib type t'' = Lib'.t val x'' : t'' = Lib'.x val main = f2' (f1' x') (f0' {})