structure M = struct type t = int val f = fn x => x val y = f 0 end signature S = sig type t val f : t -> t end structure M : S = struct type t = int val f = fn x => x end