let solve_forward (graph : graph) : unit = 
  let curset = free_not_done_nodes graph in
    Hashset.iter (solve_single_forward graph) curset