(* Signature tests -- should print type error *) module type S = sig type t val f : t -> t -> t end module A = struct type t = int let f : int -> int -o int = (+) end module B : S = A module C : S = A