System.out.println("flags: "+flags());
    protected Node addDefaultConstructor(TypeSystem ts, NodeFactory nf) {        ConstructorInstance ci = ts.defaultConstructor(position(), this.type);        this.type.addConstructor(ci);        Block block = null;        if (this.type.superType() instanceof ClassType && !JL5Flags.isEnumModifier(type.flags())) {            ConstructorInstance sci = ts.defaultConstructor(position(),                                                (ClassType) this.type.superType());            ConstructorCall cc = nf.SuperCall(position(),                                               Collections.EMPTY_LIST);            cc = cc.constructorInstance(sci);            block = nf.Block(position(), cc);        }        else {            block = nf.Block(position());        }                ConstructorDecl cd;        if (!JL5Flags.isEnumModifier(type.flags())){            cd = nf.ConstructorDecl(position(), JL5Flags.PUBLIC,                                                name, Collections.EMPTY_LIST,                                                Collections.EMPTY_LIST,                                                block);        }        else {            cd = nf.ConstructorDecl(position(), JL5Flags.PRIVATE,                                                name, Collections.EMPTY_LIST,                                                Collections.EMPTY_LIST,                                                block);        }        cd = (ConstructorDecl) cd.constructorInstance(ci);        return body(body.addMember(cd));    }