functor (X : sig val mem : string -> bool end->
  sig
    val make_unique_name : string -> string
    val make : string -> Project_skeleton.t
    val set_name : Project_skeleton.t -> string -> unit
  end