Option<IMap<K, V>> set(K k, V v) { final newMap = setIfPresent(k, v); return identical(this, newMap) ? none() : some(newMap); }