functor (F : Basic->
  sig
    val map : ('-> 'b) -> 'F.t -> 'F.t
    val ( >|= ) : 'F.t -> ('-> 'b) -> 'F.t
    val replace : '-> 'F.t -> 'F.t
    val void : 'F.t -> unit F.t
  end