sig   type t = {     mutable o_s : bytes;     mutable o_max_len : int;     mutable o_len : int;     mutable o_offs : int;     o_init_len : int;     o_make_room : Bi_outbuf.t -> int -> unit;     mutable o_shared : Bi_share.Wr.tbl;     o_shared_init_len : int;   }   val really_extend : Bi_outbuf.t -> int -> unit   val flush_to_channel : Pervasives.out_channel -> Bi_outbuf.t -> int -> unit   val create :     ?make_room:(Bi_outbuf.t -> int -> unit) ->     ?shrlen:int -> int -> Bi_outbuf.t   val contents : Bi_outbuf.t -> string   val create_channel_writer :     ?len:int -> ?shrlen:int -> Pervasives.out_channel -> Bi_outbuf.t   val flush_channel_writer : Bi_outbuf.t -> unit   val create_output_writer :     ?len:int ->     ?shrlen:int ->     < output : string -> int -> int -> int; .. > -> Bi_outbuf.t   val flush_output_writer : Bi_outbuf.t -> unit   val extend : Bi_outbuf.t -> int -> unit   val alloc : Bi_outbuf.t -> int -> int   val add_string : Bi_outbuf.t -> string -> unit   val add_substring : Bi_outbuf.t -> string -> int -> int -> unit   val add_char : Bi_outbuf.t -> char -> unit   val add_char2 : Bi_outbuf.t -> char -> char -> unit   val add_char4 : Bi_outbuf.t -> char -> char -> char -> char -> unit   val unsafe_add_char : Bi_outbuf.t -> char -> unit   val clear : Bi_outbuf.t -> unit   val reset : Bi_outbuf.t -> unit end