 expressions of type <code>int</code> may be used
anywhere an expression of type <code>real</code> is specified, namely in
assignment or function argument passing. An integer is promoted to
real by casting it in the underlying C++ code.</p>
<p>The remaining rules have to do with covariant typing rules, which say
that a container of type <code>U</code> may be promoted to a container of the
same shape of type <code>T</code> if <code>U</code> can be promoted to <code>T</code>. For vector and
matrix types, this