sig
  type label
  type t
  val weight : Nonnegative.WEIGHT.label -> Nonnegative.WEIGHT.t
  val compare : Nonnegative.WEIGHT.t -> Nonnegative.WEIGHT.t -> int
  val add :
    Nonnegative.WEIGHT.t -> Nonnegative.WEIGHT.t -> Nonnegative.WEIGHT.t
  val zero : Nonnegative.WEIGHT.t
end