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