let undirect g =
let g2 = UndG.create () in
G.iter_vertex (fun v ->
UndG.add_vertex g2 v;
G.iter_succ (fun v' ->
UndG.add_edge g2 v v'
) g v;
G.iter_pred (fun v' ->
UndG.add_edge g2 v' v
) g v
) g;
g2