sig
  type edge
  type t
  val weight : Path.WEIGHT.edge -> Path.WEIGHT.t
  val compare : Path.WEIGHT.t -> Path.WEIGHT.t -> int
  val add : Path.WEIGHT.t -> Path.WEIGHT.t -> Path.WEIGHT.t
  val zero : Path.WEIGHT.t
end