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
      | `Fetching_node of Persistent_data.Error.fetching_node
      | `IO of
          [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]
      | `System of [> `File_info of string ] * [> `Exn of exn ]
      | `Target of [> `Deserilization of string ] ])
    Unix_io.Deferred_result.t
end