sig
  exception Invalid_objectId
  exception Wrong_bson_type
  exception Wrong_string
  exception Malformed_bson
  type t
  type special = NULL | MINKEY | MAXKEY
  type element
  val empty : Bson.t
  val is_empty : Bson.t -> bool
  val add_element : string -> Bson.element -> Bson.t -> Bson.t
  val get_element : string -> Bson.t -> Bson.element
  val remove_element : string -> Bson.t -> Bson.t
  val encode : Bson.t -> string
  val decode : string -> Bson.t
  val create_double : float -> Bson.element
  val create_string : string -> Bson.element
  val create_doc_element : Bson.t -> Bson.element
  val create_list : Bson.element list -> Bson.element
  val create_user_binary : string -> Bson.element
  val create_objectId : string -> Bson.element
  val create_boolean : bool -> Bson.element
  val create_utc : int64 -> Bson.element
  val create_null : unit -> Bson.element
  val create_regex : string -> string -> Bson.element
  val create_jscode : string -> Bson.element
  val create_jscode_w_s : string -> Bson.t -> Bson.element
  val create_int32 : int32 -> Bson.element
  val create_int64 : int64 -> Bson.element
  val create_minkey : unit -> Bson.element
  val create_maxkey : unit -> Bson.element
  val get_double : Bson.element -> float
  val get_string : Bson.element -> string
  val get_doc_element : Bson.element -> Bson.t
  val get_list : Bson.element -> Bson.element list
  val get_generic_binary : Bson.element -> string
  val get_function_binary : Bson.element -> string
  val get_uuid_binary : Bson.element -> string
  val get_md5_binary : Bson.element -> string
  val get_user_binary : Bson.element -> string
  val get_objectId : Bson.element -> string
  val get_boolean : Bson.element -> bool
  val get_utc : Bson.element -> int64
  val get_null : Bson.element -> Bson.special
  val get_regex : Bson.element -> string * string
  val get_jscode : Bson.element -> string
  val get_jscode_w_s : Bson.element -> string * Bson.t
  val get_int32 : Bson.element -> int32
  val get_int64 : Bson.element -> int64
  val get_timestamp : Bson.element -> int64
  val get_minkey : Bson.element -> Bson.special
  val get_maxkey : Bson.element -> Bson.special
  val to_simple_json : Bson.t -> string
end