public static boolean allPropositionsNextP(AllPurposeIterator self) {
    for (;;) {
      { Iterator iterator = self.iteratorNestedIterator;
        Module module = null;

        if (iterator.nextP()) {
          self.value = iterator.value;
          return (true);
        }
        module = ((Module)(((List)(self.iteratorObject)).pop()));
        if (module == null) {
          self.value = null;
          return (false);
        }
        self.iteratorNestedIterator = Logic.locallyConceivedPropositions(module).allocateIterator();
      }
    }
  }