module type G = sig ... end
module Dijkstra : functor (G : G) -> functor (W : sig ... end) -> sig ... end
module BellmanFord : functor (G : G) -> functor (W : sig ... end) -> sig ... end
module type WJ = sig ... end
module Johnson : functor (G : G) -> functor (W : sig ... end) -> sig ... end
module Check : functor (G : sig ... end) -> sig ... end