let rec aux tree = let i, solutions = match tree with | Leaf i -> i, [IntSet.empty, 0., infinity, 0., 0.; IntSet.singleton i, infinity, 0., 0., 0.] |> List.map soln_of_tuple | Node (i, subtrees) -> let closest_leaf = IntMap.find i cleafm in i, List.map aux subtrees |> combine_solutions ~verbose n_leaves |> cull ~verbose ~closest_leaf in List.iter (csvrow i) solutions; if i = top_id then solutions else (* ... *) let marks = bubbles_of i and masses = IntMap.get i [] mass |> List.enum and node_closest_leaf = IntMap.find i cleafm in