sig
  module File_content :
    sig
      type t = string
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Xhtml_content :
    sig
      type t = [ `Html ] XHTML.M.elt
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Text_content :
    sig
      type t = string * string
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Stream_content :
    sig
      type t = string Ocsistream.t
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Streamlist_content :
    sig
      type t = (unit -> string Ocsistream.t Lwt.t) list * string
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Empty_content :
    sig
      type t = unit
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Directory_content :
    sig
      type t = string * string list
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  module Error_content :
    sig
      type t = int option * exn option
      val result_of_content : t -> Http_frame.result Lwt.t
      val get_etag : t -> Http_frame.etag option
    end
  val send_error :
    ?code:int ->
    ?exn:exn ->
    Http_com.slot ->
    clientproto:Http_frame.Http_header.proto ->
    ?mode:Http_frame.Http_header.http_mode ->
    ?proto:Http_frame.Http_header.proto ->
    keep_alive:bool ->
    head:bool -> sender:Http_com.sender_type -> unit -> unit Lwt.t
end