let pretty_graph ?(bw=false) fmt graph =
let all =
let r = ref [] in
G.iter_vertex (fun n -> r := n :: !r) graph;
List.sort Node.compare !r
in
let iter = if bw then G.iter_pred_e else G.iter_succ_e in
let print_node n = Format.fprintf fmt "%a@." Node.pretty_node n in
let print_dpd d =
let dpd_kind = G.E.label d in
if bw then Format.fprintf fmt " <-%a- %d@." G.pretty_edge_label dpd_kind
(Node.elem_id (G.E.src d))
else Format.fprintf fmt " -%a-> %d@." G.pretty_edge_label dpd_kind
(Node.elem_id (G.E.dst d))
in
let print_node_and_dpds n =
print_node n;
iter print_dpd graph n
in
List.iter print_node_and_dpds all