Here's a function from Data.Tree:

unfoldTree :: (b -> (a, [b])) -> b -> Tree a
Build a tree from a seed value

Could someone please give me a brief example of usage.

Michael