sig
  exception Sqlite_error of string
  exception Sqlite_done
  exception Sqlite_busy
  exception Sqlite_null_value
  type db
  type vm
  type rc =
      RC_ok
    | RC_error
    | RC_internal
    | RC_perm
    | RC_abort
    | RC_busy
    | RC_locked
    | RC_nomem
    | RC_readonly
    | RC_interrupt
    | RC_ioerr
    | RC_corrupt
    | RC_notfound
    | RC_full
    | RC_cantopen
    | RC_protocol
    | RC_empty
    | RC_schema
    | RC_toobig
    | RC_constraint
    | RC_mismatch
    | RC_misuse
    | RC_nofls
    | RC_auth
    | RC_format
  external db_open : string -> Sqlite.db = "caml_sqlite_open"
  external db_close : Sqlite.db -> unit = "caml_sqlite_close"
  external exec : Sqlite.db -> string -> unit = "caml_sqlite_exec"
  external last_insert_rowid : Sqlite.db -> int
    = "caml_sqlite_last_insert_rowid"
  external db_rc : Sqlite.db -> Sqlite.rc = "caml_sqlite_db_retcode"
  external compile :
    Sqlite.db -> string -> int -> bool -> Sqlite.vm * int * bool
    = "caml_sqlite_compile"
  external compile_simple : Sqlite.db -> string -> Sqlite.vm
    = "caml_sqlite_compile_simple"
  external step : Sqlite.vm -> string -> string array = "caml_sqlite_step"
  external step_simple : Sqlite.vm -> string array
    = "caml_sqlite_step_simple"
  external step_opt : Sqlite.vm -> string option array
    = "caml_sqlite_step_opt"
  external finalize : Sqlite.vm -> unit = "caml_sqlite_vm_finalize"
  external vm_rc : Sqlite.vm -> Sqlite.rc = "caml_sqlite_vm_retcode"
  external column_names : Sqlite.vm -> string array
    = "caml_sqlite_column_names"
  external column_types : Sqlite.vm -> string array
    = "caml_sqlite_column_types"
end