public static List getAllConceptsWithPrefix(Module module, boolean localP, String prefix) {
    { Iterator iter = Logic.allNamedDescriptions(module, localP);
      List result = List.newList();
      String downcasedprefix = Native.stringDowncase(prefix);

      { NamedDescription description = null;
        Iterator iter000 = iter;
        Cons collect000 = null;

        while (iter000.nextP()) {
          description = ((NamedDescription)(iter000.value));
          if (Logic.classP(description) &&
              ((prefix != null) &&
               Stella.startsWithP(GuiServer.getLogicObjectName(description, "FALSE"), downcasedprefix, 0))) {
            if (collect000 == null) {
              {
                collect000 = Cons.cons(description, Stella.NIL);
                if (result.theConsList == Stella.NIL) {
                  result.theConsList = collect000;
                }
                else {
                  Cons.addConsToEndOfConsList(result.theConsList, collect000);
                }
              }
            }
            else {
              {
                collect000.rest = Cons.cons(description, Stella.NIL);
                collect000 = collect000.rest;
              }
            }
          }
        }
      }
      return (result);
    }
  }