public static Cons translateLoomPartitions(Stella_Object partitions, boolean exhaustiveP, Symbol parentconcept) {
    { Cons axioms = Stella.NIL;
      Cons partitionList = Stella.NIL;

      if (!Stella_Object.consP(partitions)) {
        partitions = Cons.consList(Cons.cons(partitions, Stella.NIL));
      }
      if (Stella_Object.consP(((Cons)(partitions)).value)) {
        partitionList = ((Cons)(partitions));
      }
      else {
        { Stella_Object clause = null;
          Cons iter000 = ((Cons)(partitions));

          for (;!(iter000 == Stella.NIL); iter000 = iter000.rest) {
            clause = iter000.value;
            partitionList = Cons.cons(Cons.consList(Cons.cons(clause, Stella.NIL)), partitionList);
          }
        }
      }
      { Cons clause = null;
        Cons iter001 = partitionList;

        for (;!(iter001 == Stella.NIL); iter001 = iter001.rest) {
          clause = ((Cons)(iter001.value));
          { Stella_Object name = clause.value;
            Cons concepts = ((Cons)(clause.rest.value));
            Cons localaxioms = Stella.NIL;

            localaxioms = Cons.cons(Cons.list$(Cons.cons(edu.isi.powerloom.pl_kernel_kb.loom_api.LoomApi.SYM_PL_KERNEL_KB_MUTUALLY_DISJOINT_COLLECTION, Cons.cons(name, Cons.cons(Stella.NIL, Stella.NIL)))), localaxioms);
            if (concepts != null) {
              localaxioms = Cons.cons(Cons.list$(Cons.cons(Logic.SYM_STELLA_e, Cons.cons(name, Cons.cons(Cons.cons(Cons.cons(Logic.SYM_PL_KERNEL_KB_SETOF, concepts.concatenate(Stella.NIL, Stella.NIL)), Stella.NIL), Stella.NIL)))), localaxioms);
            }
            if (exhaustiveP) {
              localaxioms = Cons.cons(Cons.list$(Cons.cons(edu.isi.powerloom.pl_kernel_kb.loom_api.LoomApi.SYM_PL_KERNEL_KB_COVERING, Cons.cons(name, Cons.cons(Cons.cons(parentconcept, Stella.NIL), Stella.NIL)))), localaxioms);
            }
            axioms = Cons.cons(Logic.conjoinSentences(localaxioms.reverse()), axioms);
          }
        }
      }
      return (axioms);
    }
  }