static {
      type = StructDef.create(AllObjects.class, NdNode.type);

      BASE_CLASS_INSTANCES = FieldOneToMany.create(type, BaseClass.DELETION_DETECTOR, 0);
      REFERENCE_INSTANCES = FieldOneToMany.create(type, Reference.DELETION_DETECTOR, 0);
      type.done();
    }
    static {
      type = StructDef.create(BaseClass.class, NdNode.type);

      INCOMING_REFERENCES = FieldOneToMany.create(type, Reference.BASE_CLASS_REFERENCE, 0);
      OWNED_REFERENCES = FieldOneToMany.create(type, Reference.OWNER, 0);
      DELETION_DETECTOR = FieldManyToOne.create(type, AllObjects.BASE_CLASS_INSTANCES);
      type.useStandardRefCounting().done();
    }
    static {
      type = StructDef.create(SubClass.class, BaseClass.type);

      MORE_REFERENCES = FieldOneToMany.create(type, Reference.SUB_CLASS_REFERENCE, 0);
      type.useStandardRefCounting().done();
    }
 boolean contains(Reference toTest) {
   return REFERENCE_INSTANCES.asList(getNd(), this.address).contains(toTest);
 }
 boolean contains(BaseClass toTest) {
   return BASE_CLASS_INSTANCES.asList(getNd(), this.address).contains(toTest);
 }