signature S = sig type t val x : t end structure M : S = struct type t = _ val x = 0 end