module type NODE = sig
type t
val compare : t -> t -> int
val to_string : t -> string
end
module Make (N : NODE) (NMap : WrappedMap.S with type key = N.t) (NSet : Set.S with type elt = N.t) : sig
val topsort : roots:NSet.t -> NSet.t NMap.t -> N.t Nel.t list
val log : N.t Nel.t list -> unit
end