*
   * @throws IOException if a communications error occurs
   * @throws UnknownHostException if the Cyc server cannot be found
   * @throws CycApiException if the Cyc server returns an error
   */
  public CycList canonicalizeList(CycList cycList)
          throws UnknownHostException, IOException, CycApiException {
    CycList canonicalList = new CycList();
    Iterator iter = cycList.iterator();

    while (iter.hasNext()) {
      Object obj = iter.next();

      if (obj instanceof CycList) {
        canonicalList.add(getHLCycTerm(((CycList) obj).cyclify()));
      } else if (obj instanceof CycNart) {
        canonicalList.add(getHLCycTerm(((CycNart) obj).cyclify()));
      } else {
        canonicalList.add(obj);
      }
    }

    return canonicalList;
  }