Using plus(a,b) for complex types sounds fine to me… I have to imagine if I were working with a huge file of these for a while it would start to feel normal, just like every language has a different syntax but you eventually feel comfortable using.
assign(x, plus(a, plus(b, plus(c, b))))
When you could have:
x = a + b + c + d;
Or:
(let x (+ a b c d))
?