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