Линия
[...] = show x ++ ++ show [...]
содержит несколько синтаксических ошибок. В частности, (++)
- это бинарный оператор, а не то, что окружает ваш show foo
.
Попробуйте
[...] = show x ++ show treeB ++ show treeJ
Кроме того,
show Leaf
не определено:
show Leaf = "Leaf"