sig
  type ('a, 'b) t
  val create :
    ?scope:[< Eliom_comet.Channel.comet_scope ] ->
    ?name:string -> ?size:int -> 'Deriving_Json.t -> ('a, 'a) Eliom_bus.t
  val create_filtered :
    ?scope:[< Eliom_comet.Channel.comet_scope ] ->
    ?name:string ->
    ?size:int ->
    filter:('-> 'Lwt.t) -> 'Deriving_Json.t -> ('a, 'b) Eliom_bus.t
  val stream : ('a, 'b) Eliom_bus.t -> 'Lwt_stream.t
  val write : ('a, 'b) Eliom_bus.t -> '-> unit Lwt.t
end