Dear camlers,

A couple of libraries, like pgocaml for instance, define a functor over a (monadic) thread implementation, like in the following:

module type Thread = sig
  type 'a t
  val return : 'a -> 'a t
  val bind : 'a t -> ('a -> 'b t) -> 'b t
end

module F(T : Thread) : sig
  val v : string -> string T.t
end

Is it possible to define F as a function (ie at the value level)?

Cheers,
  Philippe.