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