namespace System.Collections.Generic;
/// Values by their keys, each key there once; a collection of its pairs.
[Intrinsic]
public interface IDictionary<TKey, TValue> : ICollection<KeyValuePair<TKey, TValue>> {
/// The value of `key` (a panic when it has none); set, it's added or replaced.
TValue this[TKey key] { get; set; }
ICollection<TKey> Keys { get; }
ICollection<TValue> Values { get; }
/// `key`'s value added; a panic when `key` has one already.
void Add(TKey key, TValue value);
readonly bool ContainsKey(TKey key);
/// Whether `key` was there to take away.
bool Remove(TKey key);
/// `key`'s value, or `null` when it has none.
readonly TValue? TryGetValue(TKey key);
}