[Haskell-cafe] Right tree structure for complicated problem