As Map.keys, but result is stable; it always returns the same instance.
Iterable<K> get keys { _keys ??= _map.keys; return _keys!; }