How to understand foldTree function? I have been deeply studying foldTree function in Haskell, which is defined as follows: