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