public SmartFMap<K, V> plusAll(Map<? extends K, ? extends V> m) {
    SmartFMap<K, V> result = this;
    for (Map.Entry<? extends K, ? extends V> e : m.entrySet()) {
      result = result.plus(e.getKey(), e.getValue());
    }
    return result;
  }
public SmartFMap<K, V> plusAll(Map<? extends K, ? extends V> m)