Returns a new Map by filtering its keys using the given predicate.
Map<K, V> whereKey(Predicate<K> p) { Map<K, V> map = {}; forEach((k, v) { if (p(k)) map[k] = v; }); return map; }