sig
  val copy :
    string ->
    string ->
    (unit,
     [> `Database of Trakeva.Error.t
      | `Database_unavailable of string
      | `Fetching_node of Ketrew.Persistent_data.Error.fetching_node
      | `IO of
          [> `Read_file_exn of string * exn | `Write_file_exn of string * exn ]
      | `Not_a_directory of string
      | `System of
          [> `File_info of string
           | `List_directory of string
           | `Make_directory of string ] *
          [> `Exn of exn | `Wrong_access_rights of int ]
      | `Target of [> `Deserilization of string ] ])
    Unix_io.Deferred_result.t
end