effect 2.4.18 → 3.0.0

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 (688) hide show
  1. package/Array/package.json +6 -0
  2. package/FiberHandle/package.json +6 -0
  3. package/Readable/package.json +6 -0
  4. package/Record/package.json +6 -0
  5. package/RegExp/package.json +6 -0
  6. package/Subscribable/package.json +6 -0
  7. package/dist/cjs/{ReadonlyArray.js → Array.js} +46 -23
  8. package/dist/cjs/Array.js.map +1 -0
  9. package/dist/cjs/Brand.js +2 -2
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +4 -8
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +5 -1
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/ConfigError.js.map +1 -1
  16. package/dist/cjs/Cron.js +13 -13
  17. package/dist/cjs/Cron.js.map +1 -1
  18. package/dist/cjs/Duration.js +39 -2
  19. package/dist/cjs/Duration.js.map +1 -1
  20. package/dist/cjs/Effect.js +14 -10
  21. package/dist/cjs/Effect.js.map +1 -1
  22. package/dist/cjs/Either.js +4 -1
  23. package/dist/cjs/Either.js.map +1 -1
  24. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  25. package/dist/cjs/Exit.js +3 -9
  26. package/dist/cjs/Exit.js.map +1 -1
  27. package/dist/cjs/Fiber.js +2 -8
  28. package/dist/cjs/Fiber.js.map +1 -1
  29. package/dist/cjs/FiberHandle.js +288 -0
  30. package/dist/cjs/FiberHandle.js.map +1 -0
  31. package/dist/cjs/FiberMap.js +86 -27
  32. package/dist/cjs/FiberMap.js.map +1 -1
  33. package/dist/cjs/FiberRefs.js.map +1 -1
  34. package/dist/cjs/FiberSet.js +51 -15
  35. package/dist/cjs/FiberSet.js.map +1 -1
  36. package/dist/cjs/HashMap.js.map +1 -1
  37. package/dist/cjs/HashSet.js.map +1 -1
  38. package/dist/cjs/Iterable.js +40 -5
  39. package/dist/cjs/Iterable.js.map +1 -1
  40. package/dist/cjs/Layer.js.map +1 -1
  41. package/dist/cjs/List.js +8 -7
  42. package/dist/cjs/List.js.map +1 -1
  43. package/dist/cjs/Metric.js +3 -1
  44. package/dist/cjs/Metric.js.map +1 -1
  45. package/dist/cjs/MetricKey.js.map +1 -1
  46. package/dist/cjs/MetricKeyType.js.map +1 -1
  47. package/dist/cjs/MutableHashMap.js +0 -4
  48. package/dist/cjs/MutableHashMap.js.map +1 -1
  49. package/dist/cjs/Option.js +3 -6
  50. package/dist/cjs/Option.js.map +1 -1
  51. package/dist/cjs/Readable.js +79 -0
  52. package/dist/cjs/Readable.js.map +1 -0
  53. package/dist/cjs/{ReadonlyRecord.js → Record.js} +29 -29
  54. package/dist/cjs/Record.js.map +1 -0
  55. package/dist/cjs/RegExp.js +24 -0
  56. package/dist/cjs/RegExp.js.map +1 -0
  57. package/dist/cjs/STM.js +4 -10
  58. package/dist/cjs/STM.js.map +1 -1
  59. package/dist/cjs/Schedule.js +2 -2
  60. package/dist/cjs/Schedule.js.map +1 -1
  61. package/dist/cjs/ScopedCache.js.map +1 -1
  62. package/dist/cjs/Stream.js +3 -9
  63. package/dist/cjs/Stream.js.map +1 -1
  64. package/dist/cjs/StreamHaltStrategy.js +2 -0
  65. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  66. package/dist/cjs/String.js +44 -2
  67. package/dist/cjs/String.js.map +1 -1
  68. package/dist/cjs/Subscribable.js +91 -0
  69. package/dist/cjs/Subscribable.js.map +1 -0
  70. package/dist/cjs/SubscriptionRef.js.map +1 -1
  71. package/dist/cjs/TestAnnotation.js +2 -1
  72. package/dist/cjs/TestAnnotation.js.map +1 -1
  73. package/dist/cjs/TestAnnotations.js +1 -1
  74. package/dist/cjs/TestAnnotations.js.map +1 -1
  75. package/dist/cjs/TestClock.js +3 -3
  76. package/dist/cjs/TestClock.js.map +1 -1
  77. package/dist/cjs/Tracer.js.map +1 -1
  78. package/dist/cjs/index.js +14 -6
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/internal/{readonlyArray.js → array.js} +1 -1
  81. package/dist/cjs/internal/array.js.map +1 -0
  82. package/dist/cjs/internal/cache.js +3 -3
  83. package/dist/cjs/internal/cache.js.map +1 -1
  84. package/dist/cjs/internal/cause.js +6 -5
  85. package/dist/cjs/internal/cause.js.map +1 -1
  86. package/dist/cjs/internal/channel/channelExecutor.js +15 -15
  87. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  88. package/dist/cjs/internal/channel/channelState.js +1 -1
  89. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  90. package/dist/cjs/internal/channel/singleProducerAsyncInput.js +1 -1
  91. package/dist/cjs/internal/channel/singleProducerAsyncInput.js.map +1 -1
  92. package/dist/cjs/internal/channel.js +10 -10
  93. package/dist/cjs/internal/channel.js.map +1 -1
  94. package/dist/cjs/internal/clock.js +2 -2
  95. package/dist/cjs/internal/clock.js.map +1 -1
  96. package/dist/cjs/internal/configError.js +20 -19
  97. package/dist/cjs/internal/configError.js.map +1 -1
  98. package/dist/cjs/internal/configProvider/pathPatch.js +1 -1
  99. package/dist/cjs/internal/configProvider/pathPatch.js.map +1 -1
  100. package/dist/cjs/internal/configProvider.js +48 -49
  101. package/dist/cjs/internal/configProvider.js.map +1 -1
  102. package/dist/cjs/internal/core-effect.js +68 -40
  103. package/dist/cjs/internal/core-effect.js.map +1 -1
  104. package/dist/cjs/internal/core-stream.js +2 -3
  105. package/dist/cjs/internal/core-stream.js.map +1 -1
  106. package/dist/cjs/internal/core.js +41 -114
  107. package/dist/cjs/internal/core.js.map +1 -1
  108. package/dist/cjs/internal/dataSource.js +19 -2
  109. package/dist/cjs/internal/dataSource.js.map +1 -1
  110. package/dist/cjs/internal/differ/readonlyArrayPatch.js +6 -6
  111. package/dist/cjs/internal/differ/readonlyArrayPatch.js.map +1 -1
  112. package/dist/cjs/internal/effect/circular.js +6 -1
  113. package/dist/cjs/internal/effect/circular.js.map +1 -1
  114. package/dist/cjs/internal/errors.js +13 -0
  115. package/dist/cjs/internal/errors.js.map +1 -0
  116. package/dist/cjs/internal/executionStrategy.js +4 -4
  117. package/dist/cjs/internal/executionStrategy.js.map +1 -1
  118. package/dist/cjs/internal/fiber.js +5 -6
  119. package/dist/cjs/internal/fiber.js.map +1 -1
  120. package/dist/cjs/internal/fiberRefs/patch.js +1 -1
  121. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  122. package/dist/cjs/internal/fiberRefs.js +1 -1
  123. package/dist/cjs/internal/fiberRefs.js.map +1 -1
  124. package/dist/cjs/internal/fiberRuntime.js +106 -66
  125. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  126. package/dist/cjs/internal/groupBy.js +3 -3
  127. package/dist/cjs/internal/groupBy.js.map +1 -1
  128. package/dist/cjs/internal/hashMap.js +1 -1
  129. package/dist/cjs/internal/hashMap.js.map +1 -1
  130. package/dist/cjs/internal/hashSet.js.map +1 -1
  131. package/dist/cjs/internal/layer/circular.js.map +1 -1
  132. package/dist/cjs/internal/layer.js +5 -5
  133. package/dist/cjs/internal/layer.js.map +1 -1
  134. package/dist/cjs/internal/logger.js +28 -8
  135. package/dist/cjs/internal/logger.js.map +1 -1
  136. package/dist/cjs/internal/managedRuntime.js +1 -1
  137. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  138. package/dist/cjs/internal/matcher.js +5 -4
  139. package/dist/cjs/internal/matcher.js.map +1 -1
  140. package/dist/cjs/internal/metric/boundaries.js +4 -4
  141. package/dist/cjs/internal/metric/boundaries.js.map +1 -1
  142. package/dist/cjs/internal/metric/hook.js +20 -17
  143. package/dist/cjs/internal/metric/hook.js.map +1 -1
  144. package/dist/cjs/internal/metric/key.js +4 -4
  145. package/dist/cjs/internal/metric/key.js.map +1 -1
  146. package/dist/cjs/internal/metric/keyType.js +6 -1
  147. package/dist/cjs/internal/metric/keyType.js.map +1 -1
  148. package/dist/cjs/internal/metric/state.js +4 -4
  149. package/dist/cjs/internal/metric/state.js.map +1 -1
  150. package/dist/cjs/internal/metric.js +4 -4
  151. package/dist/cjs/internal/metric.js.map +1 -1
  152. package/dist/cjs/internal/pool.js +11 -11
  153. package/dist/cjs/internal/pool.js.map +1 -1
  154. package/dist/cjs/internal/pubsub.js +5 -5
  155. package/dist/cjs/internal/pubsub.js.map +1 -1
  156. package/dist/cjs/internal/query.js +2 -2
  157. package/dist/cjs/internal/query.js.map +1 -1
  158. package/dist/cjs/internal/queue.js +9 -9
  159. package/dist/cjs/internal/queue.js.map +1 -1
  160. package/dist/cjs/internal/rateLimiter.js +1 -1
  161. package/dist/cjs/internal/rateLimiter.js.map +1 -1
  162. package/dist/cjs/internal/redBlackTree/iterator.js +2 -2
  163. package/dist/cjs/internal/redBlackTree/iterator.js.map +1 -1
  164. package/dist/cjs/internal/ref.js +6 -1
  165. package/dist/cjs/internal/ref.js.map +1 -1
  166. package/dist/cjs/internal/reloadable.js +1 -1
  167. package/dist/cjs/internal/reloadable.js.map +1 -1
  168. package/dist/cjs/internal/runtime.js +4 -4
  169. package/dist/cjs/internal/runtime.js.map +1 -1
  170. package/dist/cjs/internal/schedule/intervals.js +2 -1
  171. package/dist/cjs/internal/schedule/intervals.js.map +1 -1
  172. package/dist/cjs/internal/schedule.js +5 -5
  173. package/dist/cjs/internal/schedule.js.map +1 -1
  174. package/dist/cjs/internal/scopedCache.js +7 -7
  175. package/dist/cjs/internal/scopedCache.js.map +1 -1
  176. package/dist/cjs/internal/scopedRef.js +4 -4
  177. package/dist/cjs/internal/scopedRef.js.map +1 -1
  178. package/dist/cjs/internal/secret.js +2 -2
  179. package/dist/cjs/internal/secret.js.map +1 -1
  180. package/dist/cjs/internal/sink.js +10 -10
  181. package/dist/cjs/internal/sink.js.map +1 -1
  182. package/dist/cjs/internal/stm/stm/tExit.js +2 -4
  183. package/dist/cjs/internal/stm/stm/tExit.js.map +1 -1
  184. package/dist/cjs/internal/stm/stm.js +11 -11
  185. package/dist/cjs/internal/stm/stm.js.map +1 -1
  186. package/dist/cjs/internal/stm/tMap.js +3 -3
  187. package/dist/cjs/internal/stm/tMap.js.map +1 -1
  188. package/dist/cjs/internal/stm/tPriorityQueue.js +11 -11
  189. package/dist/cjs/internal/stm/tPriorityQueue.js.map +1 -1
  190. package/dist/cjs/internal/stm/tPubSub.js +3 -3
  191. package/dist/cjs/internal/stm/tPubSub.js.map +1 -1
  192. package/dist/cjs/internal/stm/tQueue.js +3 -3
  193. package/dist/cjs/internal/stm/tQueue.js.map +1 -1
  194. package/dist/cjs/internal/stm/tSet.js +1 -1
  195. package/dist/cjs/internal/stm/tSet.js.map +1 -1
  196. package/dist/cjs/internal/stream/haltStrategy.js +5 -5
  197. package/dist/cjs/internal/stream/haltStrategy.js.map +1 -1
  198. package/dist/cjs/internal/stream.js +84 -85
  199. package/dist/cjs/internal/stream.js.map +1 -1
  200. package/dist/cjs/internal/subscriptionRef.js +8 -0
  201. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  202. package/dist/cjs/internal/supervisor.js +1 -1
  203. package/dist/cjs/internal/supervisor.js.map +1 -1
  204. package/dist/cjs/internal/take.js +1 -1
  205. package/dist/cjs/internal/take.js.map +1 -1
  206. package/dist/cjs/internal/tracer.js.map +1 -1
  207. package/dist/cjs/internal/trie.js +1 -1
  208. package/dist/cjs/internal/trie.js.map +1 -1
  209. package/dist/cjs/internal/version.js +1 -1
  210. package/dist/cjs/internal/version.js.map +1 -1
  211. package/dist/dts/{ReadonlyArray.d.ts → Array.d.ts} +39 -18
  212. package/dist/dts/Array.d.ts.map +1 -0
  213. package/dist/dts/BigDecimal.d.ts.map +1 -1
  214. package/dist/dts/BigInt.d.ts.map +1 -1
  215. package/dist/dts/Brand.d.ts +1 -19
  216. package/dist/dts/Brand.d.ts.map +1 -1
  217. package/dist/dts/Cache.d.ts +10 -10
  218. package/dist/dts/Cache.d.ts.map +1 -1
  219. package/dist/dts/Cause.d.ts +1 -1
  220. package/dist/dts/Cause.d.ts.map +1 -1
  221. package/dist/dts/Channel.d.ts +6 -4
  222. package/dist/dts/Channel.d.ts.map +1 -1
  223. package/dist/dts/Chunk.d.ts +1 -4
  224. package/dist/dts/Chunk.d.ts.map +1 -1
  225. package/dist/dts/ConfigError.d.ts +7 -6
  226. package/dist/dts/ConfigError.d.ts.map +1 -1
  227. package/dist/dts/Cron.d.ts +0 -5
  228. package/dist/dts/Cron.d.ts.map +1 -1
  229. package/dist/dts/Duration.d.ts +16 -0
  230. package/dist/dts/Duration.d.ts.map +1 -1
  231. package/dist/dts/Effect.d.ts +38 -33
  232. package/dist/dts/Effect.d.ts.map +1 -1
  233. package/dist/dts/Either.d.ts +5 -2
  234. package/dist/dts/Either.d.ts.map +1 -1
  235. package/dist/dts/Encoding.d.ts.map +1 -1
  236. package/dist/dts/Equivalence.d.ts.map +1 -1
  237. package/dist/dts/ExecutionStrategy.d.ts +10 -2
  238. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  239. package/dist/dts/Exit.d.ts +4 -3
  240. package/dist/dts/Exit.d.ts.map +1 -1
  241. package/dist/dts/Fiber.d.ts +4 -2
  242. package/dist/dts/Fiber.d.ts.map +1 -1
  243. package/dist/dts/FiberHandle.d.ts +189 -0
  244. package/dist/dts/FiberHandle.d.ts.map +1 -0
  245. package/dist/dts/FiberMap.d.ts +48 -12
  246. package/dist/dts/FiberMap.d.ts.map +1 -1
  247. package/dist/dts/FiberRefs.d.ts +1 -1
  248. package/dist/dts/FiberRefs.d.ts.map +1 -1
  249. package/dist/dts/FiberSet.d.ts +9 -5
  250. package/dist/dts/FiberSet.d.ts.map +1 -1
  251. package/dist/dts/Function.d.ts.map +1 -1
  252. package/dist/dts/GroupBy.d.ts +1 -1
  253. package/dist/dts/GroupBy.d.ts.map +1 -1
  254. package/dist/dts/HashMap.d.ts +0 -1
  255. package/dist/dts/HashMap.d.ts.map +1 -1
  256. package/dist/dts/HashSet.d.ts +0 -1
  257. package/dist/dts/HashSet.d.ts.map +1 -1
  258. package/dist/dts/Iterable.d.ts +12 -5
  259. package/dist/dts/Iterable.d.ts.map +1 -1
  260. package/dist/dts/Layer.d.ts +6 -6
  261. package/dist/dts/Layer.d.ts.map +1 -1
  262. package/dist/dts/List.d.ts +0 -11
  263. package/dist/dts/List.d.ts.map +1 -1
  264. package/dist/dts/Logger.d.ts +2 -2
  265. package/dist/dts/Logger.d.ts.map +1 -1
  266. package/dist/dts/Metric.d.ts +7 -2
  267. package/dist/dts/Metric.d.ts.map +1 -1
  268. package/dist/dts/MetricKey.d.ts +4 -1
  269. package/dist/dts/MetricKey.d.ts.map +1 -1
  270. package/dist/dts/MetricKeyType.d.ts +4 -1
  271. package/dist/dts/MetricKeyType.d.ts.map +1 -1
  272. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  273. package/dist/dts/Option.d.ts +5 -3
  274. package/dist/dts/Option.d.ts.map +1 -1
  275. package/dist/dts/Order.d.ts.map +1 -1
  276. package/dist/dts/Readable.d.ts +55 -0
  277. package/dist/dts/Readable.d.ts.map +1 -0
  278. package/dist/dts/{ReadonlyRecord.d.ts → Record.d.ts} +29 -30
  279. package/dist/dts/Record.d.ts.map +1 -0
  280. package/dist/dts/Ref.d.ts +2 -2
  281. package/dist/dts/Ref.d.ts.map +1 -1
  282. package/dist/dts/RegExp.d.ts +17 -0
  283. package/dist/dts/RegExp.d.ts.map +1 -0
  284. package/dist/dts/Request.d.ts +1 -1
  285. package/dist/dts/Request.d.ts.map +1 -1
  286. package/dist/dts/RequestResolver.d.ts +2 -2
  287. package/dist/dts/RequestResolver.d.ts.map +1 -1
  288. package/dist/dts/STM.d.ts +6 -4
  289. package/dist/dts/STM.d.ts.map +1 -1
  290. package/dist/dts/Schedule.d.ts +1 -1
  291. package/dist/dts/Scheduler.d.ts.map +1 -1
  292. package/dist/dts/ScopedCache.d.ts +9 -9
  293. package/dist/dts/ScopedCache.d.ts.map +1 -1
  294. package/dist/dts/SortedMap.d.ts.map +1 -1
  295. package/dist/dts/SortedSet.d.ts +1 -1
  296. package/dist/dts/SortedSet.d.ts.map +1 -1
  297. package/dist/dts/Stream.d.ts +8 -6
  298. package/dist/dts/Stream.d.ts.map +1 -1
  299. package/dist/dts/StreamHaltStrategy.d.ts +14 -2
  300. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  301. package/dist/dts/String.d.ts +25 -1
  302. package/dist/dts/String.d.ts.map +1 -1
  303. package/dist/dts/Subscribable.d.ts +59 -0
  304. package/dist/dts/Subscribable.d.ts.map +1 -0
  305. package/dist/dts/SubscriptionRef.d.ts +2 -2
  306. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  307. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  308. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  309. package/dist/dts/TestAnnotations.d.ts +0 -3
  310. package/dist/dts/TestAnnotations.d.ts.map +1 -1
  311. package/dist/dts/TestClock.d.ts.map +1 -1
  312. package/dist/dts/TestLive.d.ts.map +1 -1
  313. package/dist/dts/TestServices.d.ts.map +1 -1
  314. package/dist/dts/TestSized.d.ts.map +1 -1
  315. package/dist/dts/Tracer.d.ts +12 -5
  316. package/dist/dts/Tracer.d.ts.map +1 -1
  317. package/dist/dts/Trie.d.ts +1 -1
  318. package/dist/dts/Trie.d.ts.map +1 -1
  319. package/dist/dts/Types.d.ts +0 -7
  320. package/dist/dts/Types.d.ts.map +1 -1
  321. package/dist/dts/index.d.ts +22 -4
  322. package/dist/dts/index.d.ts.map +1 -1
  323. package/dist/dts/internal/array.d.ts +5 -0
  324. package/dist/dts/internal/array.d.ts.map +1 -0
  325. package/dist/dts/internal/core-stream.d.ts +4 -0
  326. package/dist/dts/internal/core-stream.d.ts.map +1 -1
  327. package/dist/dts/internal/core.d.ts +3 -1
  328. package/dist/dts/internal/core.d.ts.map +1 -1
  329. package/dist/dts/internal/errors.d.ts +5 -0
  330. package/dist/dts/internal/errors.d.ts.map +1 -0
  331. package/dist/dts/internal/fiber.d.ts +5 -1
  332. package/dist/dts/internal/fiber.d.ts.map +1 -1
  333. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  334. package/dist/dts/internal/logger.d.ts.map +1 -1
  335. package/dist/dts/internal/metric/keyType.d.ts +3 -1
  336. package/dist/dts/internal/metric/keyType.d.ts.map +1 -1
  337. package/dist/dts/internal/metric/state.d.ts.map +1 -1
  338. package/dist/dts/internal/random.d.ts.map +1 -1
  339. package/dist/dts/internal/runtimeFlags.d.ts.map +1 -1
  340. package/dist/dts/internal/stm/stm/tExit.d.ts +4 -1
  341. package/dist/dts/internal/stm/stm/tExit.d.ts.map +1 -1
  342. package/dist/dts/internal/stm/stm.d.ts +3 -0
  343. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  344. package/dist/dts/internal/stream.d.ts +5 -1
  345. package/dist/dts/internal/stream.d.ts.map +1 -1
  346. package/dist/esm/{ReadonlyArray.js → Array.js} +42 -20
  347. package/dist/esm/Array.js.map +1 -0
  348. package/dist/esm/Brand.js +2 -2
  349. package/dist/esm/Brand.js.map +1 -1
  350. package/dist/esm/Channel.js +4 -2
  351. package/dist/esm/Channel.js.map +1 -1
  352. package/dist/esm/Chunk.js +4 -1
  353. package/dist/esm/Chunk.js.map +1 -1
  354. package/dist/esm/ConfigError.js.map +1 -1
  355. package/dist/esm/Cron.js +13 -13
  356. package/dist/esm/Cron.js.map +1 -1
  357. package/dist/esm/Duration.js +38 -1
  358. package/dist/esm/Duration.js.map +1 -1
  359. package/dist/esm/Effect.js +11 -2
  360. package/dist/esm/Effect.js.map +1 -1
  361. package/dist/esm/Either.js +4 -1
  362. package/dist/esm/Either.js.map +1 -1
  363. package/dist/esm/ExecutionStrategy.js.map +1 -1
  364. package/dist/esm/Exit.js +4 -2
  365. package/dist/esm/Exit.js.map +1 -1
  366. package/dist/esm/Fiber.js +3 -1
  367. package/dist/esm/Fiber.js.map +1 -1
  368. package/dist/esm/FiberHandle.js +247 -0
  369. package/dist/esm/FiberHandle.js.map +1 -0
  370. package/dist/esm/FiberMap.js +85 -26
  371. package/dist/esm/FiberMap.js.map +1 -1
  372. package/dist/esm/FiberRefs.js.map +1 -1
  373. package/dist/esm/FiberSet.js +51 -15
  374. package/dist/esm/FiberSet.js.map +1 -1
  375. package/dist/esm/HashMap.js.map +1 -1
  376. package/dist/esm/HashSet.js.map +1 -1
  377. package/dist/esm/Iterable.js +39 -4
  378. package/dist/esm/Iterable.js.map +1 -1
  379. package/dist/esm/Layer.js.map +1 -1
  380. package/dist/esm/List.js +7 -6
  381. package/dist/esm/List.js.map +1 -1
  382. package/dist/esm/Metric.js +3 -1
  383. package/dist/esm/Metric.js.map +1 -1
  384. package/dist/esm/MetricKey.js.map +1 -1
  385. package/dist/esm/MetricKeyType.js.map +1 -1
  386. package/dist/esm/MutableHashMap.js +0 -3
  387. package/dist/esm/MutableHashMap.js.map +1 -1
  388. package/dist/esm/Option.js +4 -2
  389. package/dist/esm/Option.js.map +1 -1
  390. package/dist/esm/Readable.js +45 -0
  391. package/dist/esm/Readable.js.map +1 -0
  392. package/dist/esm/{ReadonlyRecord.js → Record.js} +29 -29
  393. package/dist/esm/Record.js.map +1 -0
  394. package/dist/esm/RegExp.js +17 -0
  395. package/dist/esm/RegExp.js.map +1 -0
  396. package/dist/esm/STM.js +5 -3
  397. package/dist/esm/STM.js.map +1 -1
  398. package/dist/esm/Schedule.js +1 -1
  399. package/dist/esm/Schedule.js.map +1 -1
  400. package/dist/esm/ScopedCache.js.map +1 -1
  401. package/dist/esm/Stream.js +5 -3
  402. package/dist/esm/Stream.js.map +1 -1
  403. package/dist/esm/StreamHaltStrategy.js +2 -0
  404. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  405. package/dist/esm/String.js +37 -1
  406. package/dist/esm/String.js.map +1 -1
  407. package/dist/esm/Subscribable.js +56 -0
  408. package/dist/esm/Subscribable.js.map +1 -0
  409. package/dist/esm/SubscriptionRef.js.map +1 -1
  410. package/dist/esm/TestAnnotation.js +2 -1
  411. package/dist/esm/TestAnnotation.js.map +1 -1
  412. package/dist/esm/TestAnnotations.js +1 -1
  413. package/dist/esm/TestAnnotations.js.map +1 -1
  414. package/dist/esm/TestClock.js +3 -3
  415. package/dist/esm/TestClock.js.map +1 -1
  416. package/dist/esm/Tracer.js.map +1 -1
  417. package/dist/esm/index.js +22 -4
  418. package/dist/esm/index.js.map +1 -1
  419. package/dist/esm/internal/{readonlyArray.js → array.js} +1 -1
  420. package/dist/esm/internal/array.js.map +1 -0
  421. package/dist/esm/internal/cache.js +3 -3
  422. package/dist/esm/internal/cache.js.map +1 -1
  423. package/dist/esm/internal/cause.js +6 -5
  424. package/dist/esm/internal/cause.js.map +1 -1
  425. package/dist/esm/internal/channel/channelExecutor.js +15 -15
  426. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  427. package/dist/esm/internal/channel/channelState.js +1 -1
  428. package/dist/esm/internal/channel/channelState.js.map +1 -1
  429. package/dist/esm/internal/channel/singleProducerAsyncInput.js +1 -1
  430. package/dist/esm/internal/channel/singleProducerAsyncInput.js.map +1 -1
  431. package/dist/esm/internal/channel.js +8 -8
  432. package/dist/esm/internal/channel.js.map +1 -1
  433. package/dist/esm/internal/clock.js +2 -2
  434. package/dist/esm/internal/clock.js.map +1 -1
  435. package/dist/esm/internal/configError.js +20 -19
  436. package/dist/esm/internal/configError.js.map +1 -1
  437. package/dist/esm/internal/configProvider/pathPatch.js +1 -1
  438. package/dist/esm/internal/configProvider/pathPatch.js.map +1 -1
  439. package/dist/esm/internal/configProvider.js +48 -49
  440. package/dist/esm/internal/configProvider.js.map +1 -1
  441. package/dist/esm/internal/core-effect.js +64 -38
  442. package/dist/esm/internal/core-effect.js.map +1 -1
  443. package/dist/esm/internal/core-stream.js +3 -2
  444. package/dist/esm/internal/core-stream.js.map +1 -1
  445. package/dist/esm/internal/core.js +37 -108
  446. package/dist/esm/internal/core.js.map +1 -1
  447. package/dist/esm/internal/dataSource.js +19 -2
  448. package/dist/esm/internal/dataSource.js.map +1 -1
  449. package/dist/esm/internal/differ/readonlyArrayPatch.js +6 -6
  450. package/dist/esm/internal/differ/readonlyArrayPatch.js.map +1 -1
  451. package/dist/esm/internal/effect/circular.js +6 -1
  452. package/dist/esm/internal/effect/circular.js.map +1 -1
  453. package/dist/esm/internal/errors.js +6 -0
  454. package/dist/esm/internal/errors.js.map +1 -0
  455. package/dist/esm/internal/executionStrategy.js +4 -4
  456. package/dist/esm/internal/executionStrategy.js.map +1 -1
  457. package/dist/esm/internal/fiber.js +6 -5
  458. package/dist/esm/internal/fiber.js.map +1 -1
  459. package/dist/esm/internal/fiberRefs/patch.js +1 -1
  460. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  461. package/dist/esm/internal/fiberRefs.js +1 -1
  462. package/dist/esm/internal/fiberRefs.js.map +1 -1
  463. package/dist/esm/internal/fiberRuntime.js +104 -63
  464. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  465. package/dist/esm/internal/groupBy.js +3 -3
  466. package/dist/esm/internal/groupBy.js.map +1 -1
  467. package/dist/esm/internal/hashMap.js +1 -1
  468. package/dist/esm/internal/hashMap.js.map +1 -1
  469. package/dist/esm/internal/hashSet.js.map +1 -1
  470. package/dist/esm/internal/layer/circular.js.map +1 -1
  471. package/dist/esm/internal/layer.js +5 -5
  472. package/dist/esm/internal/layer.js.map +1 -1
  473. package/dist/esm/internal/logger.js +28 -8
  474. package/dist/esm/internal/logger.js.map +1 -1
  475. package/dist/esm/internal/managedRuntime.js +1 -1
  476. package/dist/esm/internal/managedRuntime.js.map +1 -1
  477. package/dist/esm/internal/matcher.js +4 -3
  478. package/dist/esm/internal/matcher.js.map +1 -1
  479. package/dist/esm/internal/metric/boundaries.js +4 -4
  480. package/dist/esm/internal/metric/boundaries.js.map +1 -1
  481. package/dist/esm/internal/metric/hook.js +20 -17
  482. package/dist/esm/internal/metric/hook.js.map +1 -1
  483. package/dist/esm/internal/metric/key.js +4 -4
  484. package/dist/esm/internal/metric/key.js.map +1 -1
  485. package/dist/esm/internal/metric/keyType.js +5 -1
  486. package/dist/esm/internal/metric/keyType.js.map +1 -1
  487. package/dist/esm/internal/metric/state.js +4 -4
  488. package/dist/esm/internal/metric/state.js.map +1 -1
  489. package/dist/esm/internal/metric.js +4 -4
  490. package/dist/esm/internal/metric.js.map +1 -1
  491. package/dist/esm/internal/pool.js +11 -11
  492. package/dist/esm/internal/pool.js.map +1 -1
  493. package/dist/esm/internal/pubsub.js +5 -5
  494. package/dist/esm/internal/pubsub.js.map +1 -1
  495. package/dist/esm/internal/query.js +2 -2
  496. package/dist/esm/internal/query.js.map +1 -1
  497. package/dist/esm/internal/queue.js +9 -9
  498. package/dist/esm/internal/queue.js.map +1 -1
  499. package/dist/esm/internal/rateLimiter.js +1 -1
  500. package/dist/esm/internal/rateLimiter.js.map +1 -1
  501. package/dist/esm/internal/redBlackTree/iterator.js +2 -2
  502. package/dist/esm/internal/redBlackTree/iterator.js.map +1 -1
  503. package/dist/esm/internal/ref.js +6 -1
  504. package/dist/esm/internal/ref.js.map +1 -1
  505. package/dist/esm/internal/reloadable.js +1 -1
  506. package/dist/esm/internal/reloadable.js.map +1 -1
  507. package/dist/esm/internal/runtime.js +4 -4
  508. package/dist/esm/internal/runtime.js.map +1 -1
  509. package/dist/esm/internal/schedule/intervals.js +2 -1
  510. package/dist/esm/internal/schedule/intervals.js.map +1 -1
  511. package/dist/esm/internal/schedule.js +3 -3
  512. package/dist/esm/internal/schedule.js.map +1 -1
  513. package/dist/esm/internal/scopedCache.js +7 -7
  514. package/dist/esm/internal/scopedCache.js.map +1 -1
  515. package/dist/esm/internal/scopedRef.js +4 -4
  516. package/dist/esm/internal/scopedRef.js.map +1 -1
  517. package/dist/esm/internal/secret.js +2 -2
  518. package/dist/esm/internal/secret.js.map +1 -1
  519. package/dist/esm/internal/sink.js +10 -10
  520. package/dist/esm/internal/sink.js.map +1 -1
  521. package/dist/esm/internal/stm/stm/tExit.js +3 -2
  522. package/dist/esm/internal/stm/stm/tExit.js.map +1 -1
  523. package/dist/esm/internal/stm/stm.js +11 -9
  524. package/dist/esm/internal/stm/stm.js.map +1 -1
  525. package/dist/esm/internal/stm/tMap.js +3 -3
  526. package/dist/esm/internal/stm/tMap.js.map +1 -1
  527. package/dist/esm/internal/stm/tPriorityQueue.js +11 -11
  528. package/dist/esm/internal/stm/tPriorityQueue.js.map +1 -1
  529. package/dist/esm/internal/stm/tPubSub.js +3 -3
  530. package/dist/esm/internal/stm/tPubSub.js.map +1 -1
  531. package/dist/esm/internal/stm/tQueue.js +3 -3
  532. package/dist/esm/internal/stm/tQueue.js.map +1 -1
  533. package/dist/esm/internal/stm/tSet.js +1 -1
  534. package/dist/esm/internal/stm/tSet.js.map +1 -1
  535. package/dist/esm/internal/stream/haltStrategy.js +5 -5
  536. package/dist/esm/internal/stream/haltStrategy.js.map +1 -1
  537. package/dist/esm/internal/stream.js +85 -84
  538. package/dist/esm/internal/stream.js.map +1 -1
  539. package/dist/esm/internal/subscriptionRef.js +8 -0
  540. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  541. package/dist/esm/internal/supervisor.js +1 -1
  542. package/dist/esm/internal/supervisor.js.map +1 -1
  543. package/dist/esm/internal/take.js +1 -1
  544. package/dist/esm/internal/take.js.map +1 -1
  545. package/dist/esm/internal/tracer.js.map +1 -1
  546. package/dist/esm/internal/trie.js +1 -1
  547. package/dist/esm/internal/trie.js.map +1 -1
  548. package/dist/esm/internal/version.js +1 -1
  549. package/dist/esm/internal/version.js.map +1 -1
  550. package/package.json +45 -13
  551. package/src/{ReadonlyArray.ts → Array.ts} +47 -24
  552. package/src/Brand.ts +3 -3
  553. package/src/Cache.ts +12 -10
  554. package/src/Cause.ts +1 -1
  555. package/src/Channel.ts +12 -9
  556. package/src/Chunk.ts +3 -3
  557. package/src/ConfigError.ts +7 -6
  558. package/src/Cron.ts +17 -17
  559. package/src/Duration.ts +54 -1
  560. package/src/Effect.ts +46 -57
  561. package/src/Either.ts +7 -7
  562. package/src/ExecutionStrategy.ts +10 -2
  563. package/src/Exit.ts +11 -9
  564. package/src/Fiber.ts +11 -8
  565. package/src/FiberHandle.ts +414 -0
  566. package/src/FiberMap.ts +181 -73
  567. package/src/FiberRefs.ts +1 -1
  568. package/src/FiberSet.ts +96 -36
  569. package/src/GroupBy.ts +1 -1
  570. package/src/HashMap.ts +0 -1
  571. package/src/HashSet.ts +0 -1
  572. package/src/Iterable.ts +48 -10
  573. package/src/Layer.ts +6 -6
  574. package/src/List.ts +8 -7
  575. package/src/Logger.ts +2 -2
  576. package/src/Metric.ts +9 -2
  577. package/src/MetricKey.ts +9 -1
  578. package/src/MetricKeyType.ts +6 -1
  579. package/src/MutableHashMap.ts +1 -1
  580. package/src/Option.ts +9 -6
  581. package/src/Readable.ts +92 -0
  582. package/src/{ReadonlyRecord.ts → Record.ts} +28 -29
  583. package/src/Ref.ts +2 -2
  584. package/src/RegExp.ts +17 -0
  585. package/src/Request.ts +1 -1
  586. package/src/RequestResolver.ts +4 -4
  587. package/src/STM.ts +12 -9
  588. package/src/Schedule.ts +1 -1
  589. package/src/ScopedCache.ts +11 -9
  590. package/src/SortedSet.ts +1 -1
  591. package/src/Stream.ts +14 -11
  592. package/src/StreamHaltStrategy.ts +14 -2
  593. package/src/String.ts +45 -2
  594. package/src/Subscribable.ts +99 -0
  595. package/src/SubscriptionRef.ts +2 -2
  596. package/src/TestAnnotation.ts +2 -1
  597. package/src/TestAnnotations.ts +1 -1
  598. package/src/TestClock.ts +3 -3
  599. package/src/Tracer.ts +13 -5
  600. package/src/Trie.ts +1 -1
  601. package/src/Types.ts +0 -8
  602. package/src/index.ts +26 -4
  603. package/src/internal/{readonlyArray.ts → array.ts} +1 -1
  604. package/src/internal/cache.ts +40 -40
  605. package/src/internal/cause.ts +8 -8
  606. package/src/internal/channel/channelExecutor.ts +15 -15
  607. package/src/internal/channel/channelState.ts +1 -1
  608. package/src/internal/channel/singleProducerAsyncInput.ts +1 -1
  609. package/src/internal/channel.ts +11 -11
  610. package/src/internal/clock.ts +2 -2
  611. package/src/internal/configError.ts +22 -21
  612. package/src/internal/configProvider/pathPatch.ts +1 -1
  613. package/src/internal/configProvider.ts +51 -55
  614. package/src/internal/core-effect.ts +149 -134
  615. package/src/internal/core-stream.ts +5 -2
  616. package/src/internal/core.ts +64 -200
  617. package/src/internal/dataSource.ts +19 -20
  618. package/src/internal/differ/readonlyArrayPatch.ts +6 -6
  619. package/src/internal/effect/circular.ts +9 -3
  620. package/src/internal/errors.ts +7 -0
  621. package/src/internal/executionStrategy.ts +14 -12
  622. package/src/internal/fiber.ts +8 -5
  623. package/src/internal/fiberRefs/patch.ts +1 -1
  624. package/src/internal/fiberRefs.ts +1 -1
  625. package/src/internal/fiberRuntime.ts +157 -123
  626. package/src/internal/groupBy.ts +4 -4
  627. package/src/internal/hashMap.ts +1 -2
  628. package/src/internal/hashSet.ts +0 -1
  629. package/src/internal/layer/circular.ts +2 -2
  630. package/src/internal/layer.ts +9 -9
  631. package/src/internal/logger.ts +28 -8
  632. package/src/internal/managedRuntime.ts +1 -1
  633. package/src/internal/matcher.ts +5 -3
  634. package/src/internal/metric/boundaries.ts +5 -5
  635. package/src/internal/metric/hook.ts +21 -18
  636. package/src/internal/metric/key.ts +8 -5
  637. package/src/internal/metric/keyType.ts +5 -2
  638. package/src/internal/metric/state.ts +5 -5
  639. package/src/internal/metric.ts +8 -6
  640. package/src/internal/pool.ts +11 -11
  641. package/src/internal/pubsub.ts +6 -6
  642. package/src/internal/query.ts +4 -4
  643. package/src/internal/queue.ts +11 -11
  644. package/src/internal/rateLimiter.ts +1 -1
  645. package/src/internal/redBlackTree/iterator.ts +2 -2
  646. package/src/internal/ref.ts +8 -2
  647. package/src/internal/reloadable.ts +1 -1
  648. package/src/internal/runtime.ts +5 -5
  649. package/src/internal/schedule/intervals.ts +2 -1
  650. package/src/internal/schedule.ts +8 -9
  651. package/src/internal/scopedCache.ts +53 -53
  652. package/src/internal/scopedRef.ts +4 -4
  653. package/src/internal/secret.ts +2 -2
  654. package/src/internal/sink.ts +10 -10
  655. package/src/internal/stm/stm/tExit.ts +5 -2
  656. package/src/internal/stm/stm.ts +13 -9
  657. package/src/internal/stm/tMap.ts +3 -3
  658. package/src/internal/stm/tPriorityQueue.ts +11 -11
  659. package/src/internal/stm/tPubSub.ts +3 -3
  660. package/src/internal/stm/tQueue.ts +3 -3
  661. package/src/internal/stm/tSet.ts +1 -1
  662. package/src/internal/stream/haltStrategy.ts +23 -14
  663. package/src/internal/stream.ts +91 -88
  664. package/src/internal/subscriptionRef.ts +8 -0
  665. package/src/internal/supervisor.ts +1 -1
  666. package/src/internal/take.ts +1 -1
  667. package/src/internal/tracer.ts +2 -2
  668. package/src/internal/trie.ts +1 -2
  669. package/src/internal/version.ts +1 -1
  670. package/ReadonlyArray/package.json +0 -6
  671. package/ReadonlyRecord/package.json +0 -6
  672. package/dist/cjs/ReadonlyArray.js.map +0 -1
  673. package/dist/cjs/ReadonlyRecord.js.map +0 -1
  674. package/dist/cjs/internal/Iterable.js +0 -61
  675. package/dist/cjs/internal/Iterable.js.map +0 -1
  676. package/dist/cjs/internal/readonlyArray.js.map +0 -1
  677. package/dist/dts/ReadonlyArray.d.ts.map +0 -1
  678. package/dist/dts/ReadonlyRecord.d.ts.map +0 -1
  679. package/dist/dts/internal/Iterable.d.ts +0 -2
  680. package/dist/dts/internal/Iterable.d.ts.map +0 -1
  681. package/dist/dts/internal/readonlyArray.d.ts +0 -5
  682. package/dist/dts/internal/readonlyArray.d.ts.map +0 -1
  683. package/dist/esm/ReadonlyArray.js.map +0 -1
  684. package/dist/esm/ReadonlyRecord.js.map +0 -1
  685. package/dist/esm/internal/Iterable.js +0 -53
  686. package/dist/esm/internal/Iterable.js.map +0 -1
  687. package/dist/esm/internal/readonlyArray.js.map +0 -1
  688. package/src/internal/Iterable.ts +0 -54
@@ -1,3 +1,4 @@
1
+ import * as Array from "../Array.js"
1
2
  import type * as Cause from "../Cause.js"
2
3
  import * as Chunk from "../Chunk.js"
3
4
  import * as Context from "../Context.js"
@@ -27,7 +28,6 @@ import * as MutableRef from "../MutableRef.js"
27
28
  import * as Option from "../Option.js"
28
29
  import { pipeArguments } from "../Pipeable.js"
29
30
  import { hasProperty, isObject, isPromiseLike, isString, type Predicate, type Refinement } from "../Predicate.js"
30
- import * as ReadonlyArray from "../ReadonlyArray.js"
31
31
  import type * as Request from "../Request.js"
32
32
  import type * as BlockedRequests from "../RequestBlock.js"
33
33
  import type * as RequestResolver from "../RequestResolver.js"
@@ -35,12 +35,13 @@ import type * as RuntimeFlags from "../RuntimeFlags.js"
35
35
  import * as RuntimeFlagsPatch from "../RuntimeFlagsPatch.js"
36
36
  import type * as Scope from "../Scope.js"
37
37
  import type * as Tracer from "../Tracer.js"
38
- import type { NoInfer, NotFunction } from "../Types.js"
38
+ import type { NotFunction } from "../Types.js"
39
39
  import * as _blockedRequests from "./blockedRequests.js"
40
40
  import * as internalCause from "./cause.js"
41
41
  import * as deferred from "./deferred.js"
42
42
  import * as internalDiffer from "./differ.js"
43
43
  import { effectVariance, StructuralCommitPrototype } from "./effectable.js"
44
+ import { getBugErrorMessage } from "./errors.js"
44
45
  import type * as FiberRuntime from "./fiberRuntime.js"
45
46
  import type * as fiberScope from "./fiberScope.js"
46
47
  import * as DeferredOpCodes from "./opCodes/deferred.js"
@@ -429,7 +430,7 @@ export const as: {
429
430
  )
430
431
 
431
432
  /* @internal */
432
- export const asUnit = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<void, E, R> => as(self, void 0)
433
+ export const asVoid = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<void, E, R> => as(self, void 0)
433
434
 
434
435
  /* @internal */
435
436
  export const custom: {
@@ -469,7 +470,7 @@ export const custom: {
469
470
  break
470
471
  }
471
472
  default: {
472
- throw new Error("Bug, you're not supposed to end up here")
473
+ throw new Error(getBugErrorMessage("you're not supposed to end up here"))
473
474
  }
474
475
  }
475
476
  return wrapper
@@ -514,7 +515,7 @@ export const async = <A, E = never, R = never>(
514
515
  if (controllerRef) {
515
516
  controllerRef.abort()
516
517
  }
517
- return cancelerRef ?? unit
518
+ return cancelerRef ?? void_
518
519
  }) :
519
520
  effect
520
521
  })
@@ -885,8 +886,8 @@ export const forEachSequential: {
885
886
  2,
886
887
  <A, B, E, R>(self: Iterable<A>, f: (a: A, i: number) => Effect.Effect<B, E, R>): Effect.Effect<Array<B>, E, R> =>
887
888
  suspend(() => {
888
- const arr = ReadonlyArray.fromIterable(self)
889
- const ret = new Array(arr.length)
889
+ const arr = Array.fromIterable(self)
890
+ const ret = Array.allocate<B>(arr.length)
890
891
  let i = 0
891
892
  return as(
892
893
  whileLoop({
@@ -896,7 +897,7 @@ export const forEachSequential: {
896
897
  ret[i++] = b
897
898
  }
898
899
  }),
899
- ret
900
+ ret as Array<B>
900
901
  )
901
902
  })
902
903
  )
@@ -909,7 +910,7 @@ export const forEachSequentialDiscard: {
909
910
  2,
910
911
  <A, B, E, R>(self: Iterable<A>, f: (a: A, i: number) => Effect.Effect<B, E, R>): Effect.Effect<void, E, R> =>
911
912
  suspend(() => {
912
- const arr = ReadonlyArray.fromIterable(self)
913
+ const arr = Array.fromIterable(self)
913
914
  let i = 0
914
915
  return whileLoop({
915
916
  while: () => i < arr.length,
@@ -925,35 +926,33 @@ export const forEachSequentialDiscard: {
925
926
  export const if_ = dual<
926
927
  <A1, E1, R1, A2, E2, R2>(
927
928
  options: {
928
- readonly onTrue: Effect.Effect<A1, E1, R1>
929
- readonly onFalse: Effect.Effect<A2, E2, R2>
929
+ readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
930
+ readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
930
931
  }
931
932
  ) => <E = never, R = never>(
932
933
  self: Effect.Effect<boolean, E, R> | boolean
933
934
  ) => Effect.Effect<A1 | A2, E | E1 | E2, R | R1 | R2>,
934
- {
935
- <A1, E1, R1, A2, E2, R2>(
936
- self: boolean,
937
- options: {
938
- readonly onTrue: Effect.Effect<A1, E1, R1>
939
- readonly onFalse: Effect.Effect<A2, E2, R2>
940
- }
941
- ): Effect.Effect<A1 | A2, E1 | E2, R1 | R2>
942
- <E, R, A1, E1, R1, A2, E2, R2>(
943
- self: Effect.Effect<boolean, E, R>,
944
- options: {
945
- readonly onTrue: Effect.Effect<A1, E1, R1>
946
- readonly onFalse: Effect.Effect<A2, E2, R2>
947
- }
948
- ): Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R>
949
- }
935
+ <A1, E1, R1, A2, E2, R2, E = never, R = never>(
936
+ self: Effect.Effect<boolean, E, R> | boolean,
937
+ options: {
938
+ readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
939
+ readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
940
+ }
941
+ ) => Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R>
950
942
  >(
951
943
  (args) => typeof args[0] === "boolean" || isEffect(args[0]),
952
- (self: boolean | Effect.Effect<unknown, unknown, unknown>, { onFalse, onTrue }: {
953
- readonly onTrue: Effect.Effect<unknown, unknown, unknown>
954
- readonly onFalse: Effect.Effect<unknown, unknown, unknown>
955
- // eslint-disable-next-line no-extra-boolean-cast
956
- }) => isEffect(self) ? flatMap(self, (b) => (b ? onTrue : onFalse)) : Boolean(self) ? onTrue : onFalse
944
+ <A1, E1, R1, A2, E2, R2, E = never, R = never>(
945
+ self: Effect.Effect<boolean, E, R> | boolean,
946
+ options: {
947
+ readonly onTrue: LazyArg<Effect.Effect<A1, E1, R1>>
948
+ readonly onFalse: LazyArg<Effect.Effect<A2, E2, R2>>
949
+ }
950
+ ): Effect.Effect<A1 | A2, E1 | E2 | E, R1 | R2 | R> =>
951
+ isEffect(self)
952
+ ? flatMap(self, (b): Effect.Effect<A1 | A2, E1 | E2, R1 | R2> => (b ? options.onTrue() : options.onFalse()))
953
+ : self
954
+ ? options.onTrue()
955
+ : options.onFalse()
957
956
  )
958
957
 
959
958
  /* @internal */
@@ -1064,7 +1063,7 @@ export const onError: {
1064
1063
  self: Effect.Effect<A, E, R>,
1065
1064
  cleanup: (cause: Cause.Cause<E>) => Effect.Effect<X, never, R2>
1066
1065
  ): Effect.Effect<A, E, R2 | R> =>
1067
- onExit(self, (exit) => exitIsSuccess(exit) ? unit : cleanup(exit.effect_instruction_i0)))
1066
+ onExit(self, (exit) => exitIsSuccess(exit) ? void_ : cleanup(exit.effect_instruction_i0)))
1068
1067
 
1069
1068
  /* @internal */
1070
1069
  export const onExit: {
@@ -1113,9 +1112,9 @@ export const onInterrupt: {
1113
1112
  exitMatch({
1114
1113
  onFailure: (cause) =>
1115
1114
  internalCause.isInterruptedOnly(cause)
1116
- ? asUnit(cleanup(internalCause.interruptors(cause)))
1117
- : unit,
1118
- onSuccess: () => unit
1115
+ ? asVoid(cleanup(internalCause.interruptors(cause)))
1116
+ : void_,
1117
+ onSuccess: () => void_
1119
1118
  })
1120
1119
  ))
1121
1120
 
@@ -1157,7 +1156,7 @@ export const partitionMap = <A, A1, A2>(
1157
1156
  elements: Iterable<A>,
1158
1157
  f: (a: A) => Either.Either<A2, A1>
1159
1158
  ): [left: Array<A1>, right: Array<A2>] =>
1160
- ReadonlyArray.fromIterable(elements).reduceRight(
1159
+ Array.fromIterable(elements).reduceRight(
1161
1160
  ([lefts, rights], current) => {
1162
1161
  const either = f(current)
1163
1162
  switch (either._tag) {
@@ -1169,7 +1168,7 @@ export const partitionMap = <A, A1, A2>(
1169
1168
  }
1170
1169
  }
1171
1170
  },
1172
- [new Array<A1>(), new Array<A2>()]
1171
+ [Array.empty<A1>(), Array.empty<A2>()]
1173
1172
  )
1174
1173
 
1175
1174
  /* @internal */
@@ -1301,8 +1300,11 @@ export const uninterruptibleMask = <A, E, R>(
1301
1300
  return effect
1302
1301
  })
1303
1302
 
1304
- /* @internal */
1305
- export const unit: Effect.Effect<void> = succeed(void 0)
1303
+ const void_: Effect.Effect<void> = succeed(void 0)
1304
+ export {
1305
+ /* @internal */
1306
+ void_ as void
1307
+ }
1306
1308
 
1307
1309
  /* @internal */
1308
1310
  export const updateRuntimeFlags = (patch: RuntimeFlagsPatch.RuntimeFlagsPatch): Effect.Effect<void> => {
@@ -1667,7 +1669,7 @@ export const fiberRefSet = dual<
1667
1669
  export const fiberRefDelete = <A>(self: FiberRef.FiberRef<A>): Effect.Effect<void> =>
1668
1670
  withFiberRuntime((state) => {
1669
1671
  state.unsafeDeleteFiberRef(self)
1670
- return unit
1672
+ return void_
1671
1673
  })
1672
1674
 
1673
1675
  /* @internal */
@@ -1998,7 +2000,7 @@ export const withUnhandledErrorLogLevel = dual<
1998
2000
  /** @internal */
1999
2001
  export const currentMetricLabels: FiberRef.FiberRef<ReadonlyArray<MetricLabel.MetricLabel>> = globalValue(
2000
2002
  Symbol.for("effect/FiberRef/currentMetricLabels"),
2001
- () => fiberRefUnsafeMakeReadonlyArray(ReadonlyArray.empty())
2003
+ () => fiberRefUnsafeMakeReadonlyArray(Array.empty())
2002
2004
  )
2003
2005
 
2004
2006
  /* @internal */
@@ -2066,7 +2068,7 @@ export const CloseableScopeTypeId: Scope.CloseableScopeTypeId = Symbol.for(
2066
2068
  export const scopeAddFinalizer = (
2067
2069
  self: Scope.Scope,
2068
2070
  finalizer: Effect.Effect<unknown>
2069
- ): Effect.Effect<void> => self.addFinalizer(() => asUnit(finalizer))
2071
+ ): Effect.Effect<void> => self.addFinalizer(() => asVoid(finalizer))
2070
2072
 
2071
2073
  /* @internal */
2072
2074
  export const scopeAddFinalizerExit = (
@@ -2086,143 +2088,6 @@ export const scopeFork = (
2086
2088
  strategy: ExecutionStrategy.ExecutionStrategy
2087
2089
  ): Effect.Effect<Scope.Scope.Closeable> => self.fork(strategy)
2088
2090
 
2089
- // -----------------------------------------------------------------------------
2090
- // ReleaseMap
2091
- // -----------------------------------------------------------------------------
2092
-
2093
- /** @internal */
2094
- export type ReleaseMapState = {
2095
- _tag: "Exited"
2096
- nextKey: number
2097
- exit: Exit.Exit<unknown, unknown>
2098
- update: (finalizer: Scope.Scope.Finalizer) => Scope.Scope.Finalizer
2099
- } | {
2100
- _tag: "Running"
2101
- nextKey: number
2102
- finalizers: Map<number, Scope.Scope.Finalizer>
2103
- update: (finalizer: Scope.Scope.Finalizer) => Scope.Scope.Finalizer
2104
- }
2105
-
2106
- /** @internal */
2107
- export interface ReleaseMap {
2108
- state: ReleaseMapState // mutable by design
2109
- }
2110
-
2111
- /* @internal */
2112
- export const releaseMapAdd = dual<
2113
- (finalizer: Scope.Scope.Finalizer) => (self: ReleaseMap) => Effect.Effect<Scope.Scope.Finalizer>,
2114
- (self: ReleaseMap, finalizer: Scope.Scope.Finalizer) => Effect.Effect<Scope.Scope.Finalizer>
2115
- >(2, (self, finalizer) =>
2116
- map(
2117
- releaseMapAddIfOpen(self, finalizer),
2118
- Option.match({
2119
- onNone: (): Scope.Scope.Finalizer => () => unit,
2120
- onSome: (key): Scope.Scope.Finalizer => (exit) => releaseMapRelease(key, exit)(self)
2121
- })
2122
- ))
2123
-
2124
- /* @internal */
2125
- export const releaseMapRelease = dual<
2126
- (key: number, exit: Exit.Exit<unknown, unknown>) => (self: ReleaseMap) => Effect.Effect<void>,
2127
- (self: ReleaseMap, key: number, exit: Exit.Exit<unknown, unknown>) => Effect.Effect<void>
2128
- >(3, (self, key, exit) =>
2129
- suspend(() => {
2130
- switch (self.state._tag) {
2131
- case "Exited": {
2132
- return unit
2133
- }
2134
- case "Running": {
2135
- const finalizer = self.state.finalizers.get(key)
2136
- self.state.finalizers.delete(key)
2137
- if (finalizer != null) {
2138
- return self.state.update(finalizer)(exit)
2139
- }
2140
- return unit
2141
- }
2142
- }
2143
- }))
2144
-
2145
- /* @internal */
2146
- export const releaseMapAddIfOpen = dual<
2147
- (finalizer: Scope.Scope.Finalizer) => (self: ReleaseMap) => Effect.Effect<Option.Option<number>>,
2148
- (self: ReleaseMap, finalizer: Scope.Scope.Finalizer) => Effect.Effect<Option.Option<number>>
2149
- >(2, (self, finalizer) =>
2150
- suspend(() => {
2151
- switch (self.state._tag) {
2152
- case "Exited": {
2153
- self.state.nextKey += 1
2154
- return as(finalizer(self.state.exit), Option.none())
2155
- }
2156
- case "Running": {
2157
- const key = self.state.nextKey
2158
- self.state.finalizers.set(key, finalizer)
2159
- self.state.nextKey += 1
2160
- return succeed(Option.some(key))
2161
- }
2162
- }
2163
- }))
2164
-
2165
- /* @internal */
2166
- export const releaseMapGet = dual<
2167
- (key: number) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
2168
- (self: ReleaseMap, key: number) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
2169
- >(
2170
- 2,
2171
- (self, key) =>
2172
- sync((): Option.Option<Scope.Scope.Finalizer> =>
2173
- self.state._tag === "Running" ? Option.fromNullable(self.state.finalizers.get(key)) : Option.none()
2174
- )
2175
- )
2176
-
2177
- /* @internal */
2178
- export const releaseMapReplace = dual<
2179
- (
2180
- key: number,
2181
- finalizer: Scope.Scope.Finalizer
2182
- ) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
2183
- (
2184
- self: ReleaseMap,
2185
- key: number,
2186
- finalizer: Scope.Scope.Finalizer
2187
- ) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
2188
- >(3, (self, key, finalizer) =>
2189
- suspend(() => {
2190
- switch (self.state._tag) {
2191
- case "Exited": {
2192
- return as(finalizer(self.state.exit), Option.none())
2193
- }
2194
- case "Running": {
2195
- const fin = Option.fromNullable(self.state.finalizers.get(key))
2196
- self.state.finalizers.set(key, finalizer)
2197
- return succeed(fin)
2198
- }
2199
- }
2200
- }))
2201
-
2202
- /* @internal */
2203
- export const releaseMapRemove = dual<
2204
- (key: number) => (self: ReleaseMap) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>,
2205
- (self: ReleaseMap, key: number) => Effect.Effect<Option.Option<Scope.Scope.Finalizer>>
2206
- >(2, (self, key) =>
2207
- sync(() => {
2208
- if (self.state._tag === "Exited") {
2209
- return Option.none()
2210
- }
2211
- const fin = Option.fromNullable(self.state.finalizers.get(key))
2212
- self.state.finalizers.delete(key)
2213
- return fin
2214
- }))
2215
-
2216
- /* @internal */
2217
- export const releaseMapMake: Effect.Effect<ReleaseMap> = sync((): ReleaseMap => ({
2218
- state: {
2219
- _tag: "Running",
2220
- nextKey: 0,
2221
- finalizers: new Map(),
2222
- update: identity
2223
- }
2224
- }))
2225
-
2226
2091
  // -----------------------------------------------------------------------------
2227
2092
  // Cause
2228
2093
  // -----------------------------------------------------------------------------
@@ -2245,8 +2110,8 @@ export const causeSquashWith = dual<
2245
2110
  Chunk.head,
2246
2111
  Option.match({
2247
2112
  onNone: () => {
2248
- const interrupts = Array.from(internalCause.interruptors(self)).flatMap((fiberId) =>
2249
- Array.from(FiberId.ids(fiberId)).map((id) => `#${id}`)
2113
+ const interrupts = Array.fromIterable(internalCause.interruptors(self)).flatMap((fiberId) =>
2114
+ Array.fromIterable(FiberId.ids(fiberId)).map((id) => `#${id}`)
2250
2115
  )
2251
2116
  return new InterruptedException(interrupts ? `Interrupted by fibers: ${interrupts.join(", ")}` : void 0)
2252
2117
  },
@@ -2446,7 +2311,7 @@ export const exitAs = dual<
2446
2311
  })
2447
2312
 
2448
2313
  /** @internal */
2449
- export const exitAsUnit = <A, E>(self: Exit.Exit<A, E>): Exit.Exit<void, E> => exitAs(self, void 0)
2314
+ export const exitAsVoid = <A, E>(self: Exit.Exit<A, E>): Exit.Exit<void, E> => exitAs(self, void 0)
2450
2315
 
2451
2316
  /** @internal */
2452
2317
  export const exitCauseOption = <A, E>(self: Exit.Exit<A, E>): Option.Option<Cause.Cause<E>> => {
@@ -2714,7 +2579,7 @@ export const exitSucceed = <A>(value: A): Exit.Exit<A> => {
2714
2579
  }
2715
2580
 
2716
2581
  /** @internal */
2717
- export const exitUnit: Exit.Exit<void> = exitSucceed(void 0)
2582
+ export const exitVoid: Exit.Exit<void> = exitSucceed(void 0)
2718
2583
 
2719
2584
  /** @internal */
2720
2585
  export const exitZip = dual<
@@ -2829,7 +2694,7 @@ const exitCollectAllInternal = <A, E>(
2829
2694
  }
2830
2695
  return pipe(
2831
2696
  Chunk.tailNonEmpty(list),
2832
- ReadonlyArray.reduce(
2697
+ Array.reduce(
2833
2698
  pipe(Chunk.headNonEmpty(list), exitMap<A, Chunk.Chunk<A>>(Chunk.of)),
2834
2699
  (accumulator, current) =>
2835
2700
  pipe(
@@ -2841,7 +2706,7 @@ const exitCollectAllInternal = <A, E>(
2841
2706
  )
2842
2707
  ),
2843
2708
  exitMap(Chunk.reverse),
2844
- exitMap((chunk) => Array.from(chunk)),
2709
+ exitMap((chunk) => Chunk.toReadonlyArray(chunk) as Array<A>),
2845
2710
  Option.some
2846
2711
  )
2847
2712
  }
@@ -2877,10 +2742,8 @@ export const deferredAwait = <A, E>(self: Deferred.Deferred<A, E>): Effect.Effec
2877
2742
  return resume(state.effect)
2878
2743
  }
2879
2744
  case DeferredOpCodes.OP_STATE_PENDING: {
2880
- pipe(
2881
- self.state,
2882
- MutableRef.set(deferred.pending([resume, ...state.joiners]))
2883
- )
2745
+ // we can push here as the internal state is mutable
2746
+ state.joiners.push(resume)
2884
2747
  return deferredInterruptJoiner(self, resume)
2885
2748
  }
2886
2749
  }
@@ -2908,8 +2771,8 @@ export const deferredCompleteWith = dual<
2908
2771
  return false
2909
2772
  }
2910
2773
  case DeferredOpCodes.OP_STATE_PENDING: {
2911
- pipe(self.state, MutableRef.set(deferred.done(effect)))
2912
- for (let i = 0; i < state.joiners.length; i++) {
2774
+ MutableRef.set(self.state, deferred.done(effect))
2775
+ for (let i = 0, len = state.joiners.length; i < len; i++) {
2913
2776
  state.joiners[i](effect)
2914
2777
  }
2915
2778
  return true
@@ -3005,8 +2868,8 @@ export const deferredSync = dual<
3005
2868
  export const deferredUnsafeDone = <A, E>(self: Deferred.Deferred<A, E>, effect: Effect.Effect<A, E>): void => {
3006
2869
  const state = MutableRef.get(self.state)
3007
2870
  if (state._tag === DeferredOpCodes.OP_STATE_PENDING) {
3008
- pipe(self.state, MutableRef.set(deferred.done(effect)))
3009
- for (let i = state.joiners.length - 1; i >= 0; i--) {
2871
+ MutableRef.set(self.state, deferred.done(effect))
2872
+ for (let i = 0, len = state.joiners.length; i < len; i++) {
3010
2873
  state.joiners[i](effect)
3011
2874
  }
3012
2875
  }
@@ -3019,10 +2882,11 @@ const deferredInterruptJoiner = <A, E>(
3019
2882
  sync(() => {
3020
2883
  const state = MutableRef.get(self.state)
3021
2884
  if (state._tag === DeferredOpCodes.OP_STATE_PENDING) {
3022
- pipe(
3023
- self.state,
3024
- MutableRef.set(deferred.pending(state.joiners.filter((j) => j !== joiner)))
3025
- )
2885
+ const index = state.joiners.indexOf(joiner)
2886
+ if (index >= 0) {
2887
+ // we can splice here as the internal state is mutable
2888
+ state.joiners.splice(index, 1)
2889
+ }
3026
2890
  }
3027
2891
  })
3028
2892
 
@@ -3086,7 +2950,7 @@ export const mapInputContext = dual<
3086
2950
  /** @internal */
3087
2951
  export const currentSpanFromFiber = <A, E>(fiber: Fiber.RuntimeFiber<A, E>): Option.Option<Tracer.Span> => {
3088
2952
  const span = fiber.getFiberRef(currentContext).unsafeMap.get(internalTracer.spanTag.key) as
3089
- | Tracer.ParentSpan
2953
+ | Tracer.AnySpan
3090
2954
  | undefined
3091
2955
  return span !== undefined && span._tag === "Span" ? Option.some(span) : Option.none()
3092
2956
  }
@@ -3103,7 +2967,7 @@ const NoopSpanProto: Tracer.Span = {
3103
2967
  _tag: "Ended",
3104
2968
  startTime: BigInt(0),
3105
2969
  endTime: BigInt(0),
3106
- exit: exitUnit
2970
+ exit: exitVoid
3107
2971
  },
3108
2972
  attributes: new Map(),
3109
2973
  links: [],
@@ -1,13 +1,12 @@
1
+ import * as RA from "../Array.js"
1
2
  import * as Cause from "../Cause.js"
2
3
  import * as Chunk from "../Chunk.js"
3
4
  import type * as Context from "../Context.js"
4
5
  import * as Effect from "../Effect.js"
5
6
  import type * as Either from "../Either.js"
6
7
  import { dual, pipe } from "../Function.js"
7
- import * as RA from "../ReadonlyArray.js"
8
8
  import type * as Request from "../Request.js"
9
9
  import type * as RequestResolver from "../RequestResolver.js"
10
- import type { NoInfer } from "../Types.js"
11
10
  import * as core from "./core.js"
12
11
  import { invokeWithInterrupt, zipWithOptions } from "./fiberRuntime.js"
13
12
  import { complete } from "./request.js"
@@ -28,24 +27,24 @@ export const makeBatched = <A extends Request.Request<any, any>, R>(
28
27
  run: (requests: Array<A>) => Effect.Effect<void, never, R>
29
28
  ): RequestResolver.RequestResolver<A, R> =>
30
29
  new core.RequestResolverImpl<A, R>(
31
- (requests) =>
32
- requests.length > 1 ?
33
- core.forEachSequentialDiscard(requests, (block) =>
34
- invokeWithInterrupt(
35
- run(
36
- block
37
- .filter((_) => !_.state.completed)
38
- .map((_) => _.request)
39
- ),
40
- block
41
- )) :
42
- (requests.length === 1 ?
43
- run(
44
- requests[0]
45
- .filter((_) => !_.state.completed)
46
- .map((_) => _.request)
47
- ) :
48
- core.unit)
30
+ (requests) => {
31
+ if (requests.length > 1) {
32
+ return core.forEachSequentialDiscard(requests, (block) => {
33
+ const filtered = block.filter((_) => !_.state.completed).map((_) => _.request)
34
+ if (filtered.length === 0) {
35
+ return core.void
36
+ }
37
+ return invokeWithInterrupt(run(filtered), block)
38
+ })
39
+ } else if (requests.length === 1) {
40
+ const filtered = requests[0].filter((_) => !_.state.completed).map((_) => _.request)
41
+ if (filtered.length === 0) {
42
+ return core.void
43
+ }
44
+ return run(filtered)
45
+ }
46
+ return core.void
47
+ }
49
48
  )
50
49
 
51
50
  /** @internal */
@@ -1,7 +1,7 @@
1
+ import * as Array from "../../Array.js"
1
2
  import type * as Differ from "../../Differ.js"
2
3
  import * as Equal from "../../Equal.js"
3
4
  import * as Dual from "../../Function.js"
4
- import * as ReadonlyArray from "../../ReadonlyArray.js"
5
5
  import * as Data from "../data.js"
6
6
 
7
7
  /** @internal */
@@ -135,7 +135,7 @@ export const diff = <Value, Patch>(
135
135
  patch = combine(patch, makeSlice(0, i))
136
136
  }
137
137
  if (i < options.newValue.length) {
138
- patch = combine(patch, makeAppend(ReadonlyArray.drop(i)(options.newValue)))
138
+ patch = combine(patch, makeAppend(Array.drop(i)(options.newValue)))
139
139
  }
140
140
  return patch
141
141
  }
@@ -173,10 +173,10 @@ export const patch = Dual.dual<
173
173
  return oldValue
174
174
  }
175
175
  let readonlyArray = oldValue.slice()
176
- let patches: Array<Differ.Differ.ReadonlyArray.Patch<Value, Patch>> = ReadonlyArray.of(self)
177
- while (ReadonlyArray.isNonEmptyArray(patches)) {
178
- const head: Instruction = ReadonlyArray.headNonEmpty(patches) as Instruction
179
- const tail = ReadonlyArray.tailNonEmpty(patches)
176
+ let patches: Array<Differ.Differ.ReadonlyArray.Patch<Value, Patch>> = Array.of(self)
177
+ while (Array.isNonEmptyArray(patches)) {
178
+ const head: Instruction = Array.headNonEmpty(patches) as Instruction
179
+ const tail = Array.tailNonEmpty(patches)
180
180
  switch (head._tag) {
181
181
  case "Empty": {
182
182
  patches = tail
@@ -15,6 +15,7 @@ import * as MutableHashMap from "../../MutableHashMap.js"
15
15
  import * as Option from "../../Option.js"
16
16
  import { pipeArguments } from "../../Pipeable.js"
17
17
  import * as Predicate from "../../Predicate.js"
18
+ import * as Readable from "../../Readable.js"
18
19
  import type * as Ref from "../../Ref.js"
19
20
  import type * as Schedule from "../../Schedule.js"
20
21
  import { currentScheduler } from "../../Scheduler.js"
@@ -288,8 +289,8 @@ export const forkIn = dual<
288
289
  child.addFinalizer(() =>
289
290
  core.fiberIdWith((fiberId) =>
290
291
  Equal.equals(fiberId, fiber.id()) ?
291
- core.unit :
292
- core.asUnit(core.interruptFiber(fiber))
292
+ core.void :
293
+ core.asVoid(core.interruptFiber(fiber))
293
294
  )
294
295
  )
295
296
  )
@@ -556,10 +557,15 @@ export const synchronizedVariance = {
556
557
  class SynchronizedImpl<in out A> implements Synchronized.SynchronizedRef<A> {
557
558
  readonly [SynchronizedTypeId] = synchronizedVariance
558
559
  readonly [internalRef.RefTypeId] = internalRef.refVariance
560
+ readonly [Readable.TypeId]: Readable.TypeId
559
561
  constructor(
560
562
  readonly ref: Ref.Ref<A>,
561
563
  readonly withLock: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
562
- ) {}
564
+ ) {
565
+ this[Readable.TypeId] = Readable.TypeId
566
+ this.get = internalRef.get(this.ref)
567
+ }
568
+ readonly get: Effect.Effect<A>
563
569
  modify<B>(f: (a: A) => readonly [B, A]): Effect.Effect<B> {
564
570
  return this.modifyEffect((a) => core.succeed(f(a)))
565
571
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+
5
+ /** @internal */
6
+ export const getBugErrorMessage = (message: string) =>
7
+ `BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`
@@ -46,27 +46,29 @@ export const isParallelN = (self: ExecutionStrategy.ExecutionStrategy): self is
46
46
 
47
47
  /** @internal */
48
48
  export const match = dual<
49
- <A>(
50
- onSequential: LazyArg<A>,
51
- onParallel: LazyArg<A>,
52
- onParallelN: (n: number) => A
53
- ) => (self: ExecutionStrategy.ExecutionStrategy) => A,
49
+ <A>(options: {
50
+ readonly onSequential: LazyArg<A>
51
+ readonly onParallel: LazyArg<A>
52
+ readonly onParallelN: (n: number) => A
53
+ }) => (self: ExecutionStrategy.ExecutionStrategy) => A,
54
54
  <A>(
55
55
  self: ExecutionStrategy.ExecutionStrategy,
56
- onSequential: LazyArg<A>,
57
- onParallel: LazyArg<A>,
58
- onParallelN: (n: number) => A
56
+ options: {
57
+ readonly onSequential: LazyArg<A>
58
+ readonly onParallel: LazyArg<A>
59
+ readonly onParallelN: (n: number) => A
60
+ }
59
61
  ) => A
60
- >(4, (self, onSequential, onParallel, onParallelN) => {
62
+ >(2, (self, options) => {
61
63
  switch (self._tag) {
62
64
  case OP_SEQUENTIAL: {
63
- return onSequential()
65
+ return options.onSequential()
64
66
  }
65
67
  case OP_PARALLEL: {
66
- return onParallel()
68
+ return options.onParallel()
67
69
  }
68
70
  case OP_PARALLEL_N: {
69
- return onParallelN(self.parallelism)
71
+ return options.onParallelN(self.parallelism)
70
72
  }
71
73
  }
72
74
  })