diff --git a/.changeset/pretty-trainers-rescue.md b/.changeset/pretty-trainers-rescue.md new file mode 100644 index 00000000000..967710d7d0f --- /dev/null +++ b/.changeset/pretty-trainers-rescue.md @@ -0,0 +1,5 @@ +--- +"effect": patch +--- + +`Trie` type annotations have been aligned. The type parameter was made covariant because the structure is immutable. diff --git a/packages/effect/src/Trie.ts b/packages/effect/src/Trie.ts index 0033d02246c..2e8c19984c4 100644 --- a/packages/effect/src/Trie.ts +++ b/packages/effect/src/Trie.ts @@ -34,7 +34,7 @@ export type TypeId = typeof TypeId * @since 2.0.0 * @category models */ -export interface Trie extends Iterable<[string, Value]>, Equal, Pipeable, Inspectable { +export interface Trie extends Iterable<[string, Value]>, Equal, Pipeable, Inspectable { readonly [TypeId]: { readonly _Value: Covariant } @@ -122,8 +122,8 @@ export const make: >( * @category mutations */ export const insert: { - (key: string, value: V): (self: Trie) => Trie - (self: Trie, key: string, value: V): Trie + (key: string, value: V1): (self: Trie) => Trie + (self: Trie, key: string, value: V1): Trie } = TR.insert /** @@ -746,8 +746,8 @@ export const forEach: { * @category mutations */ export const modify: { - (key: string, f: (v: V) => V): (self: Trie) => Trie - (self: Trie, key: string, f: (v: V) => V): Trie + (key: string, f: (v: V) => V1): (self: Trie) => Trie + (self: Trie, key: string, f: (v: V) => V1): Trie } = TR.modify /** @@ -807,6 +807,6 @@ export const removeMany: { * @category mutations */ export const insertMany: { - (iter: Iterable<[string, V]>): (self: Trie) => Trie - (self: Trie, iter: Iterable<[string, V]>): Trie + (iter: Iterable<[string, V1]>): (self: Trie) => Trie + (self: Trie, iter: Iterable<[string, V1]>): Trie } = TR.insertMany