sig
  val bind :
    ('a, 'e) BatResult.t ->
    ('-> ('c, 'e) BatResult.t) -> ('c, 'e) BatResult.t
  val ( >>= ) :
    ('a, 'e) BatResult.t ->
    ('-> ('c, 'e) BatResult.t) -> ('c, 'e) BatResult.t
  val return : '-> ('a, 'b) BatResult.t
end