class foo {
public var x, y;
}
foo bar {x = 3}
namespace ack {
foo bar {x = [[1,2],[3,4]]}
}
proc main()
{
io::putvar("Hello!\n");
io::putvar(L"Hello!\xABCD");
io::putvar(["123","456"]);
io::putvar('A');
io::putvar(L'\x01');
io::putvar(true);
io::putvar(1, 2b, 3ub, 4s, 5us, 6u, 7l, 8ul, 9.h, 10., 11.d);
io::putvar([[1,2],[3,4]]);
io::putvar(#{#{'1','2'},#{'3','4'}});
io::putvar(<<<"one",1,"II",2,"pi",3.14,"four",[[1,2],[3,4]]>>>);
io::putvar(bar, ack::bar);
var x = new foo();
x.x = public::x;
x.y = foo;
io::putvar(x);
var y = new foo();
y.x = ack::bar;
y.y = x;
io::putvar(y);
// Test recursion
y.y = y;
try {
io::putvar(y);
}
catch (e) {
"Caught ", e, '\n';
}
}