sig
  type meth =
      [ `CONNECT
      | `DELETE
      | `GET
      | `HEAD
      | `OPTIONS
      | `Other of string
      | `PATCH
      | `POST
      | `PUT
      | `TRACE ]
  val meth_to_string : B0_web.Http.meth -> string
  type headers = (string * string) list
  type req
  val req :
    ?headers:B0_web.Http.headers ->
    ?body:string -> uri:string -> B0_web.Http.meth -> B0_web.Http.req
  val req_uri : B0_web.Http.req -> string
  val req_meth : B0_web.Http.req -> B0_web.Http.meth
  val req_headers : B0_web.Http.req -> B0_web.Http.headers
  val req_body : B0_web.Http.req -> string
  type resp
  val resp_headers : B0_web.Http.resp -> B0_web.Http.headers
  val resp_status : B0_web.Http.resp -> int
  val resp_body : B0_web.Http.resp -> string
  type t
  val curl :
    ?docs:string ->
    ?env:Cmdliner.Arg.env -> unit -> B0_std.Cmd.t Cmdliner.Term.t
  val find_curl :
    ?search:B0_std.Fpath.t list ->
    curl:B0_std.Cmd.t -> unit -> (B0_web.Http.t, string) Stdlib.result
  val perform :
    ?follow:bool ->
    B0_web.Http.t ->
    B0_web.Http.req -> (B0_web.Http.resp, string) Stdlib.result
end