let rec remove_empty_groups g =
let rec iter g =
let l = List.map iter g.group_groups in
let (sum, l2) =
List.fold_left
(fun (acc_sum, acc_l) (n,g) ->
if n = 0 then
(acc_sum, acc_l)
else
(acc_sum + n, acc_l @ [g])
)
(List.length g.group_items, [])
l
in
g.group_groups <- l2;
(sum, g)
in
iter g