Module Nonnegative

module Nonnegative: sig .. end
Weighted graphs without negative-cycles.

module type WEIGHT = sig .. end
Signature for edges' weights.
module Imperative: 
functor (G : Sig.IM) ->
functor (W : WEIGHT with type label = G.E.label) -> sig .. end
module Persistent: 
functor (G : Sig.P) ->
functor (W : WEIGHT with type label = G.E.label) -> sig .. end
Persistent graphs with negative-cycle prevention