proc main()
{
var va, vb;
var ma, mb;
const types = {Float, Double, Half};
va = 3->iterate();
vb = 3 + 3->iterate();
ma = [2,3].iterate();
mb = 6 + [3,4].iterate();
forall (types[i]) {
var a, b;
a = types[i](va); b = types[i](vb);
"", a.inner(`+,`*,b), '\n';
a = types[i](ma); b = types[i](mb);
"", a.inner(`+,`*,b), '\n';
}
}