I'm not sure how you're seeing those results. I took your code as is and am getting 8 for both of your examples
+ ( + 4 4 ) 4
and
+ 4 ( + 4 4 )

Looks like you've got some refining to do.