sig
  type t
  val create : client:Ketrew_client.t -> unit -> Ketrew_explorer.t
  val explore :
    Ketrew_explorer.t ->
    (unit,
     [> `Client of Ketrew_client.Error.t
      | `Database of Trakeva.Error.t
      | `Database_unavailable of string
      | `Failure of string
      | `IO of
          [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]
      | `Missing_data of string
      | `System of [> `File_info of string ] * [> `Exn of exn ]
      | `Target of [> `Deserilization of string ] ])
    Ketrew_unix_io.Deferred_result.t
end