functor (S : Set.S->
  sig
    type dups = No_dups of S.t | Has_dups of S.elt
    val duplicates : S.elt list -> Util.Duplicate.dups
  end