sig
  type 'a t
  val return : 'a -> 'a Bitcoin.HTTPCLIENT.Monad.t
  val fail : exn -> 'a Bitcoin.HTTPCLIENT.Monad.t
  val bind :
    'a Bitcoin.HTTPCLIENT.Monad.t ->
    ('a -> 'b Bitcoin.HTTPCLIENT.Monad.t) -> 'b Bitcoin.HTTPCLIENT.Monad.t
  val catch :
    (unit -> 'a Bitcoin.HTTPCLIENT.Monad.t) ->
    (exn -> 'a Bitcoin.HTTPCLIENT.Monad.t) -> 'a Bitcoin.HTTPCLIENT.Monad.t
end