sig
  type t
  type open_flag = Dbm_rdonly | Dbm_wronly | Dbm_rdwr | Dbm_create
  exception Dbm_error of string
  val opendbm : string -> Dbm.open_flag list -> int -> Dbm.t
  external close : Dbm.t -> unit = "caml_dbm_close"
  external find : Dbm.t -> string -> string = "caml_dbm_fetch"
  external add : Dbm.t -> string -> string -> unit = "caml_dbm_insert"
  external replace : Dbm.t -> string -> string -> unit = "caml_dbm_replace"
  external remove : Dbm.t -> string -> unit = "caml_dbm_delete"
  external firstkey : Dbm.t -> string = "caml_dbm_firstkey"
  external nextkey : Dbm.t -> string = "caml_dbm_nextkey"
  val iter : (string -> string -> 'a) -> Dbm.t -> unit
end