Hello,

How to convert the following ocaml 3.12 code into a typable ocaml < 3.12 code?
I have a solution using Obj. Is it possible without Obj?

=====
(* val f: 'a -> 'a list *)
let f (type u) (x:u) =
  let module S =
    Set.Make(struct
      type t = u
      let compare = Pervasives.compare
      let equal = ( = )
    end)
  in
  S.elements (S.singleton x)
=====

The contraints are:
* do not change the type of f
* use the functor Set.Make where type of keys are the same that type of x

Thanks,
Julien