/* Verify numeric type promotion in dictionaries */
proc main()
{
    var a, typ, j;
    a = <<<'A',"char A",
           L'B', "wchar B",
           67b, "byte 67",
           68ub, "ubyte 68",
           69s, "short 69",
           70us, "ushort 70",
           71, "int 71",
           72u, "uint 72",
           73l, "long 73",
           74ul, "ulong 74",
           75.h, "half 75",
           76., "float 76",
           77.d, "double 77">>>;
    typ = {Char, WideChar, Byte, Ubyte, Short, Ushort, Int, Uint, Long, Ulong,
           Half, Float, Double};
    forall(typ[i]) {
        "Testing typ ", typ[i], '\n';
        for (j = 65; j <= 77; j++) {
            var ty = typ[i];
            "    a[",ty(j),"] = ", a[ty(j)], '\n';
        }
    }
}