class idxClass {
    var i;
    public proc create(a) { i = a; }
    public operator =>(t) { assert(t == Int); return i => Int; }
}

proc main()
{
    var i = new idxClass([0.1,1.2]);
    var a = [2,3].iterate();

    "Index by object subscript:\n", a[i,0], '\n';

    a[i,0] = [100,200];
    "After assign by object subscript:\n", a, '\n';

    a#[i] = [400,500];
    "After assign by object hash sub:\n", a, '\n';

    "Index by object hash sub:\n", a#[i], '\n';
}