if (moduleroot.isModule() && moduleroot.moduleClass().type() == Type.NoType) {
if (moduleroot != null && moduleroot.isModule() && moduleroot.moduleClass().type() == Type.NoType) {
    private UnPickle(Global global, byte[] data, Symbol root) {	this.global = global;        this.classroot = root.linkedClass();        this.moduleroot = root.linkedModule();        assert !classroot.isNone(): Debug.show(root);        assert !moduleroot.isNone(): Debug.show(root);	if (root != moduleroot && moduleroot.isModule()) {	    moduleroot.moduleClass().setInfo(Type.NoType);	}	if (global.debug) 	    global.log(		"unpickle " + root + " " + classroot + " " + moduleroot + " " + 		moduleroot.moduleClass() + " " + moduleroot.moduleClass().primaryConstructor());	this.bytes = data;	this.bp = 0;	index = new int[readNat()];	for (int i = 0; i < index.length; i++) {	    index[i] = bp;	    bp++;	    bp = readNat() + bp;	}	entries = new Object[index.length];	if (global.debug) print(System.out);	for (int i = 0; i < index.length; i++) {	    if (isSymbolEntry(i)) getSymbol(i);	}	if (global.debug) global.log("unpickled " + root + ":" + root.rawInfo());//debug	if (!root.isInitialized())	    throw new BadSignature(this, "it does not define " + root);	if (moduleroot.isModule() && moduleroot.moduleClass().type() == Type.NoType) {	    moduleroot.setInfo(Type.NoType);	}     }