sig
  type 'a t
  val ( >>= ) :
    'Monad.Infix.t -> ('-> 'Monad.Infix.t) -> 'Monad.Infix.t
  val ( >>| ) : 'Monad.Infix.t -> ('-> 'b) -> 'Monad.Infix.t
end