Хотите написать функцию, которая берет розовое дерево и возвращает список списка листьев, где листья сгруппированы, если они имеют один и тот же родительский узел. Например, ввод:
Rose 6 [Rose 7 [Rose 1 [], Rose 2 []], Rose 8 [Rose 3 []] ]
должен возвращать
[[1,2],[3]]
Пока у меня есть функция, которая возвращает все листья дерева в одном списке:
roseLeaves :: Rose a -> [a]
roseLeaves (Rose a rts) = case rts of
[] -> [a]
otherwise -> concat (map (roseLeaves) rts)