It is actually not the case that type structure items can be shadowed : # module A = struct type t = int;; type t = int end;; Error: Multiple definition of the type name t. Names must be unique in a given structure or signature.