Lambda calculus of course is quite elegant, but doesn't it bother you that there is this asymmetry between input and output of a function? I.e. you can make the function take two parameters (by returning a function) but you can't make it return two values. I don't think we could find it in The Book.
You can make it return a function whose evaluations return two values.