sig
  type consumer = (bytes * int * int) option -> unit
  type body =
      Stream of (Webs.Resp.consumer -> unit)
    | File of (int * int) option * string
  val stream_body : (Webs.Resp.consumer -> unit) -> Webs.Resp.body
  val string_body : string -> Webs.Resp.body
  val empty_body : Webs.Resp.body
  val file_body : ?range:int * int -> string -> Webs.Resp.body
  val pp_body : Format.formatter -> Webs.Resp.body -> unit
  type t = Webs.resp
  val v :
    ?version:Webs.HTTP.version ->
    Webs.HTTP.status -> Webs.HTTP.headers -> Webs.Resp.body -> Webs.resp
  val version : Webs.resp -> Webs.HTTP.version
  val status : Webs.resp -> Webs.HTTP.status
  val headers : Webs.resp -> Webs.HTTP.headers
  val body : Webs.resp -> Webs.Resp.body
  val with_status : Webs.resp -> Webs.HTTP.status -> Webs.resp
  val with_headers : Webs.resp -> Webs.HTTP.headers -> Webs.resp
  val with_body : Webs.resp -> Webs.Resp.body -> Webs.resp
  val pp : Format.formatter -> Webs.resp -> unit
end