<p>The expression <code>foo(1, 1.0)</code> has argument types <code>(int, real)</code>
and thus does not explicitly match either function signature. By
promoting the integer expression <code>1</code> to type <code>real</code>, it is
able to match <code>foo(real, real)</code>, and hence the type of the
function expression <code>foo(1, 1.0)</code> is <code>real</code>.</p>
<p>In some cases (though not for any built-in Stan functions), a
situation may arise in which the function referred to by an
expression re