sig
  type 'a t
  val bind :
    'a Extlib.Monad.S.t -> ('a -> 'b Extlib.Monad.S.t) -> 'b Extlib.Monad.S.t
  val return : 'a -> 'a Extlib.Monad.S.t
  val failwith : string -> 'a Extlib.Monad.S.t
end