proc main()
{
    var a, b;
    a = [5,6,7].iterate()[1:2,1:3,1:4];
    "a:\n", a, "\n\n";

    "@a:\n", @a, "\n\n";

    b = new Array(2,3,4);
    forall(a[i,j,k]) {
        b[i,j,k] = a[i,j,k];
    }
    "Manual copy:\n", b, "\n\n";

    a = [['0','1','2','3','4'],
         ['5','6','7','8','9'],
         ['a','b','c','d','e'],
         ['f','g','h','i','j']];
    a = a[1:2,1:3];

    "a:\n", a, "\n\n";

    "@a:\n", @a, "\n\n";

    a = [[['0','1','2','3','4'],
          ['5','6','7','8','9'],
          ['a','b','c','d','e']],
         [['f','g','h','i','j'],
          ['k','l','m','n','o'],
          ['p','q','r','s','t']]];
    a = a[1:1,1:2,1:3];
    "a:\n", a, "\n\n";

    "@a:\n", @a, "\n";
}