functor (S : Set.S->
  sig
    val of_set : S.t -> S.elt CCLinq.t
    val to_set : S.elt CCLinq.t -> S.t CCLinq.t
    val run : S.elt CCLinq.t -> S.t
  end