functor (M : MONAD) ->
  sig
    val sequence_m : ('a M.t, 'err) CCResult.t -> ('a, 'err) CCResult.t M.t
    val fold_m :
      ('b -> 'a -> 'b M.t) -> 'b -> ('a, 'err) CCResult.t -> 'b M.t
    val map_m :
      ('a -> 'b M.t) -> ('a, 'err) CCResult.t -> ('b, 'err) CCResult.t M.t
    val retry_m :
      int ->
      (unit -> ('a, 'err) CCResult.t M.t) -> ('a, 'err list) CCResult.t M.t
  end