sig
  type 'a result
  type db
  type stmt
  val open_db :
    ?init:(Sqlite3.db -> unit) -> string -> Sqlexpr_sqlite.POOL.db
  val close_db : Sqlexpr_sqlite.POOL.db -> unit
  val prepare :
    Sqlexpr_sqlite.POOL.db ->
    (Sqlexpr_sqlite.POOL.stmt ->
     string -> Sqlite3.Data.t list -> 'Sqlexpr_sqlite.POOL.result) ->
    Sqlexpr_sqlite.st -> 'Sqlexpr_sqlite.POOL.result
  val step :
    ?sql:string ->
    ?params:Sqlite3.Data.t list ->
    Sqlexpr_sqlite.POOL.stmt -> Sqlite3.Rc.t Sqlexpr_sqlite.POOL.result
  val step_with_last_insert_rowid :
    ?sql:string ->
    ?params:Sqlite3.Data.t list ->
    Sqlexpr_sqlite.POOL.stmt -> Int64.t Sqlexpr_sqlite.POOL.result
  val reset : Sqlexpr_sqlite.POOL.stmt -> unit Sqlexpr_sqlite.POOL.result
  val row_data :
    Sqlexpr_sqlite.POOL.stmt ->
    Sqlite3.Data.t array Sqlexpr_sqlite.POOL.result
  val raise_error :
    Sqlexpr_sqlite.POOL.stmt ->
    ?sql:string ->
    ?params:Sqlite3.Data.t list ->
    ?errmsg:string -> Sqlite3.Rc.t -> 'Sqlexpr_sqlite.POOL.result
  val unsafe_execute :
    Sqlexpr_sqlite.POOL.db -> string -> unit Sqlexpr_sqlite.POOL.result
  val borrow_worker :
    Sqlexpr_sqlite.POOL.db ->
    (Sqlexpr_sqlite.POOL.db -> 'Sqlexpr_sqlite.POOL.result) ->
    'Sqlexpr_sqlite.POOL.result
  val steal_worker :
    Sqlexpr_sqlite.POOL.db ->
    (Sqlexpr_sqlite.POOL.db -> 'Sqlexpr_sqlite.POOL.result) ->
    'Sqlexpr_sqlite.POOL.result
end