[a]+[b][[...+c]]
where [a], [b], and [c] are all values
[a], [b], and [c] are numbers
returns the sum of [a], [b], [c] in the most precise type that appears in the chain
add(type[a], type[b], type[c]) is defined
returns a call of [a], [b], and [c] to add
[a]+[b] is defined
evaluates [a]+[b] first, then evaluates the rest of the expression