sig
  module type VCS =
    sig
      val exists : OpamTypes.repository -> bool
      val init : OpamTypes.repository -> unit OpamProcess.job
      val fetch : OpamTypes.repository -> unit OpamProcess.job
      val reset : OpamTypes.repository -> unit OpamProcess.job
      val diff : OpamTypes.repository -> bool OpamProcess.job
      val revision : OpamTypes.repository -> string OpamProcess.job
      val versionned_files :
        OpamTypes.repository -> string list OpamProcess.job
    end
  module Make : functor (VCS : VCS-> OpamRepository.BACKEND
end