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