public Map<Object, Object> toMap() {
    final Map<Object, Object> map = new HashMap<Object, Object>(this.size());
    try {
      for (E elt : this) {
        CycList<Object> eltAsList = (CycList<Object>)elt;
        map.put(eltAsList.first(), eltAsList.rest());
      }
    } catch (Exception e) {
      throw new UnsupportedOperationException("Unable to convert CycList to Map because CycList is not an association-list.", e);
    }
    return map;
  }