Folding over a Rose Tree : Tree a -> [a]
I don't think that using monads here itself is overkill,
but I would suggest using concat instead of join. 

There are no different Monads that could be an argument 
to join here. Using concat is more apropriate (imo).