effect 2.3.7 → 2.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/dist/cjs/BigDecimal.js +1 -1
  2. package/dist/cjs/BigDecimal.js.map +1 -1
  3. package/dist/cjs/Chunk.js +1 -1
  4. package/dist/cjs/Chunk.js.map +1 -1
  5. package/dist/cjs/Cron.js +1 -1
  6. package/dist/cjs/Cron.js.map +1 -1
  7. package/dist/cjs/Duration.js +1 -1
  8. package/dist/cjs/Duration.js.map +1 -1
  9. package/dist/cjs/FiberMap.js.map +1 -1
  10. package/dist/cjs/Hash.js +29 -1
  11. package/dist/cjs/Hash.js.map +1 -1
  12. package/dist/cjs/List.js +3 -2
  13. package/dist/cjs/List.js.map +1 -1
  14. package/dist/cjs/SortedMap.js +1 -1
  15. package/dist/cjs/SortedMap.js.map +1 -1
  16. package/dist/cjs/SortedSet.js +1 -1
  17. package/dist/cjs/SortedSet.js.map +1 -1
  18. package/dist/cjs/TestAnnotation.js +1 -1
  19. package/dist/cjs/TestAnnotation.js.map +1 -1
  20. package/dist/cjs/internal/cache.js +1 -1
  21. package/dist/cjs/internal/cache.js.map +1 -1
  22. package/dist/cjs/internal/cause.js +1 -1
  23. package/dist/cjs/internal/cause.js.map +1 -1
  24. package/dist/cjs/internal/context.js +1 -1
  25. package/dist/cjs/internal/context.js.map +1 -1
  26. package/dist/cjs/internal/core.js +4 -4
  27. package/dist/cjs/internal/core.js.map +1 -1
  28. package/dist/cjs/internal/data.js +1 -1
  29. package/dist/cjs/internal/data.js.map +1 -1
  30. package/dist/cjs/internal/effect/circular.js +1 -1
  31. package/dist/cjs/internal/effect/circular.js.map +1 -1
  32. package/dist/cjs/internal/effectable.js +2 -2
  33. package/dist/cjs/internal/effectable.js.map +1 -1
  34. package/dist/cjs/internal/either.js +2 -2
  35. package/dist/cjs/internal/either.js.map +1 -1
  36. package/dist/cjs/internal/fiberId.js +2 -9
  37. package/dist/cjs/internal/fiberId.js.map +1 -1
  38. package/dist/cjs/internal/fiberStatus.js +4 -3
  39. package/dist/cjs/internal/fiberStatus.js.map +1 -1
  40. package/dist/cjs/internal/hashMap.js +1 -1
  41. package/dist/cjs/internal/hashMap.js.map +1 -1
  42. package/dist/cjs/internal/hashSet.js +1 -1
  43. package/dist/cjs/internal/hashSet.js.map +1 -1
  44. package/dist/cjs/internal/keyedPool.js +2 -2
  45. package/dist/cjs/internal/keyedPool.js.map +1 -1
  46. package/dist/cjs/internal/metric/keyType.js +4 -4
  47. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  48. package/dist/cjs/internal/metric/state.js +5 -9
  49. package/dist/cjs/internal/metric/state.js.map +1 -1
  50. package/dist/cjs/internal/option.js +1 -1
  51. package/dist/cjs/internal/option.js.map +1 -1
  52. package/dist/cjs/internal/pool.js +1 -1
  53. package/dist/cjs/internal/pool.js.map +1 -1
  54. package/dist/cjs/internal/redBlackTree.js +1 -1
  55. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  56. package/dist/cjs/internal/secret.js +1 -1
  57. package/dist/cjs/internal/secret.js.map +1 -1
  58. package/dist/cjs/internal/stm/core.js +1 -1
  59. package/dist/cjs/internal/stm/core.js.map +1 -1
  60. package/dist/cjs/internal/stm/stm/stmState.js +6 -4
  61. package/dist/cjs/internal/stm/stm/stmState.js.map +1 -1
  62. package/dist/cjs/internal/stm/stm/tExit.js +7 -6
  63. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  64. package/dist/cjs/internal/trie.js +1 -1
  65. package/dist/cjs/internal/trie.js.map +1 -1
  66. package/dist/cjs/internal/version.js +1 -1
  67. package/dist/dts/BigDecimal.d.ts.map +1 -1
  68. package/dist/dts/Cron.d.ts.map +1 -1
  69. package/dist/dts/FiberMap.d.ts +4 -5
  70. package/dist/dts/FiberMap.d.ts.map +1 -1
  71. package/dist/dts/Hash.d.ts +8 -0
  72. package/dist/dts/Hash.d.ts.map +1 -1
  73. package/dist/dts/List.d.ts.map +1 -1
  74. package/dist/dts/SortedMap.d.ts.map +1 -1
  75. package/dist/dts/SortedSet.d.ts.map +1 -1
  76. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  77. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  78. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  79. package/dist/esm/BigDecimal.js +1 -1
  80. package/dist/esm/BigDecimal.js.map +1 -1
  81. package/dist/esm/Chunk.js +1 -1
  82. package/dist/esm/Chunk.js.map +1 -1
  83. package/dist/esm/Cron.js +1 -1
  84. package/dist/esm/Cron.js.map +1 -1
  85. package/dist/esm/Duration.js +1 -1
  86. package/dist/esm/Duration.js.map +1 -1
  87. package/dist/esm/FiberMap.js.map +1 -1
  88. package/dist/esm/Hash.js +27 -0
  89. package/dist/esm/Hash.js.map +1 -1
  90. package/dist/esm/List.js +3 -2
  91. package/dist/esm/List.js.map +1 -1
  92. package/dist/esm/SortedMap.js +1 -1
  93. package/dist/esm/SortedMap.js.map +1 -1
  94. package/dist/esm/SortedSet.js +1 -1
  95. package/dist/esm/SortedSet.js.map +1 -1
  96. package/dist/esm/TestAnnotation.js +1 -1
  97. package/dist/esm/TestAnnotation.js.map +1 -1
  98. package/dist/esm/internal/cache.js +1 -1
  99. package/dist/esm/internal/cache.js.map +1 -1
  100. package/dist/esm/internal/cause.js +1 -1
  101. package/dist/esm/internal/cause.js.map +1 -1
  102. package/dist/esm/internal/context.js +1 -1
  103. package/dist/esm/internal/context.js.map +1 -1
  104. package/dist/esm/internal/core.js +4 -4
  105. package/dist/esm/internal/core.js.map +1 -1
  106. package/dist/esm/internal/data.js +1 -1
  107. package/dist/esm/internal/data.js.map +1 -1
  108. package/dist/esm/internal/effect/circular.js +1 -1
  109. package/dist/esm/internal/effect/circular.js.map +1 -1
  110. package/dist/esm/internal/effectable.js +2 -2
  111. package/dist/esm/internal/effectable.js.map +1 -1
  112. package/dist/esm/internal/either.js +2 -2
  113. package/dist/esm/internal/either.js.map +1 -1
  114. package/dist/esm/internal/fiberId.js +2 -9
  115. package/dist/esm/internal/fiberId.js.map +1 -1
  116. package/dist/esm/internal/fiberStatus.js +4 -3
  117. package/dist/esm/internal/fiberStatus.js.map +1 -1
  118. package/dist/esm/internal/hashMap.js +1 -1
  119. package/dist/esm/internal/hashMap.js.map +1 -1
  120. package/dist/esm/internal/hashSet.js +1 -1
  121. package/dist/esm/internal/hashSet.js.map +1 -1
  122. package/dist/esm/internal/keyedPool.js +2 -2
  123. package/dist/esm/internal/keyedPool.js.map +1 -1
  124. package/dist/esm/internal/metric/keyType.js +4 -4
  125. package/dist/esm/internal/metric/keyType.js.map +1 -1
  126. package/dist/esm/internal/metric/state.js +5 -9
  127. package/dist/esm/internal/metric/state.js.map +1 -1
  128. package/dist/esm/internal/option.js +1 -1
  129. package/dist/esm/internal/option.js.map +1 -1
  130. package/dist/esm/internal/pool.js +1 -1
  131. package/dist/esm/internal/pool.js.map +1 -1
  132. package/dist/esm/internal/redBlackTree.js +1 -1
  133. package/dist/esm/internal/redBlackTree.js.map +1 -1
  134. package/dist/esm/internal/secret.js +1 -1
  135. package/dist/esm/internal/secret.js.map +1 -1
  136. package/dist/esm/internal/stm/core.js +1 -1
  137. package/dist/esm/internal/stm/core.js.map +1 -1
  138. package/dist/esm/internal/stm/stm/stmState.js +5 -3
  139. package/dist/esm/internal/stm/stm/stmState.js.map +1 -1
  140. package/dist/esm/internal/stm/stm/tExit.js +6 -5
  141. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  142. package/dist/esm/internal/trie.js +1 -1
  143. package/dist/esm/internal/trie.js.map +1 -1
  144. package/dist/esm/internal/version.js +1 -1
  145. package/package.json +3 -2
  146. package/src/BigDecimal.ts +2 -1
  147. package/src/Chunk.ts +1 -1
  148. package/src/Cron.ts +2 -1
  149. package/src/Duration.ts +2 -2
  150. package/src/FiberMap.ts +0 -1
  151. package/src/Hash.ts +31 -0
  152. package/src/List.ts +3 -2
  153. package/src/SortedMap.ts +5 -1
  154. package/src/SortedSet.ts +5 -1
  155. package/src/TestAnnotation.ts +2 -1
  156. package/src/internal/cache.ts +2 -1
  157. package/src/internal/cause.ts +2 -1
  158. package/src/internal/context.ts +1 -1
  159. package/src/internal/core.ts +4 -4
  160. package/src/internal/data.ts +1 -1
  161. package/src/internal/effect/circular.ts +1 -1
  162. package/src/internal/effectable.ts +3 -3
  163. package/src/internal/either.ts +2 -2
  164. package/src/internal/fiberId.ts +7 -13
  165. package/src/internal/fiberStatus.ts +7 -6
  166. package/src/internal/hashMap.ts +2 -2
  167. package/src/internal/hashSet.ts +4 -1
  168. package/src/internal/keyedPool.ts +4 -2
  169. package/src/internal/metric/keyType.ts +7 -5
  170. package/src/internal/metric/state.ts +11 -10
  171. package/src/internal/option.ts +1 -1
  172. package/src/internal/pool.ts +2 -1
  173. package/src/internal/redBlackTree.ts +2 -2
  174. package/src/internal/secret.ts +2 -1
  175. package/src/internal/stm/core.ts +1 -1
  176. package/src/internal/stm/stm/stmState.ts +16 -11
  177. package/src/internal/stm/stm/tExit.ts +15 -9
  178. package/src/internal/trie.ts +2 -2
  179. package/src/internal/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"trie.js","names":["Equal","dual","identity","pipe","Hash","format","NodeInspectSymbol","toJSON","Option","pipeArguments","hasProperty","TrieSymbolKey","TrieTypeId","Symbol","for","trieVariance","_Value","_","TrieProto","iterator","TrieIterator","k","v","symbol","hash","item","combine","that","isTrie","entries","Array","from","every","itemSelf","i","itemThat","equals","toString","_id","values","map","arguments","makeImpl","root","trie","Object","create","_root","_count","count","f","filter","stack","constructor","undefined","push","next","length","node","keyString","isAdded","pop","value","key","done","addToStack","right","mid","left","u","empty","fromIterable","insert","make","self","dStack","nStack","n","cIndex","c","s","n2","d","size","isEmpty","keys","reduce","zero","accumulator","entry","filterMap","option","isSome","compact","forEach","keysWithPrefix","prefix","startsWith","valuesWithPrefix","entriesWithPrefix","toEntriesWithPrefix","get","none","fromNullable","has","unsafeGet","element","isNone","Error","remove","removeNode","child","nc","removeMany","insertMany","iter","modify","updateNode","longestPrefixOf","longestPrefixNode","slice"],"sources":["../../../src/internal/trie.ts"],"sourcesContent":[null],"mappings":"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"}
1
+ {"version":3,"file":"trie.js","names":["Equal","dual","identity","pipe","Hash","format","NodeInspectSymbol","toJSON","Option","pipeArguments","hasProperty","TrieSymbolKey","TrieTypeId","Symbol","for","trieVariance","_Value","_","TrieProto","iterator","TrieIterator","k","v","symbol","hash","item","combine","cached","that","isTrie","entries","Array","from","every","itemSelf","i","itemThat","equals","toString","_id","values","map","arguments","makeImpl","root","trie","Object","create","_root","_count","count","f","filter","stack","constructor","undefined","push","next","length","node","keyString","isAdded","pop","value","key","done","addToStack","right","mid","left","u","empty","fromIterable","insert","make","self","dStack","nStack","n","cIndex","c","s","n2","d","size","isEmpty","keys","reduce","zero","accumulator","entry","filterMap","option","isSome","compact","forEach","keysWithPrefix","prefix","startsWith","valuesWithPrefix","entriesWithPrefix","toEntriesWithPrefix","get","none","fromNullable","has","unsafeGet","element","isNone","Error","remove","removeNode","child","nc","removeMany","insertMany","iter","modify","updateNode","longestPrefixOf","longestPrefixNode","slice"],"sources":["../../../src/internal/trie.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- let moduleVersion = "2.3.7";
1
+ let moduleVersion = "2.3.8";
2
2
  export const getCurrentVersion = () => moduleVersion;
3
3
  export const setCurrentVersion = version => {
4
4
  moduleVersion = version;
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "effect",
3
- "version": "2.3.7",
3
+ "version": "2.3.8",
4
4
  "description": "Functional programming in TypeScript",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/effect-ts/effect.git"
8
+ "url": "https://github.com/effect-ts/effect.git",
9
+ "directory": "packages/effect"
9
10
  },
10
11
  "sideEffects": [],
11
12
  "main": "./dist/cjs/index.js",
package/src/BigDecimal.ts CHANGED
@@ -57,7 +57,8 @@ const BigDecimalProto: Omit<BigDecimal, "value" | "scale" | "normalized"> = {
57
57
  const normalized = normalize(this)
58
58
  return pipe(
59
59
  Hash.hash(normalized.value),
60
- Hash.combine(Hash.number(normalized.scale))
60
+ Hash.combine(Hash.number(normalized.scale)),
61
+ Hash.cached(this)
61
62
  )
62
63
  },
63
64
  [Equal.symbol](this: BigDecimal, that: unknown): boolean {
package/src/Chunk.ts CHANGED
@@ -142,7 +142,7 @@ const ChunkProto: Omit<Chunk<unknown>, "backing" | "depth" | "left" | "length" |
142
142
  return isChunk(that) && _equivalence(this, that)
143
143
  },
144
144
  [Hash.symbol]<A>(this: Chunk<A>): number {
145
- return Hash.array(toReadonlyArray(this))
145
+ return Hash.cached(this, Hash.array(toReadonlyArray(this)))
146
146
  },
147
147
  [Symbol.iterator]<A>(this: Chunk<A>): Iterator<A> {
148
148
  switch (this.backing._tag) {
package/src/Cron.ts CHANGED
@@ -50,7 +50,8 @@ const CronProto: Omit<Cron, "minutes" | "hours" | "days" | "months" | "weekdays"
50
50
  Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.hours))),
51
51
  Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.days))),
52
52
  Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.months))),
53
- Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.weekdays)))
53
+ Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.weekdays))),
54
+ Hash.cached(this)
54
55
  )
55
56
  },
56
57
  toString(this: Cron) {
package/src/Duration.ts CHANGED
@@ -116,8 +116,8 @@ const infinityValue: DurationValue = { _tag: "Infinity" }
116
116
 
117
117
  const DurationProto: Omit<Duration, "value"> = {
118
118
  [TypeId]: TypeId,
119
- [Hash.symbol](this: Duration): number {
120
- return Hash.structure(this.value)
119
+ [Hash.symbol](this: Duration) {
120
+ return Hash.cached(this, Hash.structure(this.value))
121
121
  },
122
122
  [Equal.symbol](this: Duration, that: unknown): boolean {
123
123
  return isDuration(that) && equals(this, that)
package/src/FiberMap.ts CHANGED
@@ -7,7 +7,6 @@ import type { NoSuchElementException } from "./Cause.js"
7
7
  import * as Fiber from "./Fiber.js"
8
8
  import * as FiberId from "./FiberId.js"
9
9
  import { dual } from "./Function.js"
10
- import type { FiberMap } from "./index.js"
11
10
  import * as Inspectable from "./Inspectable.js"
12
11
  import * as MutableHashMap from "./MutableHashMap.js"
13
12
  import * as Option from "./Option.js"
package/src/Hash.ts CHANGED
@@ -156,3 +156,34 @@ export const array = <A>(arr: ReadonlyArray<A>) => {
156
156
  }
157
157
  return optimize(h)
158
158
  }
159
+
160
+ /**
161
+ * @since 2.0.0
162
+ * @category hashing
163
+ */
164
+ export const cached: {
165
+ (self: object): (hash: number) => number
166
+ (self: object, hash: number): number
167
+ } = function() {
168
+ if (arguments.length === 1) {
169
+ const self = arguments[0] as object
170
+ return function(hash: number) {
171
+ Object.defineProperty(self, symbol, {
172
+ value() {
173
+ return hash
174
+ },
175
+ enumerable: false
176
+ })
177
+ return hash
178
+ } as any
179
+ }
180
+ const self = arguments[0] as object
181
+ const hash = arguments[1] as number
182
+ Object.defineProperty(self, symbol, {
183
+ value() {
184
+ return hash
185
+ },
186
+ enumerable: false
187
+ })
188
+ return hash
189
+ }
package/src/List.ts CHANGED
@@ -118,7 +118,7 @@ const ConsProto: Omit<Cons<unknown>, "head" | "tail"> = {
118
118
  _equivalence(this, that)
119
119
  },
120
120
  [Hash.symbol](this: Cons<unknown>): number {
121
- return Hash.array(toArray(this))
121
+ return Hash.cached(this, Hash.array(toArray(this)))
122
122
  },
123
123
  [Symbol.iterator](this: Cons<unknown>): Iterator<unknown> {
124
124
  let done = false
@@ -162,6 +162,7 @@ const makeCons = <A>(head: A, tail: List<A>): MutableCons<A> => {
162
162
  return cons
163
163
  }
164
164
 
165
+ const NilHash = Hash.string("Nil")
165
166
  const NilProto: Nil<unknown> = {
166
167
  [TypeId]: TypeId,
167
168
  _tag: "Nil",
@@ -178,7 +179,7 @@ const NilProto: Nil<unknown> = {
178
179
  return this.toJSON()
179
180
  },
180
181
  [Hash.symbol](): number {
181
- return Hash.array(toArray(this))
182
+ return NilHash
182
183
  },
183
184
  [Equal.symbol](that: unknown): boolean {
184
185
  return isList(that) && this._tag === that._tag
package/src/SortedMap.ts CHANGED
@@ -41,7 +41,11 @@ const SortedMapProto: Omit<SortedMap<unknown, unknown>, "tree"> = {
41
41
  _V: (_: never) => _
42
42
  },
43
43
  [Hash.symbol]<K, V>(this: SortedMap<K, V>): number {
44
- return pipe(Hash.hash(this.tree), Hash.combine(Hash.hash("effect/SortedMap")))
44
+ return pipe(
45
+ Hash.hash(this.tree),
46
+ Hash.combine(Hash.hash("effect/SortedMap")),
47
+ Hash.cached(this)
48
+ )
45
49
  },
46
50
  [Equal.symbol]<K, V>(this: SortedMap<K, V>, that: unknown): boolean {
47
51
  return isSortedMap(that) && Equal.equals(this.tree, that.tree)
package/src/SortedSet.ts CHANGED
@@ -40,7 +40,11 @@ const SortedSetProto: Omit<SortedSet<unknown>, "keyTree"> = {
40
40
  _A: (_: any) => _
41
41
  },
42
42
  [Hash.symbol]<A>(this: SortedSet<A>): number {
43
- return pipe(Hash.hash(this.keyTree), Hash.combine(Hash.hash(TypeId)))
43
+ return pipe(
44
+ Hash.hash(this.keyTree),
45
+ Hash.combine(Hash.hash(TypeId)),
46
+ Hash.cached(this)
47
+ )
44
48
  },
45
49
  [Equal.symbol]<A>(this: SortedSet<A>, that: unknown): boolean {
46
50
  return isSortedSet(that) && Equal.equals(this.keyTree, that.keyTree)
@@ -51,7 +51,8 @@ class TestAnnotationImpl<A> implements Equal.Equal {
51
51
  [Hash.symbol](): number {
52
52
  return pipe(
53
53
  Hash.hash(TestAnnotationSymbolKey),
54
- Hash.combine(Hash.hash(this.identifier))
54
+ Hash.combine(Hash.hash(this.identifier)),
55
+ Hash.cached(this)
55
56
  )
56
57
  }
57
58
  [Equal.symbol](that: unknown): boolean {
@@ -123,7 +123,8 @@ class MapKeyImpl<out K> implements MapKey<K> {
123
123
  return pipe(
124
124
  Hash.hash(this.current),
125
125
  Hash.combine(Hash.hash(this.previous)),
126
- Hash.combine(Hash.hash(this.next))
126
+ Hash.combine(Hash.hash(this.next)),
127
+ Hash.cached(this)
127
128
  )
128
129
  }
129
130
  [Equal.symbol](that: unknown): boolean {
@@ -39,7 +39,8 @@ const proto = {
39
39
  [Hash.symbol](this: Cause.Cause<any>): number {
40
40
  return pipe(
41
41
  Hash.hash(CauseSymbolKey),
42
- Hash.combine(Hash.hash(flattenCause(this)))
42
+ Hash.combine(Hash.hash(flattenCause(this))),
43
+ Hash.cached(this)
43
44
  )
44
45
  },
45
46
  [Equal.symbol](this: Cause.Cause<any>, that: unknown): boolean {
@@ -111,7 +111,7 @@ export const ContextProto: Omit<C.Context<unknown>, "unsafeMap"> = {
111
111
  return false
112
112
  },
113
113
  [Hash.symbol]<A>(this: C.Context<A>): number {
114
- return Hash.number(this.unsafeMap.size)
114
+ return Hash.cached(this, Hash.number(this.unsafeMap.size))
115
115
  },
116
116
  pipe<A>(this: C.Context<A>) {
117
117
  return pipeArguments(this, arguments)
@@ -158,7 +158,7 @@ class EffectPrimitive {
158
158
  return this === that
159
159
  }
160
160
  [Hash.symbol](this: {}) {
161
- return Hash.random(this)
161
+ return Hash.cached(this, Hash.random(this))
162
162
  }
163
163
  pipe() {
164
164
  return pipeArguments(this, arguments)
@@ -195,7 +195,7 @@ class EffectPrimitiveFailure {
195
195
  return this === that
196
196
  }
197
197
  [Hash.symbol](this: {}) {
198
- return Hash.random(this)
198
+ return Hash.cached(this, Hash.random(this))
199
199
  }
200
200
  get cause() {
201
201
  return this.i0
@@ -233,7 +233,7 @@ class EffectPrimitiveSuccess {
233
233
  return this === that
234
234
  }
235
235
  [Hash.symbol](this: {}) {
236
- return Hash.random(this)
236
+ return Hash.cached(this, Hash.random(this))
237
237
  }
238
238
  get value() {
239
239
  return this.i0
@@ -1734,7 +1734,7 @@ export class RequestResolverImpl<out R, in A> implements RequestResolver.Request
1734
1734
  this.runAll = runAll as any
1735
1735
  }
1736
1736
  [Hash.symbol](): number {
1737
- return this.target ? Hash.hash(this.target) : Hash.random(this)
1737
+ return Hash.cached(this, this.target ? Hash.hash(this.target) : Hash.random(this))
1738
1738
  }
1739
1739
  [Equal.symbol](that: unknown): boolean {
1740
1740
  return this.target ?
@@ -6,7 +6,7 @@ import { StructuralPrototype } from "./effectable.js"
6
6
  /** @internal */
7
7
  export const ArrayProto: Equal.Equal = Object.assign(Object.create(Array.prototype), {
8
8
  [Hash.symbol](this: Array<any>) {
9
- return Hash.array(this)
9
+ return Hash.cached(this, Hash.array(this))
10
10
  },
11
11
  [Equal.symbol](this: Array<any>, that: Equal.Equal) {
12
12
  if (Array.isArray(that) && this.length === that.length) {
@@ -315,7 +315,7 @@ class Key<in out A> implements Equal.Equal {
315
315
  return false
316
316
  }
317
317
  [Hash.symbol]() {
318
- return this.eq ? 0 : Hash.hash(this.a)
318
+ return this.eq ? 0 : Hash.cached(this, Hash.hash(this.a))
319
319
  }
320
320
  }
321
321
 
@@ -73,7 +73,7 @@ export const EffectPrototype: Effect.Effect<never> & Equal.Equal = {
73
73
  return this === that
74
74
  },
75
75
  [Hash.symbol]() {
76
- return Hash.random(this)
76
+ return Hash.cached(this, Hash.random(this))
77
77
  },
78
78
  pipe() {
79
79
  return pipeArguments(this, arguments)
@@ -82,8 +82,8 @@ export const EffectPrototype: Effect.Effect<never> & Equal.Equal = {
82
82
 
83
83
  /** @internal */
84
84
  export const StructuralPrototype: Equal.Equal = {
85
- [Hash.symbol](this: Equal.Equal) {
86
- return Hash.structure(this)
85
+ [Hash.symbol]() {
86
+ return Hash.cached(this, Hash.structure(this))
87
87
  },
88
88
  [Equal.symbol](this: Equal.Equal, that: Equal.Equal) {
89
89
  const selfKeys = Object.keys(this)
@@ -37,7 +37,7 @@ const RightProto = Object.assign(Object.create(CommonProto), {
37
37
  return isEither(that) && isRight(that) && Equal.equals(that.right, this.right)
38
38
  },
39
39
  [Hash.symbol]<E, A>(this: Either.Right<E, A>) {
40
- return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.right))
40
+ return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.right)))
41
41
  },
42
42
  toJSON<E, A>(this: Either.Right<E, A>) {
43
43
  return {
@@ -55,7 +55,7 @@ const LeftProto = Object.assign(Object.create(CommonProto), {
55
55
  return isEither(that) && isLeft(that) && Equal.equals(that.left, this.left)
56
56
  },
57
57
  [Hash.symbol]<E, A>(this: Either.Left<E, A>) {
58
- return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.left))
58
+ return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.left)))
59
59
  },
60
60
  toJSON<E, A>(this: Either.Left<E, A>) {
61
61
  return {
@@ -71,12 +71,8 @@ class Runtime implements FiberId.Runtime {
71
71
  readonly id: number,
72
72
  readonly startTimeMillis: number
73
73
  ) {}
74
- _hash: number | undefined;
75
74
  [Hash.symbol](): number {
76
- if (this._hash == undefined) {
77
- this._hash = Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`)
78
- }
79
- return this._hash
75
+ return Hash.cached(this, Hash.string(`${FiberIdSymbolKey}-${this._tag}-${this.id}-${this.startTimeMillis}`))
80
76
  }
81
77
  [Equal.symbol](that: unknown): boolean {
82
78
  return isFiberId(that) &&
@@ -111,14 +107,12 @@ class Composite implements FiberId.Composite {
111
107
  }
112
108
  _hash: number | undefined;
113
109
  [Hash.symbol](): number {
114
- if (this._hash == undefined) {
115
- this._hash = pipe(
116
- Hash.string(`${FiberIdSymbolKey}-${this._tag}`),
117
- Hash.combine(Hash.hash(this.left)),
118
- Hash.combine(Hash.hash(this.right))
119
- )
120
- }
121
- return this._hash
110
+ return pipe(
111
+ Hash.string(`${FiberIdSymbolKey}-${this._tag}`),
112
+ Hash.combine(Hash.hash(this.left)),
113
+ Hash.combine(Hash.hash(this.right)),
114
+ Hash.cached(this)
115
+ )
122
116
  }
123
117
  [Equal.symbol](that: unknown): boolean {
124
118
  return isFiberId(that) &&
@@ -31,15 +31,14 @@ export const OP_SUSPENDED = "Suspended" as const
31
31
  /** @internal */
32
32
  export type OP_SUSPENDED = typeof OP_SUSPENDED
33
33
 
34
+ const DoneHash = Hash.string(`${FiberStatusSymbolKey}-${OP_DONE}`)
35
+
34
36
  /** @internal */
35
37
  class Done implements FiberStatus.Done {
36
38
  readonly [FiberStatusTypeId]: FiberStatus.FiberStatusTypeId = FiberStatusTypeId
37
39
  readonly _tag = OP_DONE;
38
40
  [Hash.symbol](): number {
39
- return pipe(
40
- Hash.hash(FiberStatusSymbolKey),
41
- Hash.combine(Hash.hash(this._tag))
42
- )
41
+ return DoneHash
43
42
  }
44
43
  [Equal.symbol](that: unknown): boolean {
45
44
  return isFiberStatus(that) && that._tag === OP_DONE
@@ -55,7 +54,8 @@ class Running implements FiberStatus.Running {
55
54
  return pipe(
56
55
  Hash.hash(FiberStatusSymbolKey),
57
56
  Hash.combine(Hash.hash(this._tag)),
58
- Hash.combine(Hash.hash(this.runtimeFlags))
57
+ Hash.combine(Hash.hash(this.runtimeFlags)),
58
+ Hash.cached(this)
59
59
  )
60
60
  }
61
61
  [Equal.symbol](that: unknown): boolean {
@@ -80,7 +80,8 @@ class Suspended implements FiberStatus.Suspended {
80
80
  Hash.hash(FiberStatusSymbolKey),
81
81
  Hash.combine(Hash.hash(this._tag)),
82
82
  Hash.combine(Hash.hash(this.runtimeFlags)),
83
- Hash.combine(Hash.hash(this.blockingOn))
83
+ Hash.combine(Hash.hash(this.blockingOn)),
84
+ Hash.cached(this)
84
85
  )
85
86
  }
86
87
  [Equal.symbol](that: unknown): boolean {
@@ -47,12 +47,12 @@ const HashMapProto: HM.HashMap<unknown, unknown> = {
47
47
  [Symbol.iterator]<K, V>(this: HashMapImpl<K, V>): Iterator<[K, V]> {
48
48
  return new HashMapIterator(this, (k, v) => [k, v])
49
49
  },
50
- [Hash.symbol](): number {
50
+ [Hash.symbol](this: HM.HashMap<unknown, unknown>): number {
51
51
  let hash = Hash.hash(HashMapSymbolKey)
52
52
  for (const item of this) {
53
53
  hash ^= pipe(Hash.hash(item[0]), Hash.combine(Hash.hash(item[1])))
54
54
  }
55
- return hash
55
+ return Hash.cached(this, hash)
56
56
  },
57
57
  [Equal.symbol]<K, V>(this: HashMapImpl<K, V>, that: unknown): boolean {
58
58
  if (isHashMap(that)) {
@@ -26,7 +26,10 @@ const HashSetProto: Omit<HashSetImpl<unknown>, "_keyMap"> = {
26
26
  return HM.keys(this._keyMap)
27
27
  },
28
28
  [Hash.symbol]<A>(this: HashSetImpl<A>): number {
29
- return Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey))
29
+ return Hash.cached(
30
+ this,
31
+ Hash.combine(Hash.hash(this._keyMap))(Hash.hash(HashSetSymbolKey))
32
+ )
30
33
  },
31
34
  [Equal.symbol]<A>(this: HashSetImpl<A>, that: unknown): boolean {
32
35
  if (isHashSet(that)) {
@@ -62,7 +62,8 @@ class Complete<in out A, out E> implements Equal.Equal {
62
62
  [Hash.symbol](): number {
63
63
  return pipe(
64
64
  Hash.string("effect/KeyedPool/Complete"),
65
- Hash.combine(Hash.hash(this.pool))
65
+ Hash.combine(Hash.hash(this.pool)),
66
+ Hash.cached(this)
66
67
  )
67
68
  }
68
69
  [Equal.symbol](u: unknown): boolean {
@@ -80,7 +81,8 @@ class Pending<in out A, in out E> implements Equal.Equal {
80
81
  [Hash.symbol](): number {
81
82
  return pipe(
82
83
  Hash.string("effect/KeyedPool/Pending"),
83
- Hash.combine(Hash.hash(this.deferred))
84
+ Hash.combine(Hash.hash(this.deferred)),
85
+ Hash.cached(this)
84
86
  )
85
87
  }
86
88
  [Equal.symbol](u: unknown): boolean {
@@ -81,13 +81,14 @@ class CounterKeyType<A extends (number | bigint)> implements MetricKeyType.Metri
81
81
  }
82
82
  }
83
83
 
84
+ const FrequencyKeyTypeHash = Hash.string(FrequencyKeyTypeSymbolKey)
85
+
84
86
  /** @internal */
85
87
  class FrequencyKeyType implements MetricKeyType.MetricKeyType.Frequency {
86
88
  readonly [MetricKeyTypeTypeId] = metricKeyTypeVariance
87
- readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId
88
- readonly _hash = Hash.string(FrequencyKeyTypeSymbolKey);
89
+ readonly [FrequencyKeyTypeTypeId]: MetricKeyType.FrequencyKeyTypeTypeId = FrequencyKeyTypeTypeId;
89
90
  [Hash.symbol](): number {
90
- return this._hash
91
+ return FrequencyKeyTypeHash
91
92
  }
92
93
  [Equal.symbol](that: unknown): boolean {
93
94
  return isFrequencyKey(that)
@@ -97,14 +98,15 @@ class FrequencyKeyType implements MetricKeyType.MetricKeyType.Frequency {
97
98
  }
98
99
  }
99
100
 
101
+ const GaugeKeyTypeHash = Hash.string(GaugeKeyTypeSymbolKey)
102
+
100
103
  /** @internal */
101
104
  class GaugeKeyType<A extends (number | bigint)> implements MetricKeyType.MetricKeyType.Gauge<A> {
102
105
  readonly [MetricKeyTypeTypeId] = metricKeyTypeVariance
103
106
  readonly [GaugeKeyTypeTypeId]: MetricKeyType.GaugeKeyTypeTypeId = GaugeKeyTypeTypeId
104
107
  constructor(readonly bigint: boolean) {}
105
- readonly _hash = Hash.string(GaugeKeyTypeSymbolKey);
106
108
  [Hash.symbol](): number {
107
- return this._hash
109
+ return GaugeKeyTypeHash
108
110
  }
109
111
  [Equal.symbol](that: unknown): boolean {
110
112
  return isGaugeKey(that)
@@ -68,7 +68,8 @@ class CounterState<A extends (number | bigint)> implements MetricState.MetricSta
68
68
  [Hash.symbol](): number {
69
69
  return pipe(
70
70
  Hash.hash(CounterStateSymbolKey),
71
- Hash.combine(Hash.hash(this.count))
71
+ Hash.combine(Hash.hash(this.count)),
72
+ Hash.cached(this)
72
73
  )
73
74
  }
74
75
  [Equal.symbol](that: unknown): boolean {
@@ -88,14 +89,11 @@ class FrequencyState implements MetricState.MetricState.Frequency {
88
89
  constructor(readonly occurrences: ReadonlyMap<string, number>) {}
89
90
  _hash: number | undefined;
90
91
  [Hash.symbol](): number {
91
- if (this._hash !== undefined) {
92
- return this._hash
93
- }
94
- this._hash = pipe(
92
+ return pipe(
95
93
  Hash.string(FrequencyStateSymbolKey),
96
- Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.occurrences.entries())))
94
+ Hash.combine(Hash.array(ReadonlyArray.fromIterable(this.occurrences.entries()))),
95
+ Hash.cached(this)
97
96
  )
98
- return this._hash
99
97
  }
100
98
  [Equal.symbol](that: unknown): boolean {
101
99
  return isFrequencyState(that) && arrayEquals(
@@ -116,7 +114,8 @@ class GaugeState<A extends (number | bigint)> implements MetricState.MetricState
116
114
  [Hash.symbol](): number {
117
115
  return pipe(
118
116
  Hash.hash(GaugeStateSymbolKey),
119
- Hash.combine(Hash.hash(this.value))
117
+ Hash.combine(Hash.hash(this.value)),
118
+ Hash.cached(this)
120
119
  )
121
120
  }
122
121
  [Equal.symbol](u: unknown): boolean {
@@ -145,7 +144,8 @@ export class HistogramState implements MetricState.MetricState.Histogram {
145
144
  Hash.combine(Hash.hash(this.count)),
146
145
  Hash.combine(Hash.hash(this.min)),
147
146
  Hash.combine(Hash.hash(this.max)),
148
- Hash.combine(Hash.hash(this.sum))
147
+ Hash.combine(Hash.hash(this.sum)),
148
+ Hash.cached(this)
149
149
  )
150
150
  }
151
151
  [Equal.symbol](that: unknown): boolean {
@@ -181,7 +181,8 @@ export class SummaryState implements MetricState.MetricState.Summary {
181
181
  Hash.combine(Hash.hash(this.count)),
182
182
  Hash.combine(Hash.hash(this.min)),
183
183
  Hash.combine(Hash.hash(this.max)),
184
- Hash.combine(Hash.hash(this.sum))
184
+ Hash.combine(Hash.hash(this.sum)),
185
+ Hash.cached(this)
185
186
  )
186
187
  }
187
188
  [Equal.symbol](that: unknown): boolean {
@@ -31,7 +31,7 @@ const SomeProto = Object.assign(Object.create(CommonProto), {
31
31
  return isOption(that) && isSome(that) && Equal.equals(that.value, this.value)
32
32
  },
33
33
  [Hash.symbol]<A>(this: Option.Some<A>) {
34
- return Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value))
34
+ return Hash.cached(this, Hash.combine(Hash.hash(this._tag))(Hash.hash(this.value)))
35
35
  },
36
36
  toJSON<A>(this: Option.Some<A>) {
37
37
  return {
@@ -155,7 +155,8 @@ class PoolImpl<in out A, in out E> implements Pool.Pool<A, E> {
155
155
  Hash.combine(Hash.hash(this.state)),
156
156
  Hash.combine(Hash.hash(this.items)),
157
157
  Hash.combine(Hash.hash(this.invalidated)),
158
- Hash.combine(Hash.hash(this.track))
158
+ Hash.combine(Hash.hash(this.track)),
159
+ Hash.cached(this)
159
160
  )
160
161
  }
161
162