sig
  val packages : Rapids.db -> Rapids.package_set
  val units : Rapids.db -> Rapids.unit_set
  val sources : Rapids.db -> Rapids.source_set
  val archives : Rapids.db -> Rapids.archive_set
  val unit_id_to_package_set :
    Rapids.db -> Rapids.unit_id -> Rapids.package_set
  val unit_id_to_providers :
    Rapids.db ->
    Rapids.unit_id ->
    (Rapids.package_id, Rapids.version_number * Rapids.release_number,
     Rapids.glob)
    Napkin.versioned list
  val select :
    Rapids.db ->
    (Rapids.Unit_index.id,
     Rapids.Version_index.handle * Rapids.Release_index.handle, string)
    Napkin.versioned -> Rapids.package_set
  val dependency_closure :
    Rapids.db ->
    ?relations:[ `Dep | `Pre ] list ->
    Rapids.package_set -> Rapids.package_set
  val dependency_path :
    ?conjunctive:bool ->
    Rapids.db ->
    Rapids.package_set ->
    Rapids.package_id -> Rapids.package_id -> Rapids.package_id list option
  val conflicts : Rapids.db -> Rapids.package_set -> Rapids.package_set
  val get_package_from_id : Rapids.db -> Rapids.package_id -> Rapids.package
  val scribe_package :
    Rapids.db ->
    'Conduit.conduit ->
    '->
    ?default_architecture:Rapids.architecture_id -> Rapids.package -> unit
  val scribe_package_from_id :
    Rapids.db ->
    'Conduit.conduit ->
    '->
    ?default_architecture:Rapids.architecture_id -> Rapids.package_id -> unit
  val scribe_unit_from_id :
    Rapids.db -> 'Conduit.conduit -> '-> Rapids.unit_id -> unit
  val scribe_archive_from_id :
    Rapids.db -> 'Conduit.conduit -> '-> Rapids.archive_id -> unit
  val scribe_source_from_id :
    Rapids.db -> 'Conduit.conduit -> '-> Rapids.source_id -> unit
  val scribe_version_from_number :
    Rapids.db ->
    'Conduit.conduit ->
    '-> Rapids.version_number * Rapids.release_number -> unit
end