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