let solve_step graph = solve_forward graph; match (find_free_group graph) with | None -> [ graph ] | Some (group, inbounds) -> solve_group graph group inbounds