pa_ppx

PPX Rewriters for Ocaml, written using Camlp5
Library pa_ppx_utils
Module Pa_ppx_utils . Tsort
val uniquize : ?compare:( 'a -> 'a -> int ) -> 'a list -> 'a list
type !'a list_adj_t = ('a * 'a list) list
val nodes : 'a list_adj_t -> 'a list
val merge_adj : 'a list_adj_t -> 'a list_adj_t -> ('a * 'a list) list
val invert_adj : ?compare:( 'a -> 'a -> int ) -> 'a list -> 'a list_adj_t -> ('a * 'a list) list
val succ2hash : 'a list -> 'a list_adj_t -> ( 'a, 'a list ) Hashtbl.t
val make_indegree : 'a list -> 'a list_adj_t -> ( 'a, int ) Hashtbl.t
val canon : 'a list -> 'a list
val tsort : ?compare:( 'b -> 'b -> int ) -> ?invertadj:bool -> ( 'a -> 'c -> 'c ) -> 'a list_adj_t -> 'c -> 'c
val cycles : 'a list_adj_t -> 'a Uf.t * ('a * 'a list) list
val collapse_cycles : 'a list_adj_t -> ('a * 'a list) list * ('a * 'a list) list
val tsort_cyclic : ?compare:( 'a -> 'a -> int ) -> ?invertadj:bool -> 'a list_adj_t -> 'a list list