public String cyclify() {
    final StringBuffer result = new StringBuffer("(");
    for (int i = 0; i < super.size(); i++) {
      E object = this.get(i);
      if (object == null) {
        throw new RuntimeException("Invalid null element after " + result + " in " + this);
      }
      if (i > 0) {
        result.append(" ");
      }
      result.append(DefaultCycObject.cyclify(object));
    }
    if (!isProperList) {
      result.append(" . ");
      result.append(DefaultCycObject.cyclify(dottedElement));
    }
    result.append(")");
    return result.toString();
  }