He  Daniel,

 I use the Data.Map now, this makes it way more flexibler


data WordTree
   = Branch [(Char, WordTree)]
   | Tip


I only don't use this type of Tree. I am not sure how it works, but it looks good, so I will experiment with it. Is it a so called rose tree? (Then I can find some articles about it).
 

Share the subtree,
                       Just a -> let st = buildTree cs r
                                 in Choice (a,st) (c,st)

Stupid thing not to do, think I overlooked it :)

Thanks again.

Edgar