1"effect/HashMap#countBy":
2 replacement: "HashMap.reduce"
3 note: "Count matches with HashMap.reduce(self, 0, (count, value, key) => count + (predicate(value, key) ? 1 : 0))."
4"effect/HashMap#HashMap":
5 replacement: "HashMap.HashMap"
6 note: "The immutable two-parameter model remains; use public operations rather than depending on its representation."
7"effect/HashMap#keySet":
8 replacement: "HashSet.fromIterable + HashMap.keys"
9 note: "Construct the set with HashSet.fromIterable(HashMap.keys(self)); no direct keySet helper remains."
10"effect/HashMap#TypeId":
11 replacement: "HashMap.isHashMap"
12 note: "The brand is private; use HashMap.isHashMap for runtime refinement and HashMap.HashMap<K, V> in type positions."
13"effect/HashMap#unsafeGet":
14 replacement: "HashMap.getUnsafe"
15 note: "Direct word-order rename; it still throws for a missing key."