@Override
  public String stringApiValue() {
    if (size() <= 0) {
      return CycObjectFactory.nil.stringApiValue();
    }
    StringBuilder buf = new StringBuilder("(LIST ");
    for (Iterator<CycSymbol> iter = keySet().iterator(); iter.hasNext();) {
      CycSymbol key = iter.next();
      buf.append(DefaultCycObject.stringApiValue(key));
      buf.append(" ");
      final Object val = get(key);
      buf.append(parameterValueStringApiValue(key, val));
      if (iter.hasNext()) {
        buf.append(" ");
      }
    }
    buf.append(")");
    return buf.toString();
  }