// Test default behavior and overloading of copy public
class aClass {
    public var name = "aClass";
}

class bClass(aClass) {
    public var name = "bClass";
    public proc copy() {
        var res;
        res = new bClass();
        res.name = "bClass copy";
        return res;
    }
}

proc main()
{
    var a = new aClass();
    "a.name = ", a.name, '\n';

    var b = new bClass();
    "b.name = ", b.name, '\n';

    var ac = a.copy();
    "ac.name = ", ac.name, '\n';

    var bc = b.copy();
    "bc.name = ", bc.name, '\n';
}