let fold_left f s n = let m = n_children n in let rec fold i r = if i >= m then r else fold (i + 1) (f r (child i n)) in fold 0 s