public static void processCheckTypesAgenda() {
    if ((Logic.$CHECK_TYPES_AGENDA$.sequenceLength == 0) ||
        ((Boolean)(Logic.$INHIBITOBJECTFINALIZATIONp$.get())).booleanValue()) {
      return;
    }
    Logic.plLog(Logic.KWD_MEDIUM, Cons.cons(StringWrapper.wrapString("Processing check-types agenda..."), Stella.NIL));
    { VectorSequence agenda = Logic.$CHECK_TYPES_AGENDA$;
      Proposition proposition = null;

      Logic.$CHECK_TYPES_AGENDA$ = VectorSequence.newVectorSequence(4);
      { CheckTypesRecord record = null;
        VectorSequence vector000 = agenda;
        int index000 = 0;
        int length000 = vector000.sequenceLength;

        loop000 : for (;index000 < length000; index000 = index000 + 1) {
          record = ((CheckTypesRecord)((vector000.theArray)[index000]));
          proposition = record.proposition;
          if (!proposition.deletedP()) {
            { Object old$Typecheckmode$000 = Logic.$TYPECHECKMODE$.get();
              Object old$Termunderconstruction$000 = Logic.$TERMUNDERCONSTRUCTION$.get();
              Object old$Descriptionunderconstruction$000 = Logic.$DESCRIPTIONUNDERCONSTRUCTION$.get();
              Object old$Evaluationmode$000 = Logic.$EVALUATIONMODE$.get();

              try {
                Native.setSpecial(Logic.$TYPECHECKMODE$, ((((BooleanWrapper)(KeyValueList.dynamicSlotValue(proposition.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue &&
                    (!(Logic.$TYPE_CHECK_POLICY$ == Logic.KWD_IGNORE_TYPE_VIOLATIONS))) ? Logic.KWD_REPORT_TYPE_VIOLATIONS : Logic.$TYPE_CHECK_POLICY$));
                Native.setSpecial(Logic.$TERMUNDERCONSTRUCTION$, record.parentProposition);
                Native.setSpecial(Logic.$DESCRIPTIONUNDERCONSTRUCTION$, record.parentDescription);
                Native.setSpecial(Logic.$EVALUATIONMODE$, Logic.KWD_EXTENSIONAL_ASSERTION);
                if (((((Stella_Object)(Logic.$TERMUNDERCONSTRUCTION$.get())) != null) &&
                    ((Stella_Object)(Logic.$TERMUNDERCONSTRUCTION$.get())).deletedP()) ||
                    ((((Stella_Object)(Logic.$DESCRIPTIONUNDERCONSTRUCTION$.get())) != null) &&
                     ((Stella_Object)(Logic.$DESCRIPTIONUNDERCONSTRUCTION$.get())).deletedP())) {
                  continue loop000;
                }
                try {
                  { Object old$Module$000 = Stella.$MODULE$.get();
                    Object old$Context$000 = Stella.$CONTEXT$.get();

                    try {
                      Native.setSpecial(Stella.$MODULE$, record.module);
                      Native.setSpecial(Stella.$CONTEXT$, ((Module)(Stella.$MODULE$.get())));
                      Proposition.verifyArgumentTypesAndCount(proposition);

                    } finally {
                      Stella.$CONTEXT$.set(old$Context$000);
                      Stella.$MODULE$.set(old$Module$000);
                    }
                  }
                } catch (LogicException e) {
                  Stella.STANDARD_ERROR.nativeStream.print(Stella.exceptionMessage(e));
                }

              } finally {
                Logic.$EVALUATIONMODE$.set(old$Evaluationmode$000);
                Logic.$DESCRIPTIONUNDERCONSTRUCTION$.set(old$Descriptionunderconstruction$000);
                Logic.$TERMUNDERCONSTRUCTION$.set(old$Termunderconstruction$000);
                Logic.$TYPECHECKMODE$.set(old$Typecheckmode$000);
              }
            }
          }
        }
      }
    }
  }