effect 3.8.4 → 3.9.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 (757) hide show
  1. package/dist/cjs/Array.js +24 -3
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +5 -3
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js.map +1 -1
  6. package/dist/cjs/Boolean.js.map +1 -1
  7. package/dist/cjs/Cause.js.map +1 -1
  8. package/dist/cjs/Channel.js.map +1 -1
  9. package/dist/cjs/ChildExecutorDecision.js.map +1 -1
  10. package/dist/cjs/Chunk.js +3 -0
  11. package/dist/cjs/Chunk.js.map +1 -1
  12. package/dist/cjs/Config.js.map +1 -1
  13. package/dist/cjs/ConfigError.js.map +1 -1
  14. package/dist/cjs/ConfigProvider.js.map +1 -1
  15. package/dist/cjs/ConfigProviderPathPatch.js.map +1 -1
  16. package/dist/cjs/Console.js.map +1 -1
  17. package/dist/cjs/Context.js.map +1 -1
  18. package/dist/cjs/Cron.js +3 -0
  19. package/dist/cjs/Cron.js.map +1 -1
  20. package/dist/cjs/Data.js.map +1 -1
  21. package/dist/cjs/DateTime.js +6 -0
  22. package/dist/cjs/DateTime.js.map +1 -1
  23. package/dist/cjs/Deferred.js.map +1 -1
  24. package/dist/cjs/Differ.js.map +1 -1
  25. package/dist/cjs/Duration.js +3 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +122 -35
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js.map +1 -1
  30. package/dist/cjs/Equivalence.js.map +1 -1
  31. package/dist/cjs/ExecutionStrategy.js.map +1 -1
  32. package/dist/cjs/Exit.js.map +1 -1
  33. package/dist/cjs/Fiber.js.map +1 -1
  34. package/dist/cjs/FiberHandle.js +3 -0
  35. package/dist/cjs/FiberHandle.js.map +1 -1
  36. package/dist/cjs/FiberId.js.map +1 -1
  37. package/dist/cjs/FiberMap.js +3 -0
  38. package/dist/cjs/FiberMap.js.map +1 -1
  39. package/dist/cjs/FiberRef.js.map +1 -1
  40. package/dist/cjs/FiberRefs.js.map +1 -1
  41. package/dist/cjs/FiberRefsPatch.js.map +1 -1
  42. package/dist/cjs/FiberSet.js +3 -0
  43. package/dist/cjs/FiberSet.js.map +1 -1
  44. package/dist/cjs/Function.js.map +1 -1
  45. package/dist/cjs/GroupBy.js.map +1 -1
  46. package/dist/cjs/Hash.js.map +1 -1
  47. package/dist/cjs/HashMap.js.map +1 -1
  48. package/dist/cjs/HashSet.js.map +1 -1
  49. package/dist/cjs/Inspectable.js +15 -1
  50. package/dist/cjs/Inspectable.js.map +1 -1
  51. package/dist/cjs/Iterable.js.map +1 -1
  52. package/dist/cjs/KeyedPool.js.map +1 -1
  53. package/dist/cjs/Layer.js.map +1 -1
  54. package/dist/cjs/List.js +6 -0
  55. package/dist/cjs/List.js.map +1 -1
  56. package/dist/cjs/LogLevel.js.map +1 -1
  57. package/dist/cjs/Logger.js.map +1 -1
  58. package/dist/cjs/Mailbox.js.map +1 -1
  59. package/dist/cjs/ManagedRuntime.js +16 -1
  60. package/dist/cjs/ManagedRuntime.js.map +1 -1
  61. package/dist/cjs/MergeDecision.js.map +1 -1
  62. package/dist/cjs/MergeState.js.map +1 -1
  63. package/dist/cjs/MergeStrategy.js.map +1 -1
  64. package/dist/cjs/Metric.js.map +1 -1
  65. package/dist/cjs/MetricHook.js.map +1 -1
  66. package/dist/cjs/MetricKey.js.map +1 -1
  67. package/dist/cjs/MetricPolling.js.map +1 -1
  68. package/dist/cjs/MetricState.js.map +1 -1
  69. package/dist/cjs/Micro.js +6 -0
  70. package/dist/cjs/Micro.js.map +1 -1
  71. package/dist/cjs/MutableHashMap.js +3 -0
  72. package/dist/cjs/MutableHashMap.js.map +1 -1
  73. package/dist/cjs/MutableHashSet.js +3 -0
  74. package/dist/cjs/MutableHashSet.js.map +1 -1
  75. package/dist/cjs/MutableList.js +3 -0
  76. package/dist/cjs/MutableList.js.map +1 -1
  77. package/dist/cjs/MutableQueue.js +3 -0
  78. package/dist/cjs/MutableQueue.js.map +1 -1
  79. package/dist/cjs/MutableRef.js +3 -0
  80. package/dist/cjs/MutableRef.js.map +1 -1
  81. package/dist/cjs/Number.js.map +1 -1
  82. package/dist/cjs/Option.js.map +1 -1
  83. package/dist/cjs/Order.js.map +1 -1
  84. package/dist/cjs/Ordering.js.map +1 -1
  85. package/dist/cjs/Pipeable.js.map +1 -1
  86. package/dist/cjs/Pool.js.map +1 -1
  87. package/dist/cjs/Predicate.js +18 -2
  88. package/dist/cjs/Predicate.js.map +1 -1
  89. package/dist/cjs/PubSub.js.map +1 -1
  90. package/dist/cjs/Queue.js.map +1 -1
  91. package/dist/cjs/RcMap.js.map +1 -1
  92. package/dist/cjs/Readable.js.map +1 -1
  93. package/dist/cjs/Record.js.map +1 -1
  94. package/dist/cjs/RedBlackTree.js.map +1 -1
  95. package/dist/cjs/Ref.js.map +1 -1
  96. package/dist/cjs/RegExp.js +20 -1
  97. package/dist/cjs/RegExp.js.map +1 -1
  98. package/dist/cjs/Request.js.map +1 -1
  99. package/dist/cjs/RequestResolver.js.map +1 -1
  100. package/dist/cjs/Resource.js.map +1 -1
  101. package/dist/cjs/Runtime.js.map +1 -1
  102. package/dist/cjs/RuntimeFlags.js.map +1 -1
  103. package/dist/cjs/RuntimeFlagsPatch.js.map +1 -1
  104. package/dist/cjs/STM.js.map +1 -1
  105. package/dist/cjs/Schedule.js.map +1 -1
  106. package/dist/cjs/ScheduleInterval.js.map +1 -1
  107. package/dist/cjs/ScheduleIntervals.js.map +1 -1
  108. package/dist/cjs/Scheduler.js.map +1 -1
  109. package/dist/cjs/Scope.js.map +1 -1
  110. package/dist/cjs/ScopedRef.js.map +1 -1
  111. package/dist/cjs/Sink.js.map +1 -1
  112. package/dist/cjs/SortedMap.js +3 -0
  113. package/dist/cjs/SortedMap.js.map +1 -1
  114. package/dist/cjs/SortedSet.js +3 -0
  115. package/dist/cjs/SortedSet.js.map +1 -1
  116. package/dist/cjs/Stream.js +17 -3
  117. package/dist/cjs/Stream.js.map +1 -1
  118. package/dist/cjs/StreamHaltStrategy.js.map +1 -1
  119. package/dist/cjs/String.js.map +1 -1
  120. package/dist/cjs/Struct.js.map +1 -1
  121. package/dist/cjs/Subscribable.js.map +1 -1
  122. package/dist/cjs/SubscriptionRef.js.map +1 -1
  123. package/dist/cjs/SynchronizedRef.js.map +1 -1
  124. package/dist/cjs/TArray.js.map +1 -1
  125. package/dist/cjs/TDeferred.js.map +1 -1
  126. package/dist/cjs/TMap.js.map +1 -1
  127. package/dist/cjs/TPriorityQueue.js.map +1 -1
  128. package/dist/cjs/TPubSub.js.map +1 -1
  129. package/dist/cjs/TQueue.js.map +1 -1
  130. package/dist/cjs/TReentrantLock.js.map +1 -1
  131. package/dist/cjs/TRef.js.map +1 -1
  132. package/dist/cjs/TSemaphore.js.map +1 -1
  133. package/dist/cjs/TSet.js.map +1 -1
  134. package/dist/cjs/Take.js.map +1 -1
  135. package/dist/cjs/TestAnnotationMap.js.map +1 -1
  136. package/dist/cjs/TestClock.js.map +1 -1
  137. package/dist/cjs/TestServices.js.map +1 -1
  138. package/dist/cjs/Trie.js.map +1 -1
  139. package/dist/cjs/Tuple.js +21 -2
  140. package/dist/cjs/Tuple.js.map +1 -1
  141. package/dist/cjs/Unify.js.map +1 -1
  142. package/dist/cjs/UpstreamPullRequest.js.map +1 -1
  143. package/dist/cjs/UpstreamPullStrategy.js.map +1 -1
  144. package/dist/cjs/Utils.js +1 -14
  145. package/dist/cjs/Utils.js.map +1 -1
  146. package/dist/cjs/internal/cause.js +3 -0
  147. package/dist/cjs/internal/cause.js.map +1 -1
  148. package/dist/cjs/internal/context.js +6 -1
  149. package/dist/cjs/internal/context.js.map +1 -1
  150. package/dist/cjs/internal/core-effect.js.map +1 -1
  151. package/dist/cjs/internal/core.js +16 -3
  152. package/dist/cjs/internal/core.js.map +1 -1
  153. package/dist/cjs/internal/effect/circular.js +5 -1
  154. package/dist/cjs/internal/effect/circular.js.map +1 -1
  155. package/dist/cjs/internal/fiberId.js +9 -0
  156. package/dist/cjs/internal/fiberId.js.map +1 -1
  157. package/dist/cjs/internal/hashMap.js +3 -0
  158. package/dist/cjs/internal/hashMap.js.map +1 -1
  159. package/dist/cjs/internal/hashSet.js +3 -0
  160. package/dist/cjs/internal/hashSet.js.map +1 -1
  161. package/dist/cjs/internal/layer.js +33 -19
  162. package/dist/cjs/internal/layer.js.map +1 -1
  163. package/dist/cjs/internal/mailbox.js +3 -0
  164. package/dist/cjs/internal/mailbox.js.map +1 -1
  165. package/dist/cjs/internal/managedRuntime/circular.js +10 -0
  166. package/dist/cjs/internal/managedRuntime/circular.js.map +1 -0
  167. package/dist/cjs/internal/managedRuntime.js +23 -9
  168. package/dist/cjs/internal/managedRuntime.js.map +1 -1
  169. package/dist/cjs/internal/option.js +3 -0
  170. package/dist/cjs/internal/option.js.map +1 -1
  171. package/dist/cjs/internal/pool.js +6 -1
  172. package/dist/cjs/internal/pool.js.map +1 -1
  173. package/dist/cjs/internal/redBlackTree.js +3 -0
  174. package/dist/cjs/internal/redBlackTree.js.map +1 -1
  175. package/dist/cjs/internal/resource.js +15 -5
  176. package/dist/cjs/internal/resource.js.map +1 -1
  177. package/dist/cjs/internal/runtime.js +4 -1
  178. package/dist/cjs/internal/runtime.js.map +1 -1
  179. package/dist/cjs/internal/scopedRef.js +11 -8
  180. package/dist/cjs/internal/scopedRef.js.map +1 -1
  181. package/dist/cjs/internal/stm/core.js +1 -2
  182. package/dist/cjs/internal/stm/core.js.map +1 -1
  183. package/dist/cjs/internal/stream.js +12 -3
  184. package/dist/cjs/internal/stream.js.map +1 -1
  185. package/dist/cjs/internal/trie.js +3 -0
  186. package/dist/cjs/internal/trie.js.map +1 -1
  187. package/dist/cjs/internal/version.js +1 -1
  188. package/dist/dts/Array.d.ts +2735 -2
  189. package/dist/dts/Array.d.ts.map +1 -1
  190. package/dist/dts/BigDecimal.d.ts +558 -1
  191. package/dist/dts/BigDecimal.d.ts.map +1 -1
  192. package/dist/dts/BigInt.d.ts +490 -0
  193. package/dist/dts/BigInt.d.ts.map +1 -1
  194. package/dist/dts/Boolean.d.ts +228 -0
  195. package/dist/dts/Boolean.d.ts.map +1 -1
  196. package/dist/dts/Cause.d.ts +172 -0
  197. package/dist/dts/Cause.d.ts.map +1 -1
  198. package/dist/dts/Channel.d.ts +750 -0
  199. package/dist/dts/Channel.d.ts.map +1 -1
  200. package/dist/dts/ChildExecutorDecision.d.ts +12 -0
  201. package/dist/dts/ChildExecutorDecision.d.ts.map +1 -1
  202. package/dist/dts/Chunk.d.ts +791 -0
  203. package/dist/dts/Chunk.d.ts.map +1 -1
  204. package/dist/dts/Config.d.ts +174 -0
  205. package/dist/dts/Config.d.ts.map +1 -1
  206. package/dist/dts/ConfigError.d.ts +16 -0
  207. package/dist/dts/ConfigError.d.ts.map +1 -1
  208. package/dist/dts/ConfigProvider.d.ts +84 -0
  209. package/dist/dts/ConfigProvider.d.ts.map +1 -1
  210. package/dist/dts/ConfigProviderPathPatch.d.ts +32 -0
  211. package/dist/dts/ConfigProviderPathPatch.d.ts.map +1 -1
  212. package/dist/dts/Console.d.ts +24 -0
  213. package/dist/dts/Console.d.ts.map +1 -1
  214. package/dist/dts/Context.d.ts +234 -3
  215. package/dist/dts/Context.d.ts.map +1 -1
  216. package/dist/dts/Cron.d.ts +12 -0
  217. package/dist/dts/Cron.d.ts.map +1 -1
  218. package/dist/dts/Data.d.ts +165 -0
  219. package/dist/dts/Data.d.ts.map +1 -1
  220. package/dist/dts/DateTime.d.ts +878 -0
  221. package/dist/dts/DateTime.d.ts.map +1 -1
  222. package/dist/dts/Deferred.d.ts +171 -1
  223. package/dist/dts/Deferred.d.ts.map +1 -1
  224. package/dist/dts/Differ.d.ts +78 -0
  225. package/dist/dts/Differ.d.ts.map +1 -1
  226. package/dist/dts/Duration.d.ts +130 -0
  227. package/dist/dts/Duration.d.ts.map +1 -1
  228. package/dist/dts/Effect.d.ts +4350 -13
  229. package/dist/dts/Effect.d.ts.map +1 -1
  230. package/dist/dts/Either.d.ts +620 -0
  231. package/dist/dts/Either.d.ts.map +1 -1
  232. package/dist/dts/Equivalence.d.ts +24 -0
  233. package/dist/dts/Equivalence.d.ts.map +1 -1
  234. package/dist/dts/ExecutionStrategy.d.ts +14 -0
  235. package/dist/dts/ExecutionStrategy.d.ts.map +1 -1
  236. package/dist/dts/Exit.d.ts +252 -0
  237. package/dist/dts/Exit.d.ts.map +1 -1
  238. package/dist/dts/Fiber.d.ts +182 -0
  239. package/dist/dts/Fiber.d.ts.map +1 -1
  240. package/dist/dts/FiberHandle.d.ts +42 -0
  241. package/dist/dts/FiberHandle.d.ts.map +1 -1
  242. package/dist/dts/FiberId.d.ts +24 -0
  243. package/dist/dts/FiberId.d.ts.map +1 -1
  244. package/dist/dts/FiberMap.d.ts +102 -0
  245. package/dist/dts/FiberMap.d.ts.map +1 -1
  246. package/dist/dts/FiberRef.d.ts +80 -0
  247. package/dist/dts/FiberRef.d.ts.map +1 -1
  248. package/dist/dts/FiberRefs.d.ts +84 -0
  249. package/dist/dts/FiberRefs.d.ts.map +1 -1
  250. package/dist/dts/FiberRefsPatch.d.ts +30 -0
  251. package/dist/dts/FiberRefsPatch.d.ts.map +1 -1
  252. package/dist/dts/FiberSet.d.ts +38 -0
  253. package/dist/dts/FiberSet.d.ts.map +1 -1
  254. package/dist/dts/Function.d.ts +144 -28
  255. package/dist/dts/Function.d.ts.map +1 -1
  256. package/dist/dts/GroupBy.d.ts +38 -0
  257. package/dist/dts/GroupBy.d.ts.map +1 -1
  258. package/dist/dts/Hash.d.ts +8 -0
  259. package/dist/dts/Hash.d.ts.map +1 -1
  260. package/dist/dts/HashMap.d.ts +315 -0
  261. package/dist/dts/HashMap.d.ts.map +1 -1
  262. package/dist/dts/HashSet.d.ts +284 -0
  263. package/dist/dts/HashSet.d.ts.map +1 -1
  264. package/dist/dts/Inspectable.d.ts +15 -0
  265. package/dist/dts/Inspectable.d.ts.map +1 -1
  266. package/dist/dts/Iterable.d.ts +454 -0
  267. package/dist/dts/Iterable.d.ts.map +1 -1
  268. package/dist/dts/KeyedPool.d.ts +34 -0
  269. package/dist/dts/KeyedPool.d.ts.map +1 -1
  270. package/dist/dts/Layer.d.ts +460 -5
  271. package/dist/dts/Layer.d.ts.map +1 -1
  272. package/dist/dts/List.d.ts +430 -0
  273. package/dist/dts/List.d.ts.map +1 -1
  274. package/dist/dts/LogLevel.d.ts +46 -0
  275. package/dist/dts/LogLevel.d.ts.map +1 -1
  276. package/dist/dts/Logger.d.ts +194 -0
  277. package/dist/dts/Logger.d.ts.map +1 -1
  278. package/dist/dts/Mailbox.d.ts +16 -0
  279. package/dist/dts/Mailbox.d.ts.map +1 -1
  280. package/dist/dts/ManagedRuntime.d.ts +41 -2
  281. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  282. package/dist/dts/MergeDecision.d.ts +8 -0
  283. package/dist/dts/MergeDecision.d.ts.map +1 -1
  284. package/dist/dts/MergeState.d.ts +8 -0
  285. package/dist/dts/MergeState.d.ts.map +1 -1
  286. package/dist/dts/MergeStrategy.d.ts +12 -0
  287. package/dist/dts/MergeStrategy.d.ts.map +1 -1
  288. package/dist/dts/Metric.d.ts +410 -0
  289. package/dist/dts/Metric.d.ts.map +1 -1
  290. package/dist/dts/MetricHook.d.ts +24 -0
  291. package/dist/dts/MetricHook.d.ts.map +1 -1
  292. package/dist/dts/MetricKey.d.ts +48 -0
  293. package/dist/dts/MetricKey.d.ts.map +1 -1
  294. package/dist/dts/MetricPolling.d.ts +40 -0
  295. package/dist/dts/MetricPolling.d.ts.map +1 -1
  296. package/dist/dts/MetricState.d.ts +16 -0
  297. package/dist/dts/MetricState.d.ts.map +1 -1
  298. package/dist/dts/Micro.d.ts +1110 -0
  299. package/dist/dts/Micro.d.ts.map +1 -1
  300. package/dist/dts/MutableHashMap.d.ts +50 -0
  301. package/dist/dts/MutableHashMap.d.ts.map +1 -1
  302. package/dist/dts/MutableHashSet.d.ts +24 -0
  303. package/dist/dts/MutableHashSet.d.ts.map +1 -1
  304. package/dist/dts/MutableList.d.ts +36 -0
  305. package/dist/dts/MutableList.d.ts.map +1 -1
  306. package/dist/dts/MutableQueue.d.ts +62 -0
  307. package/dist/dts/MutableQueue.d.ts.map +1 -1
  308. package/dist/dts/MutableRef.d.ts +56 -0
  309. package/dist/dts/MutableRef.d.ts.map +1 -1
  310. package/dist/dts/Number.d.ts +474 -0
  311. package/dist/dts/Number.d.ts.map +1 -1
  312. package/dist/dts/Option.d.ts +1019 -0
  313. package/dist/dts/Option.d.ts.map +1 -1
  314. package/dist/dts/Order.d.ts +24 -0
  315. package/dist/dts/Order.d.ts.map +1 -1
  316. package/dist/dts/Ordering.d.ts +66 -0
  317. package/dist/dts/Ordering.d.ts.map +1 -1
  318. package/dist/dts/Pipeable.d.ts +21 -21
  319. package/dist/dts/Pipeable.d.ts.map +1 -1
  320. package/dist/dts/Pool.d.ts +37 -1
  321. package/dist/dts/Pool.d.ts.map +1 -1
  322. package/dist/dts/Predicate.d.ts +513 -0
  323. package/dist/dts/Predicate.d.ts.map +1 -1
  324. package/dist/dts/PubSub.d.ts +28 -0
  325. package/dist/dts/PubSub.d.ts.map +1 -1
  326. package/dist/dts/Queue.d.ts +106 -2
  327. package/dist/dts/Queue.d.ts.map +1 -1
  328. package/dist/dts/RcMap.d.ts +70 -0
  329. package/dist/dts/RcMap.d.ts.map +1 -1
  330. package/dist/dts/Readable.d.ts +16 -0
  331. package/dist/dts/Readable.d.ts.map +1 -1
  332. package/dist/dts/Record.d.ts +800 -0
  333. package/dist/dts/Record.d.ts.map +1 -1
  334. package/dist/dts/RedBlackTree.d.ts +300 -0
  335. package/dist/dts/RedBlackTree.d.ts.map +1 -1
  336. package/dist/dts/Ref.d.ts +88 -0
  337. package/dist/dts/Ref.d.ts.map +1 -1
  338. package/dist/dts/RegExp.d.ts +12 -2
  339. package/dist/dts/RegExp.d.ts.map +1 -1
  340. package/dist/dts/Request.d.ts +76 -0
  341. package/dist/dts/Request.d.ts.map +1 -1
  342. package/dist/dts/RequestResolver.d.ts +144 -0
  343. package/dist/dts/RequestResolver.d.ts.map +1 -1
  344. package/dist/dts/Resource.d.ts +21 -1
  345. package/dist/dts/Resource.d.ts.map +1 -1
  346. package/dist/dts/Runtime.d.ts +126 -0
  347. package/dist/dts/Runtime.d.ts.map +1 -1
  348. package/dist/dts/RuntimeFlags.d.ts +100 -0
  349. package/dist/dts/RuntimeFlags.d.ts.map +1 -1
  350. package/dist/dts/RuntimeFlagsPatch.d.ts +112 -0
  351. package/dist/dts/RuntimeFlagsPatch.d.ts.map +1 -1
  352. package/dist/dts/STM.d.ts +1090 -0
  353. package/dist/dts/STM.d.ts.map +1 -1
  354. package/dist/dts/Schedule.d.ts +704 -0
  355. package/dist/dts/Schedule.d.ts.map +1 -1
  356. package/dist/dts/ScheduleInterval.d.ts +68 -0
  357. package/dist/dts/ScheduleInterval.d.ts.map +1 -1
  358. package/dist/dts/ScheduleIntervals.d.ts +50 -0
  359. package/dist/dts/ScheduleIntervals.d.ts.map +1 -1
  360. package/dist/dts/Scope.d.ts +36 -0
  361. package/dist/dts/Scope.d.ts.map +1 -1
  362. package/dist/dts/ScopedRef.d.ts +43 -1
  363. package/dist/dts/ScopedRef.d.ts.map +1 -1
  364. package/dist/dts/Sink.d.ts +464 -0
  365. package/dist/dts/Sink.d.ts.map +1 -1
  366. package/dist/dts/SortedMap.d.ts +76 -0
  367. package/dist/dts/SortedMap.d.ts.map +1 -1
  368. package/dist/dts/SortedSet.d.ts +142 -0
  369. package/dist/dts/SortedSet.d.ts.map +1 -1
  370. package/dist/dts/Stream.d.ts +4998 -1
  371. package/dist/dts/Stream.d.ts.map +1 -1
  372. package/dist/dts/StreamHaltStrategy.d.ts +12 -0
  373. package/dist/dts/StreamHaltStrategy.d.ts.map +1 -1
  374. package/dist/dts/String.d.ts +200 -0
  375. package/dist/dts/String.d.ts.map +1 -1
  376. package/dist/dts/Struct.d.ts +84 -0
  377. package/dist/dts/Struct.d.ts.map +1 -1
  378. package/dist/dts/Subscribable.d.ts +16 -0
  379. package/dist/dts/Subscribable.d.ts.map +1 -1
  380. package/dist/dts/SubscriptionRef.d.ts +152 -0
  381. package/dist/dts/SubscriptionRef.d.ts.map +1 -1
  382. package/dist/dts/SynchronizedRef.d.ts +152 -0
  383. package/dist/dts/SynchronizedRef.d.ts.map +1 -1
  384. package/dist/dts/TArray.d.ts +426 -0
  385. package/dist/dts/TArray.d.ts.map +1 -1
  386. package/dist/dts/TDeferred.d.ts +24 -0
  387. package/dist/dts/TDeferred.d.ts.map +1 -1
  388. package/dist/dts/TMap.d.ts +366 -0
  389. package/dist/dts/TMap.d.ts.map +1 -1
  390. package/dist/dts/TPriorityQueue.d.ts +60 -0
  391. package/dist/dts/TPriorityQueue.d.ts.map +1 -1
  392. package/dist/dts/TPubSub.d.ts +28 -0
  393. package/dist/dts/TPubSub.d.ts.map +1 -1
  394. package/dist/dts/TQueue.d.ts +108 -0
  395. package/dist/dts/TQueue.d.ts.map +1 -1
  396. package/dist/dts/TReentrantLock.d.ts +36 -0
  397. package/dist/dts/TReentrantLock.d.ts.map +1 -1
  398. package/dist/dts/TRef.d.ts +88 -0
  399. package/dist/dts/TRef.d.ts.map +1 -1
  400. package/dist/dts/TSemaphore.d.ts +40 -0
  401. package/dist/dts/TSemaphore.d.ts.map +1 -1
  402. package/dist/dts/TSet.d.ts +254 -0
  403. package/dist/dts/TSet.d.ts.map +1 -1
  404. package/dist/dts/Take.d.ts +56 -0
  405. package/dist/dts/Take.d.ts.map +1 -1
  406. package/dist/dts/TestAnnotationMap.d.ts.map +1 -1
  407. package/dist/dts/TestClock.d.ts.map +1 -1
  408. package/dist/dts/TestServices.d.ts.map +1 -1
  409. package/dist/dts/Trie.d.ts +906 -0
  410. package/dist/dts/Trie.d.ts.map +1 -1
  411. package/dist/dts/Tuple.d.ts +203 -0
  412. package/dist/dts/Tuple.d.ts.map +1 -1
  413. package/dist/dts/Types.d.ts +39 -0
  414. package/dist/dts/Types.d.ts.map +1 -1
  415. package/dist/dts/Unify.d.ts +26 -13
  416. package/dist/dts/Unify.d.ts.map +1 -1
  417. package/dist/dts/UpstreamPullRequest.d.ts +12 -0
  418. package/dist/dts/UpstreamPullRequest.d.ts.map +1 -1
  419. package/dist/dts/UpstreamPullStrategy.d.ts +12 -0
  420. package/dist/dts/UpstreamPullStrategy.d.ts.map +1 -1
  421. package/dist/dts/Utils.d.ts.map +1 -1
  422. package/dist/dts/internal/core.d.ts.map +1 -1
  423. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  424. package/dist/dts/internal/layer.d.ts.map +1 -1
  425. package/dist/dts/internal/managedRuntime/circular.d.ts +2 -0
  426. package/dist/dts/internal/managedRuntime/circular.d.ts.map +1 -0
  427. package/dist/dts/internal/stream.d.ts.map +1 -1
  428. package/dist/esm/Array.js +21 -0
  429. package/dist/esm/Array.js.map +1 -1
  430. package/dist/esm/BigDecimal.js +6 -3
  431. package/dist/esm/BigDecimal.js.map +1 -1
  432. package/dist/esm/BigInt.js.map +1 -1
  433. package/dist/esm/Boolean.js.map +1 -1
  434. package/dist/esm/Cause.js.map +1 -1
  435. package/dist/esm/Channel.js.map +1 -1
  436. package/dist/esm/ChildExecutorDecision.js.map +1 -1
  437. package/dist/esm/Chunk.js +4 -1
  438. package/dist/esm/Chunk.js.map +1 -1
  439. package/dist/esm/Config.js.map +1 -1
  440. package/dist/esm/ConfigError.js.map +1 -1
  441. package/dist/esm/ConfigProvider.js.map +1 -1
  442. package/dist/esm/ConfigProviderPathPatch.js.map +1 -1
  443. package/dist/esm/Console.js.map +1 -1
  444. package/dist/esm/Context.js.map +1 -1
  445. package/dist/esm/Cron.js +4 -1
  446. package/dist/esm/Cron.js.map +1 -1
  447. package/dist/esm/Data.js.map +1 -1
  448. package/dist/esm/DateTime.js +6 -0
  449. package/dist/esm/DateTime.js.map +1 -1
  450. package/dist/esm/Deferred.js.map +1 -1
  451. package/dist/esm/Differ.js.map +1 -1
  452. package/dist/esm/Duration.js +4 -1
  453. package/dist/esm/Duration.js.map +1 -1
  454. package/dist/esm/Effect.js +116 -30
  455. package/dist/esm/Effect.js.map +1 -1
  456. package/dist/esm/Either.js.map +1 -1
  457. package/dist/esm/Equivalence.js.map +1 -1
  458. package/dist/esm/ExecutionStrategy.js.map +1 -1
  459. package/dist/esm/Exit.js.map +1 -1
  460. package/dist/esm/Fiber.js.map +1 -1
  461. package/dist/esm/FiberHandle.js +3 -0
  462. package/dist/esm/FiberHandle.js.map +1 -1
  463. package/dist/esm/FiberId.js.map +1 -1
  464. package/dist/esm/FiberMap.js +3 -0
  465. package/dist/esm/FiberMap.js.map +1 -1
  466. package/dist/esm/FiberRef.js.map +1 -1
  467. package/dist/esm/FiberRefs.js.map +1 -1
  468. package/dist/esm/FiberRefsPatch.js.map +1 -1
  469. package/dist/esm/FiberSet.js +3 -0
  470. package/dist/esm/FiberSet.js.map +1 -1
  471. package/dist/esm/Function.js.map +1 -1
  472. package/dist/esm/GroupBy.js.map +1 -1
  473. package/dist/esm/Hash.js.map +1 -1
  474. package/dist/esm/HashMap.js.map +1 -1
  475. package/dist/esm/HashSet.js.map +1 -1
  476. package/dist/esm/Inspectable.js +14 -0
  477. package/dist/esm/Inspectable.js.map +1 -1
  478. package/dist/esm/Iterable.js.map +1 -1
  479. package/dist/esm/KeyedPool.js.map +1 -1
  480. package/dist/esm/Layer.js.map +1 -1
  481. package/dist/esm/List.js +7 -1
  482. package/dist/esm/List.js.map +1 -1
  483. package/dist/esm/LogLevel.js.map +1 -1
  484. package/dist/esm/Logger.js.map +1 -1
  485. package/dist/esm/Mailbox.js.map +1 -1
  486. package/dist/esm/ManagedRuntime.js +15 -0
  487. package/dist/esm/ManagedRuntime.js.map +1 -1
  488. package/dist/esm/MergeDecision.js.map +1 -1
  489. package/dist/esm/MergeState.js.map +1 -1
  490. package/dist/esm/MergeStrategy.js.map +1 -1
  491. package/dist/esm/Metric.js.map +1 -1
  492. package/dist/esm/MetricHook.js.map +1 -1
  493. package/dist/esm/MetricKey.js.map +1 -1
  494. package/dist/esm/MetricPolling.js.map +1 -1
  495. package/dist/esm/MetricState.js.map +1 -1
  496. package/dist/esm/Micro.js +7 -1
  497. package/dist/esm/Micro.js.map +1 -1
  498. package/dist/esm/MutableHashMap.js +4 -1
  499. package/dist/esm/MutableHashMap.js.map +1 -1
  500. package/dist/esm/MutableHashSet.js +4 -1
  501. package/dist/esm/MutableHashSet.js.map +1 -1
  502. package/dist/esm/MutableList.js +4 -1
  503. package/dist/esm/MutableList.js.map +1 -1
  504. package/dist/esm/MutableQueue.js +4 -1
  505. package/dist/esm/MutableQueue.js.map +1 -1
  506. package/dist/esm/MutableRef.js +4 -1
  507. package/dist/esm/MutableRef.js.map +1 -1
  508. package/dist/esm/Number.js.map +1 -1
  509. package/dist/esm/Option.js.map +1 -1
  510. package/dist/esm/Order.js.map +1 -1
  511. package/dist/esm/Ordering.js.map +1 -1
  512. package/dist/esm/Pipeable.js.map +1 -1
  513. package/dist/esm/Pool.js.map +1 -1
  514. package/dist/esm/Predicate.js +15 -0
  515. package/dist/esm/Predicate.js.map +1 -1
  516. package/dist/esm/PubSub.js.map +1 -1
  517. package/dist/esm/Queue.js.map +1 -1
  518. package/dist/esm/RcMap.js.map +1 -1
  519. package/dist/esm/Readable.js.map +1 -1
  520. package/dist/esm/Record.js.map +1 -1
  521. package/dist/esm/RedBlackTree.js.map +1 -1
  522. package/dist/esm/Ref.js.map +1 -1
  523. package/dist/esm/RegExp.js +16 -0
  524. package/dist/esm/RegExp.js.map +1 -1
  525. package/dist/esm/Request.js.map +1 -1
  526. package/dist/esm/RequestResolver.js.map +1 -1
  527. package/dist/esm/Resource.js.map +1 -1
  528. package/dist/esm/Runtime.js.map +1 -1
  529. package/dist/esm/RuntimeFlags.js.map +1 -1
  530. package/dist/esm/RuntimeFlagsPatch.js.map +1 -1
  531. package/dist/esm/STM.js.map +1 -1
  532. package/dist/esm/Schedule.js.map +1 -1
  533. package/dist/esm/ScheduleInterval.js.map +1 -1
  534. package/dist/esm/ScheduleIntervals.js.map +1 -1
  535. package/dist/esm/Scheduler.js.map +1 -1
  536. package/dist/esm/Scope.js.map +1 -1
  537. package/dist/esm/ScopedRef.js.map +1 -1
  538. package/dist/esm/Sink.js.map +1 -1
  539. package/dist/esm/SortedMap.js +4 -1
  540. package/dist/esm/SortedMap.js.map +1 -1
  541. package/dist/esm/SortedSet.js +4 -1
  542. package/dist/esm/SortedSet.js.map +1 -1
  543. package/dist/esm/Stream.js +14 -0
  544. package/dist/esm/Stream.js.map +1 -1
  545. package/dist/esm/StreamHaltStrategy.js.map +1 -1
  546. package/dist/esm/String.js.map +1 -1
  547. package/dist/esm/Struct.js.map +1 -1
  548. package/dist/esm/Subscribable.js.map +1 -1
  549. package/dist/esm/SubscriptionRef.js.map +1 -1
  550. package/dist/esm/SynchronizedRef.js.map +1 -1
  551. package/dist/esm/TArray.js.map +1 -1
  552. package/dist/esm/TDeferred.js.map +1 -1
  553. package/dist/esm/TMap.js.map +1 -1
  554. package/dist/esm/TPriorityQueue.js.map +1 -1
  555. package/dist/esm/TPubSub.js.map +1 -1
  556. package/dist/esm/TQueue.js.map +1 -1
  557. package/dist/esm/TReentrantLock.js.map +1 -1
  558. package/dist/esm/TRef.js.map +1 -1
  559. package/dist/esm/TSemaphore.js.map +1 -1
  560. package/dist/esm/TSet.js.map +1 -1
  561. package/dist/esm/Take.js.map +1 -1
  562. package/dist/esm/TestAnnotationMap.js.map +1 -1
  563. package/dist/esm/TestClock.js.map +1 -1
  564. package/dist/esm/TestServices.js.map +1 -1
  565. package/dist/esm/Trie.js.map +1 -1
  566. package/dist/esm/Tuple.js +19 -0
  567. package/dist/esm/Tuple.js.map +1 -1
  568. package/dist/esm/Unify.js.map +1 -1
  569. package/dist/esm/UpstreamPullRequest.js.map +1 -1
  570. package/dist/esm/UpstreamPullStrategy.js.map +1 -1
  571. package/dist/esm/Utils.js +1 -14
  572. package/dist/esm/Utils.js.map +1 -1
  573. package/dist/esm/internal/cause.js +4 -1
  574. package/dist/esm/internal/cause.js.map +1 -1
  575. package/dist/esm/internal/context.js +7 -2
  576. package/dist/esm/internal/context.js.map +1 -1
  577. package/dist/esm/internal/core-effect.js.map +1 -1
  578. package/dist/esm/internal/core.js +14 -2
  579. package/dist/esm/internal/core.js.map +1 -1
  580. package/dist/esm/internal/effect/circular.js +5 -1
  581. package/dist/esm/internal/effect/circular.js.map +1 -1
  582. package/dist/esm/internal/fiberId.js +10 -1
  583. package/dist/esm/internal/fiberId.js.map +1 -1
  584. package/dist/esm/internal/hashMap.js +4 -1
  585. package/dist/esm/internal/hashMap.js.map +1 -1
  586. package/dist/esm/internal/hashSet.js +4 -1
  587. package/dist/esm/internal/hashSet.js.map +1 -1
  588. package/dist/esm/internal/layer.js +32 -18
  589. package/dist/esm/internal/layer.js.map +1 -1
  590. package/dist/esm/internal/mailbox.js +3 -0
  591. package/dist/esm/internal/mailbox.js.map +1 -1
  592. package/dist/esm/internal/managedRuntime/circular.js +4 -0
  593. package/dist/esm/internal/managedRuntime/circular.js.map +1 -0
  594. package/dist/esm/internal/managedRuntime.js +21 -8
  595. package/dist/esm/internal/managedRuntime.js.map +1 -1
  596. package/dist/esm/internal/option.js +4 -1
  597. package/dist/esm/internal/option.js.map +1 -1
  598. package/dist/esm/internal/pool.js +6 -1
  599. package/dist/esm/internal/pool.js.map +1 -1
  600. package/dist/esm/internal/redBlackTree.js +4 -1
  601. package/dist/esm/internal/redBlackTree.js.map +1 -1
  602. package/dist/esm/internal/resource.js +15 -5
  603. package/dist/esm/internal/resource.js.map +1 -1
  604. package/dist/esm/internal/runtime.js +4 -1
  605. package/dist/esm/internal/runtime.js.map +1 -1
  606. package/dist/esm/internal/scopedRef.js +11 -8
  607. package/dist/esm/internal/scopedRef.js.map +1 -1
  608. package/dist/esm/internal/stm/core.js +1 -2
  609. package/dist/esm/internal/stm/core.js.map +1 -1
  610. package/dist/esm/internal/stream.js +9 -0
  611. package/dist/esm/internal/stream.js.map +1 -1
  612. package/dist/esm/internal/trie.js +4 -1
  613. package/dist/esm/internal/trie.js.map +1 -1
  614. package/dist/esm/internal/version.js +1 -1
  615. package/package.json +1 -1
  616. package/src/Array.ts +2791 -40
  617. package/src/BigDecimal.ts +589 -19
  618. package/src/BigInt.ts +516 -16
  619. package/src/Boolean.ts +241 -8
  620. package/src/Cause.ts +177 -1
  621. package/src/Channel.ts +766 -49
  622. package/src/ChildExecutorDecision.ts +12 -0
  623. package/src/Chunk.ts +822 -5
  624. package/src/Config.ts +187 -8
  625. package/src/ConfigError.ts +16 -0
  626. package/src/ConfigProvider.ts +89 -1
  627. package/src/ConfigProviderPathPatch.ts +32 -0
  628. package/src/Console.ts +37 -8
  629. package/src/Context.ts +234 -3
  630. package/src/Cron.ts +16 -1
  631. package/src/Data.ts +165 -0
  632. package/src/DateTime.ts +1012 -50
  633. package/src/Deferred.ts +171 -1
  634. package/src/Differ.ts +89 -27
  635. package/src/Duration.ts +160 -17
  636. package/src/Effect.ts +4717 -164
  637. package/src/Either.ts +650 -34
  638. package/src/Equivalence.ts +24 -0
  639. package/src/ExecutionStrategy.ts +29 -10
  640. package/src/Exit.ts +252 -0
  641. package/src/Fiber.ts +182 -0
  642. package/src/FiberHandle.ts +45 -0
  643. package/src/FiberId.ts +24 -0
  644. package/src/FiberMap.ts +147 -21
  645. package/src/FiberRef.ts +80 -0
  646. package/src/FiberRefs.ts +84 -0
  647. package/src/FiberRefsPatch.ts +35 -1
  648. package/src/FiberSet.ts +41 -0
  649. package/src/Function.ts +416 -31
  650. package/src/GroupBy.ts +38 -0
  651. package/src/Hash.ts +8 -0
  652. package/src/HashMap.ts +316 -0
  653. package/src/HashSet.ts +284 -0
  654. package/src/Inspectable.ts +22 -0
  655. package/src/Iterable.ts +456 -6
  656. package/src/KeyedPool.ts +34 -0
  657. package/src/Layer.ts +475 -38
  658. package/src/List.ts +483 -4
  659. package/src/LogLevel.ts +46 -0
  660. package/src/Logger.ts +195 -4
  661. package/src/Mailbox.ts +16 -0
  662. package/src/ManagedRuntime.ts +46 -2
  663. package/src/MergeDecision.ts +8 -0
  664. package/src/MergeState.ts +8 -0
  665. package/src/MergeStrategy.ts +25 -8
  666. package/src/Metric.ts +426 -15
  667. package/src/MetricHook.ts +24 -0
  668. package/src/MetricKey.ts +62 -8
  669. package/src/MetricPolling.ts +42 -6
  670. package/src/MetricState.ts +16 -0
  671. package/src/Micro.ts +1223 -61
  672. package/src/MutableHashMap.ts +109 -2
  673. package/src/MutableHashSet.ts +28 -1
  674. package/src/MutableList.ts +40 -1
  675. package/src/MutableQueue.ts +66 -1
  676. package/src/MutableRef.ts +60 -1
  677. package/src/Number.ts +500 -16
  678. package/src/Option.ts +1042 -16
  679. package/src/Order.ts +24 -0
  680. package/src/Ordering.ts +66 -0
  681. package/src/Pipeable.ts +224 -21
  682. package/src/Pool.ts +42 -1
  683. package/src/Predicate.ts +514 -0
  684. package/src/PubSub.ts +28 -0
  685. package/src/Queue.ts +106 -2
  686. package/src/RcMap.ts +70 -0
  687. package/src/Readable.ts +18 -7
  688. package/src/Record.ts +814 -40
  689. package/src/RedBlackTree.ts +305 -1
  690. package/src/Ref.ts +88 -0
  691. package/src/RegExp.ts +17 -0
  692. package/src/Request.ts +76 -0
  693. package/src/RequestResolver.ts +145 -4
  694. package/src/Resource.ts +22 -1
  695. package/src/Runtime.ts +134 -2
  696. package/src/RuntimeFlags.ts +100 -0
  697. package/src/RuntimeFlagsPatch.ts +112 -0
  698. package/src/STM.ts +1107 -11
  699. package/src/Schedule.ts +704 -0
  700. package/src/ScheduleInterval.ts +68 -0
  701. package/src/ScheduleIntervals.ts +50 -0
  702. package/src/Scheduler.ts +2 -0
  703. package/src/Scope.ts +36 -0
  704. package/src/ScopedRef.ts +44 -1
  705. package/src/Sink.ts +464 -0
  706. package/src/SortedMap.ts +80 -1
  707. package/src/SortedSet.ts +147 -4
  708. package/src/Stream.ts +5041 -54
  709. package/src/StreamHaltStrategy.ts +29 -12
  710. package/src/String.ts +200 -0
  711. package/src/Struct.ts +86 -7
  712. package/src/Subscribable.ts +16 -0
  713. package/src/SubscriptionRef.ts +159 -11
  714. package/src/SynchronizedRef.ts +169 -8
  715. package/src/TArray.ts +431 -1
  716. package/src/TDeferred.ts +24 -0
  717. package/src/TMap.ts +381 -12
  718. package/src/TPriorityQueue.ts +60 -0
  719. package/src/TPubSub.ts +28 -0
  720. package/src/TQueue.ts +108 -0
  721. package/src/TReentrantLock.ts +36 -0
  722. package/src/TRef.ts +88 -0
  723. package/src/TSemaphore.ts +40 -0
  724. package/src/TSet.ts +280 -12
  725. package/src/Take.ts +56 -0
  726. package/src/TestAnnotationMap.ts +45 -1
  727. package/src/TestClock.ts +6 -0
  728. package/src/TestServices.ts +66 -0
  729. package/src/Trie.ts +906 -0
  730. package/src/Tuple.ts +223 -8
  731. package/src/Types.ts +41 -0
  732. package/src/Unify.ts +28 -17
  733. package/src/UpstreamPullRequest.ts +12 -0
  734. package/src/UpstreamPullStrategy.ts +12 -0
  735. package/src/Utils.ts +1 -15
  736. package/src/internal/cause.ts +4 -1
  737. package/src/internal/context.ts +7 -2
  738. package/src/internal/core-effect.ts +7 -7
  739. package/src/internal/core.ts +14 -2
  740. package/src/internal/effect/circular.ts +8 -2
  741. package/src/internal/fiberId.ts +10 -1
  742. package/src/internal/hashMap.ts +4 -1
  743. package/src/internal/hashSet.ts +4 -1
  744. package/src/internal/layer.ts +105 -38
  745. package/src/internal/mailbox.ts +3 -0
  746. package/src/internal/managedRuntime/circular.ts +6 -0
  747. package/src/internal/managedRuntime.ts +36 -22
  748. package/src/internal/option.ts +4 -1
  749. package/src/internal/pool.ts +7 -1
  750. package/src/internal/redBlackTree.ts +4 -1
  751. package/src/internal/resource.ts +16 -5
  752. package/src/internal/runtime.ts +4 -1
  753. package/src/internal/scopedRef.ts +12 -8
  754. package/src/internal/stm/core.ts +2 -3
  755. package/src/internal/stream.ts +27 -0
  756. package/src/internal/trie.ts +4 -1
  757. package/src/internal/version.ts +1 -1
@@ -4,7 +4,7 @@ import { dual, pipe } from "../Function.js"
4
4
  import { globalValue } from "../GlobalValue.js"
5
5
  import * as Hash from "../Hash.js"
6
6
  import * as HashSet from "../HashSet.js"
7
- import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
7
+ import { DenoInspectSymbol, format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
8
8
  import * as MutableRef from "../MutableRef.js"
9
9
  import * as Option from "../Option.js"
10
10
  import { hasProperty } from "../Predicate.js"
@@ -58,6 +58,9 @@ class None implements FiberId.None {
58
58
  _tag: this._tag
59
59
  }
60
60
  }
61
+ [DenoInspectSymbol]() {
62
+ return this.toJSON()
63
+ }
61
64
  [NodeInspectSymbol]() {
62
65
  return this.toJSON()
63
66
  }
@@ -91,6 +94,9 @@ class Runtime implements FiberId.Runtime {
91
94
  startTimeMillis: this.startTimeMillis
92
95
  }
93
96
  }
97
+ [DenoInspectSymbol]() {
98
+ return this.toJSON()
99
+ }
94
100
  [NodeInspectSymbol]() {
95
101
  return this.toJSON()
96
102
  }
@@ -131,6 +137,9 @@ class Composite implements FiberId.Composite {
131
137
  right: toJSON(this.right)
132
138
  }
133
139
  }
140
+ [DenoInspectSymbol]() {
141
+ return this.toJSON()
142
+ }
134
143
  [NodeInspectSymbol]() {
135
144
  return this.toJSON()
136
145
  }
@@ -3,7 +3,7 @@ import * as Dual from "../Function.js"
3
3
  import { identity, pipe } from "../Function.js"
4
4
  import * as Hash from "../Hash.js"
5
5
  import type * as HM from "../HashMap.js"
6
- import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
6
+ import { DenoInspectSymbol, format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
7
7
  import * as Option from "../Option.js"
8
8
  import { pipeArguments } from "../Pipeable.js"
9
9
  import { hasProperty } from "../Predicate.js"
@@ -85,6 +85,9 @@ const HashMapProto: HM.HashMap<unknown, unknown> = {
85
85
  values: Array.from(this).map(toJSON)
86
86
  }
87
87
  },
88
+ [DenoInspectSymbol]() {
89
+ return this.toJSON()
90
+ },
88
91
  [NodeInspectSymbol]() {
89
92
  return this.toJSON()
90
93
  },
@@ -3,7 +3,7 @@ import { dual } from "../Function.js"
3
3
  import * as Hash from "../Hash.js"
4
4
  import type { HashMap } from "../HashMap.js"
5
5
  import type * as HS from "../HashSet.js"
6
- import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
6
+ import { DenoInspectSymbol, format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
7
7
  import { pipeArguments } from "../Pipeable.js"
8
8
  import type { Predicate, Refinement } from "../Predicate.js"
9
9
  import { hasProperty } from "../Predicate.js"
@@ -49,6 +49,9 @@ const HashSetProto: Omit<HashSetImpl<unknown>, "_keyMap"> = {
49
49
  values: Array.from(this).map(toJSON)
50
50
  }
51
51
  },
52
+ [DenoInspectSymbol]() {
53
+ return this.toJSON()
54
+ },
52
55
  [NodeInspectSymbol]() {
53
56
  return this.toJSON()
54
57
  },
@@ -10,6 +10,7 @@ import type { LazyArg } from "../Function.js"
10
10
  import { dual, pipe } from "../Function.js"
11
11
  import * as HashMap from "../HashMap.js"
12
12
  import type * as Layer from "../Layer.js"
13
+ import type * as ManagedRuntime from "../ManagedRuntime.js"
13
14
  import { pipeArguments } from "../Pipeable.js"
14
15
  import { hasProperty } from "../Predicate.js"
15
16
  import type * as Runtime from "../Runtime.js"
@@ -23,6 +24,7 @@ import * as effect from "./core-effect.js"
23
24
  import * as core from "./core.js"
24
25
  import * as circular from "./effect/circular.js"
25
26
  import * as fiberRuntime from "./fiberRuntime.js"
27
+ import * as circularManagedRuntime from "./managedRuntime/circular.js"
26
28
  import * as EffectOpCodes from "./opCodes/effect.js"
27
29
  import * as OpCodes from "./opCodes/layer.js"
28
30
  import * as ref from "./ref.js"
@@ -49,7 +51,7 @@ const layerVariance = {
49
51
  }
50
52
 
51
53
  /** @internal */
52
- const proto = {
54
+ export const proto = {
53
55
  [LayerTypeId]: layerVariance,
54
56
  pipe() {
55
57
  return pipeArguments(this, arguments)
@@ -79,7 +81,7 @@ export type Primitive =
79
81
 
80
82
  /** @internal */
81
83
  export type Op<Tag extends string, Body = {}> = Layer.Layer<unknown, unknown, unknown> & Body & {
82
- readonly _tag: Tag
84
+ readonly _op_layer: Tag
83
85
  }
84
86
 
85
87
  /** @internal */
@@ -165,7 +167,7 @@ export const isLayer = (u: unknown): u is Layer.Layer<unknown, unknown, unknown>
165
167
 
166
168
  /** @internal */
167
169
  export const isFresh = <RIn, E, ROut>(self: Layer.Layer<ROut, E, RIn>): boolean => {
168
- return (self as Primitive)._tag === OpCodes.OP_FRESH
170
+ return (self as Primitive)._op_layer === OpCodes.OP_FRESH
169
171
  }
170
172
 
171
173
  // -----------------------------------------------------------------------------
@@ -356,7 +358,7 @@ const makeBuilder = <RIn, E, ROut>(
356
358
  inMemoMap = false
357
359
  ): Effect.Effect<(memoMap: Layer.MemoMap) => Effect.Effect<Context.Context<ROut>, E, RIn>> => {
358
360
  const op = self as Primitive
359
- switch (op._tag) {
361
+ switch (op._op_layer) {
360
362
  case "Locally": {
361
363
  return core.sync(() => (memoMap: Layer.MemoMap) => op.f(memoMap.getOrElseMemoize(op.self, scope)))
362
364
  }
@@ -487,7 +489,7 @@ export const extendScope = <RIn, E, ROut>(
487
489
  self: Layer.Layer<ROut, E, RIn>
488
490
  ): Layer.Layer<ROut, E, RIn | Scope.Scope> => {
489
491
  const extendScope = Object.create(proto)
490
- extendScope._tag = OpCodes.OP_EXTEND_SCOPE
492
+ extendScope._op_layer = OpCodes.OP_EXTEND_SCOPE
491
493
  extendScope.layer = self
492
494
  return extendScope
493
495
  }
@@ -533,7 +535,7 @@ export const flatten = dual<
533
535
  /** @internal */
534
536
  export const fresh = <A, E, R>(self: Layer.Layer<A, E, R>): Layer.Layer<A, E, R> => {
535
537
  const fresh = Object.create(proto)
536
- fresh._tag = OpCodes.OP_FRESH
538
+ fresh._op_layer = OpCodes.OP_FRESH
537
539
  fresh.layer = self
538
540
  return fresh
539
541
  }
@@ -565,7 +567,7 @@ export function fromEffectContext<A, E, R>(
565
567
  effect: Effect.Effect<Context.Context<A>, E, R>
566
568
  ): Layer.Layer<A, E, R> {
567
569
  const fromEffect = Object.create(proto)
568
- fromEffect._tag = OpCodes.OP_FROM_EFFECT
570
+ fromEffect._op_layer = OpCodes.OP_FROM_EFFECT
569
571
  fromEffect.effect = effect
570
572
  return fromEffect
571
573
  }
@@ -587,7 +589,7 @@ export const locallyEffect = dual<
587
589
  ) => Layer.Layer<ROut2, E2, RIn2>
588
590
  >(2, (self, f) => {
589
591
  const locally = Object.create(proto)
590
- locally._tag = "Locally"
592
+ locally._op_layer = "Locally"
591
593
  locally.self = self
592
594
  locally.f = f
593
595
  return locally
@@ -658,7 +660,7 @@ export const matchCause = dual<
658
660
  ) => Layer.Layer<A2 & A3, E2 | E3, R | R2 | R3>
659
661
  >(2, (self, { onFailure, onSuccess }) => {
660
662
  const fold = Object.create(proto)
661
- fold._tag = OpCodes.OP_FOLD
663
+ fold._op_layer = OpCodes.OP_FOLD
662
664
  fold.layer = self
663
665
  fold.failureK = onFailure
664
666
  fold.successK = onSuccess
@@ -866,7 +868,7 @@ export const scopedContext = <A, E, R>(
866
868
  effect: Effect.Effect<Context.Context<A>, E, R>
867
869
  ): Layer.Layer<A, E, Exclude<R, Scope.Scope>> => {
868
870
  const scoped = Object.create(proto)
869
- scoped._tag = OpCodes.OP_SCOPED
871
+ scoped._op_layer = OpCodes.OP_SCOPED
870
872
  scoped.effect = effect
871
873
  return scoped
872
874
  }
@@ -920,7 +922,7 @@ export const suspend = <RIn, E, ROut>(
920
922
  evaluate: LazyArg<Layer.Layer<ROut, E, RIn>>
921
923
  ): Layer.Layer<ROut, E, RIn> => {
922
924
  const suspend = Object.create(proto)
923
- suspend._tag = OpCodes.OP_SUSPEND
925
+ suspend._op_layer = OpCodes.OP_SUSPEND
924
926
  suspend.evaluate = evaluate
925
927
  return suspend
926
928
  }
@@ -1024,29 +1026,52 @@ export const toRuntimeWithMemoMap = dual<
1024
1026
 
1025
1027
  /** @internal */
1026
1028
  export const provide = dual<
1027
- <RIn, E, ROut>(
1028
- self: Layer.Layer<ROut, E, RIn>
1029
- ) => <RIn2, E2, ROut2>(
1030
- that: Layer.Layer<ROut2, E2, RIn2>
1031
- ) => Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>,
1032
- <RIn2, E2, ROut2, RIn, E, ROut>(
1033
- that: Layer.Layer<ROut2, E2, RIn2>,
1034
- self: Layer.Layer<ROut, E, RIn>
1035
- ) => Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
1036
- >(2, <RIn2, E2, ROut2, RIn, E, ROut>(
1037
- that: Layer.Layer<ROut2, E2, RIn2>,
1038
- self: Layer.Layer<ROut, E, RIn>
1029
+ {
1030
+ <RIn, E, ROut>(
1031
+ that: Layer.Layer<ROut, E, RIn>
1032
+ ): <RIn2, E2, ROut2>(
1033
+ self: Layer.Layer<ROut2, E2, RIn2>
1034
+ ) => Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
1035
+ <const Layers extends [Layer.Layer.Any, ...Array<Layer.Layer.Any>]>(
1036
+ that: Layers
1037
+ ): <A, E, R>(
1038
+ self: Layer.Layer<A, E, R>
1039
+ ) => Layer.Layer<
1040
+ A,
1041
+ E | { [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number],
1042
+ | { [k in keyof Layers]: Layer.Layer.Context<Layers[k]> }[number]
1043
+ | Exclude<R, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number]>
1044
+ >
1045
+ },
1046
+ {
1047
+ <RIn2, E2, ROut2, RIn, E, ROut>(
1048
+ self: Layer.Layer<ROut2, E2, RIn2>,
1049
+ that: Layer.Layer<ROut, E, RIn>
1050
+ ): Layer.Layer<ROut2, E | E2, RIn | Exclude<RIn2, ROut>>
1051
+ <A, E, R, const Layers extends [Layer.Layer.Any, ...Array<Layer.Layer.Any>]>(
1052
+ self: Layer.Layer<A, E, R>,
1053
+ that: Layers
1054
+ ): Layer.Layer<
1055
+ A,
1056
+ E | { [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number],
1057
+ | { [k in keyof Layers]: Layer.Layer.Context<Layers[k]> }[number]
1058
+ | Exclude<R, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number]>
1059
+ >
1060
+ }
1061
+ >(2, (
1062
+ self: Layer.Layer.Any,
1063
+ that: Layer.Layer.Any | ReadonlyArray<Layer.Layer.Any>
1039
1064
  ) =>
1040
1065
  suspend(() => {
1041
1066
  const provideTo = Object.create(proto)
1042
- provideTo._tag = OpCodes.OP_PROVIDE
1067
+ provideTo._op_layer = OpCodes.OP_PROVIDE
1043
1068
  provideTo.first = Object.create(proto, {
1044
- _tag: { value: OpCodes.OP_PROVIDE_MERGE, enumerable: true },
1045
- first: { value: context<Exclude<RIn2, ROut>>(), enumerable: true },
1046
- second: { value: self },
1047
- zipK: { value: (a: Context.Context<ROut>, b: Context.Context<ROut2>) => pipe(a, Context.merge(b)) }
1069
+ _op_layer: { value: OpCodes.OP_PROVIDE_MERGE, enumerable: true },
1070
+ first: { value: context(), enumerable: true },
1071
+ second: { value: Array.isArray(that) ? mergeAll(...that as any) : that },
1072
+ zipK: { value: (a: Context.Context<any>, b: Context.Context<any>) => pipe(a, Context.merge(b)) }
1048
1073
  })
1049
- provideTo.second = that
1074
+ provideTo.second = self
1050
1075
  return provideTo
1051
1076
  }))
1052
1077
 
@@ -1063,7 +1088,7 @@ export const provideMerge = dual<
1063
1088
  ) => Layer.Layer<ROut | ROut2, E2 | E, RIn | Exclude<RIn2, ROut>>
1064
1089
  >(2, <RIn2, E2, ROut2, RIn, E, ROut>(that: Layer.Layer<ROut2, E2, RIn2>, self: Layer.Layer<ROut, E, RIn>) => {
1065
1090
  const zipWith = Object.create(proto)
1066
- zipWith._tag = OpCodes.OP_PROVIDE_MERGE
1091
+ zipWith._op_layer = OpCodes.OP_PROVIDE_MERGE
1067
1092
  zipWith.first = self
1068
1093
  zipWith.second = provide(that, self)
1069
1094
  zipWith.zipK = (a: Context.Context<ROut>, b: Context.Context<ROut2>): Context.Context<ROut | ROut2> => {
@@ -1086,7 +1111,7 @@ export const zipWith = dual<
1086
1111
  >(3, (self, that, f) =>
1087
1112
  suspend(() => {
1088
1113
  const zipWith = Object.create(proto)
1089
- zipWith._tag = OpCodes.OP_ZIP_WITH
1114
+ zipWith._op_layer = OpCodes.OP_ZIP_WITH
1090
1115
  zipWith.first = self
1091
1116
  zipWith.second = that
1092
1117
  zipWith.zipK = f
@@ -1291,6 +1316,16 @@ const provideSomeRuntime = dual<
1291
1316
  /** @internal */
1292
1317
  export const effect_provide = dual<
1293
1318
  {
1319
+ <const Layers extends [Layer.Layer.Any, ...Array<Layer.Layer.Any>]>(
1320
+ layers: Layers
1321
+ ): <A, E, R>(
1322
+ self: Effect.Effect<A, E, R>
1323
+ ) => Effect.Effect<
1324
+ A,
1325
+ E | { [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number],
1326
+ | { [k in keyof Layers]: Layer.Layer.Context<Layers[k]> }[number]
1327
+ | Exclude<R, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number]>
1328
+ >
1294
1329
  <ROut, E2, RIn>(
1295
1330
  layer: Layer.Layer<ROut, E2, RIn>
1296
1331
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, RIn | Exclude<R, ROut>>
@@ -1300,8 +1335,20 @@ export const effect_provide = dual<
1300
1335
  <R2>(
1301
1336
  runtime: Runtime.Runtime<R2>
1302
1337
  ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, R2>>
1338
+ <E2, R2>(
1339
+ managedRuntime: ManagedRuntime.ManagedRuntime<R2, E2>
1340
+ ): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E | E2, Exclude<R, R2>>
1303
1341
  },
1304
1342
  {
1343
+ <A, E, R, const Layers extends [Layer.Layer.Any, ...Array<Layer.Layer.Any>]>(
1344
+ self: Effect.Effect<A, E, R>,
1345
+ layers: Layers
1346
+ ): Effect.Effect<
1347
+ A,
1348
+ E | { [k in keyof Layers]: Layer.Layer.Error<Layers[k]> }[number],
1349
+ | { [k in keyof Layers]: Layer.Layer.Context<Layers[k]> }[number]
1350
+ | Exclude<R, { [k in keyof Layers]: Layer.Layer.Success<Layers[k]> }[number]>
1351
+ >
1305
1352
  <A, E, R, ROut, E2, RIn>(
1306
1353
  self: Effect.Effect<A, E, R>,
1307
1354
  layer: Layer.Layer<ROut, E2, RIn>
@@ -1314,16 +1361,36 @@ export const effect_provide = dual<
1314
1361
  self: Effect.Effect<A, E, R>,
1315
1362
  runtime: Runtime.Runtime<R2>
1316
1363
  ): Effect.Effect<A, E, Exclude<R, R2>>
1364
+ <A, E, E2, R, R2>(
1365
+ self: Effect.Effect<A, E, R>,
1366
+ managedRuntime: ManagedRuntime.ManagedRuntime<R2, E2>
1367
+ ): Effect.Effect<A, E | E2, Exclude<R, R2>>
1317
1368
  }
1318
1369
  >(
1319
1370
  2,
1320
1371
  <A, E, R, ROut>(
1321
1372
  self: Effect.Effect<A, E, R>,
1322
- source: Layer.Layer<ROut, any, any> | Context.Context<ROut> | Runtime.Runtime<ROut>
1323
- ): Effect.Effect<any, any, Exclude<R, ROut>> =>
1324
- isLayer(source)
1325
- ? provideSomeLayer(self, source as Layer.Layer<ROut, any, any>)
1326
- : Context.isContext(source)
1327
- ? core.provideSomeContext(self, source)
1328
- : provideSomeRuntime(self, source as Runtime.Runtime<ROut>)
1373
+ source:
1374
+ | Layer.Layer<ROut, any, any>
1375
+ | Context.Context<ROut>
1376
+ | Runtime.Runtime<ROut>
1377
+ | ManagedRuntime.ManagedRuntime<ROut, any>
1378
+ | Array<Layer.Layer.Any>
1379
+ ): Effect.Effect<any, any, Exclude<R, ROut>> => {
1380
+ if (Array.isArray(source)) {
1381
+ // @ts-expect-error
1382
+ return provideSomeLayer(self, mergeAll(...source))
1383
+ } else if (isLayer(source)) {
1384
+ return provideSomeLayer(self, source as Layer.Layer<ROut, any, any>)
1385
+ } else if (Context.isContext(source)) {
1386
+ return core.provideSomeContext(self, source)
1387
+ } else if (circularManagedRuntime.TypeId in source) {
1388
+ return core.flatMap(
1389
+ (source as ManagedRuntime.ManagedRuntime<ROut, any>).runtimeEffect,
1390
+ (rt) => provideSomeRuntime(self, rt)
1391
+ )
1392
+ } else {
1393
+ return provideSomeRuntime(self, source as Runtime.Runtime<ROut>)
1394
+ }
1395
+ }
1329
1396
  )
@@ -287,6 +287,9 @@ class MailboxImpl<A, E> extends Effectable.Class<readonly [messages: Chunk.Chunk
287
287
  toString(): string {
288
288
  return Inspectable.format(this)
289
289
  }
290
+ [Inspectable.DenoInspectSymbol]() {
291
+ return Inspectable.format(this)
292
+ }
290
293
  [Inspectable.NodeInspectSymbol]() {
291
294
  return Inspectable.format(this)
292
295
  }
@@ -0,0 +1,6 @@
1
+ import type * as M from "../../ManagedRuntime.js"
2
+
3
+ // circular with Layer
4
+
5
+ /** @internal */
6
+ export const TypeId: M.TypeId = Symbol.for("effect/ManagedRuntime") as M.TypeId
@@ -1,22 +1,28 @@
1
1
  import type * as Effect from "../Effect.js"
2
+ import * as Effectable from "../Effectable.js"
2
3
  import type { Exit } from "../Exit.js"
3
4
  import type * as Fiber from "../Fiber.js"
4
5
  import type * as Layer from "../Layer.js"
5
- import type { ManagedRuntime } from "../ManagedRuntime.js"
6
+ import type * as M from "../ManagedRuntime.js"
6
7
  import { pipeArguments } from "../Pipeable.js"
8
+ import { hasProperty } from "../Predicate.js"
7
9
  import type * as Runtime from "../Runtime.js"
8
10
  import * as Scope from "../Scope.js"
9
11
  import * as effect from "./core-effect.js"
10
12
  import * as core from "./core.js"
11
13
  import * as fiberRuntime from "./fiberRuntime.js"
12
14
  import * as internalLayer from "./layer.js"
15
+ import * as circular from "./managedRuntime/circular.js"
13
16
  import * as internalRuntime from "./runtime.js"
14
17
 
15
- interface ManagedRuntimeImpl<R, E> extends ManagedRuntime<R, E> {
18
+ interface ManagedRuntimeImpl<R, E> extends M.ManagedRuntime<R, E> {
16
19
  readonly scope: Scope.CloseableScope
17
20
  cachedRuntime: Runtime.Runtime<R> | undefined
18
21
  }
19
22
 
23
+ /** @internal */
24
+ export const isManagedRuntime = (u: unknown): u is M.ManagedRuntime<unknown, unknown> => hasProperty(u, circular.TypeId)
25
+
20
26
  function provide<R, ER, A, E>(
21
27
  managed: ManagedRuntimeImpl<R, ER>,
22
28
  effect: Effect.Effect<A, E, R>
@@ -32,34 +38,42 @@ function provide<R, ER, A, E>(
32
38
  )
33
39
  }
34
40
 
41
+ const ManagedRuntimeProto = {
42
+ ...Effectable.CommitPrototype,
43
+ [circular.TypeId]: circular.TypeId,
44
+ pipe() {
45
+ return pipeArguments(this, arguments)
46
+ },
47
+ commit(this: ManagedRuntimeImpl<unknown, unknown>) {
48
+ return this.runtimeEffect
49
+ }
50
+ }
51
+
35
52
  /** @internal */
36
53
  export const make = <R, ER>(
37
54
  layer: Layer.Layer<R, ER, never>,
38
55
  memoMap?: Layer.MemoMap
39
- ): ManagedRuntime<R, ER> => {
56
+ ): M.ManagedRuntime<R, ER> => {
40
57
  memoMap = memoMap ?? internalLayer.unsafeMakeMemoMap()
41
58
  const scope = internalRuntime.unsafeRunSyncEffect(fiberRuntime.scopeMake())
42
- const self: ManagedRuntimeImpl<R, ER> = {
59
+ const runtimeEffect = internalRuntime.unsafeRunSyncEffect(
60
+ effect.memoize(
61
+ core.tap(
62
+ Scope.extend(
63
+ internalLayer.toRuntimeWithMemoMap(layer, memoMap),
64
+ scope
65
+ ),
66
+ (rt) => {
67
+ self.cachedRuntime = rt
68
+ }
69
+ )
70
+ )
71
+ )
72
+ const self: ManagedRuntimeImpl<R, ER> = Object.assign(Object.create(ManagedRuntimeProto), {
43
73
  memoMap,
44
74
  scope,
45
- runtimeEffect: internalRuntime
46
- .unsafeRunSyncEffect(
47
- effect.memoize(
48
- core.tap(
49
- Scope.extend(
50
- internalLayer.toRuntimeWithMemoMap(layer, memoMap),
51
- scope
52
- ),
53
- (rt) => {
54
- self.cachedRuntime = rt
55
- }
56
- )
57
- )
58
- ),
75
+ runtimeEffect,
59
76
  cachedRuntime: undefined,
60
- pipe() {
61
- return pipeArguments(this, arguments)
62
- },
63
77
  runtime() {
64
78
  return self.cachedRuntime === undefined ?
65
79
  internalRuntime.unsafeRunPromiseEffect(self.runtimeEffect) :
@@ -110,6 +124,6 @@ export const make = <R, ER>(
110
124
  internalRuntime.unsafeRunPromiseEffect(provide(self, effect), options) :
111
125
  internalRuntime.unsafeRunPromise(self.cachedRuntime)(effect, options)
112
126
  }
113
- }
127
+ })
114
128
  return self
115
129
  }
@@ -4,7 +4,7 @@
4
4
 
5
5
  import * as Equal from "../Equal.js"
6
6
  import * as Hash from "../Hash.js"
7
- import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
7
+ import { DenoInspectSymbol, format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
8
8
  import type * as Option from "../Option.js"
9
9
  import { hasProperty } from "../Predicate.js"
10
10
  import { EffectPrototype } from "./effectable.js"
@@ -16,6 +16,9 @@ const CommonProto = {
16
16
  [TypeId]: {
17
17
  _A: (_: never) => _
18
18
  },
19
+ [DenoInspectSymbol]<A>(this: Option.Option<A>) {
20
+ return this.toJSON()
21
+ },
19
22
  [NodeInspectSymbol]<A>(this: Option.Option<A>) {
20
23
  return this.toJSON()
21
24
  },
@@ -2,6 +2,7 @@ import type { Cause } from "effect/Cause"
2
2
  import * as Context from "../Context.js"
3
3
  import * as Duration from "../Duration.js"
4
4
  import type { Effect, Semaphore } from "../Effect.js"
5
+ import * as Effectable from "../Effectable.js"
5
6
  import type { Exit } from "../Exit.js"
6
7
  import { dual, identity } from "../Function.js"
7
8
  import * as Iterable from "../Iterable.js"
@@ -122,7 +123,7 @@ interface Strategy<A, E> {
122
123
  readonly reclaim: (pool: PoolImpl<A, E>) => Effect<Option.Option<PoolItem<A, E>>>
123
124
  }
124
125
 
125
- class PoolImpl<A, E> implements Pool<A, E> {
126
+ class PoolImpl<A, E> extends Effectable.Class<A, E, Scope> implements Pool<A, E> {
126
127
  readonly [PoolTypeId]: Pool.Variance<A, E>[PoolTypeId_]
127
128
 
128
129
  isShuttingDown = false
@@ -140,6 +141,7 @@ class PoolImpl<A, E> implements Pool<A, E> {
140
141
  readonly strategy: Strategy<A, E>,
141
142
  readonly targetUtilization: number
142
143
  ) {
144
+ super()
143
145
  this[PoolTypeId] = poolVariance
144
146
  this.semaphore = circular.unsafeMakeSemaphore(concurrency * maxSize)
145
147
  }
@@ -253,6 +255,10 @@ class PoolImpl<A, E> implements Pool<A, E> {
253
255
  )
254
256
  )
255
257
 
258
+ commit() {
259
+ return this.get
260
+ }
261
+
256
262
  readonly get: Effect<A, E, Scope> = core.flatMap(
257
263
  core.suspend(() => this.isShuttingDown ? core.interrupt : this.getPoolItem),
258
264
  (_) => _.exit
@@ -2,7 +2,7 @@ import * as Chunk from "../Chunk.js"
2
2
  import * as Equal from "../Equal.js"
3
3
  import { dual, pipe } from "../Function.js"
4
4
  import * as Hash from "../Hash.js"
5
- import { format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
5
+ import { DenoInspectSymbol, format, NodeInspectSymbol, toJSON } from "../Inspectable.js"
6
6
  import * as Option from "../Option.js"
7
7
  import type * as Order from "../Order.js"
8
8
  import type * as Ordering from "../Ordering.js"
@@ -71,6 +71,9 @@ const RedBlackTreeProto: RBT.RedBlackTree<unknown, unknown> = {
71
71
  values: Array.from(this).map(toJSON)
72
72
  }
73
73
  },
74
+ [DenoInspectSymbol]() {
75
+ return this.toJSON()
76
+ },
74
77
  [NodeInspectSymbol]() {
75
78
  return this.toJSON()
76
79
  },
@@ -4,6 +4,7 @@ import type * as Resource from "../Resource.js"
4
4
  import type * as Schedule from "../Schedule.js"
5
5
  import type * as Scope from "../Scope.js"
6
6
  import * as core from "./core.js"
7
+ import * as effectable from "./effectable.js"
7
8
  import * as fiberRuntime from "./fiberRuntime.js"
8
9
  import * as _schedule from "./schedule.js"
9
10
  import * as scopedRef from "./scopedRef.js"
@@ -23,6 +24,15 @@ const resourceVariance = {
23
24
  _A: (_: any) => _
24
25
  }
25
26
 
27
+ /** @internal */
28
+ const proto: ThisType<Resource.Resource<any, any>> = {
29
+ ...effectable.CommitPrototype,
30
+ commit() {
31
+ return get(this)
32
+ },
33
+ [ResourceTypeId]: resourceVariance
34
+ }
35
+
26
36
  /** @internal */
27
37
  export const auto = <A, E, R, Out, R2>(
28
38
  acquire: Effect.Effect<A, E, R>,
@@ -46,11 +56,12 @@ export const manual = <A, E, R>(
46
56
  core.flatMap(core.context<R>(), (env) =>
47
57
  pipe(
48
58
  scopedRef.fromAcquire(core.exit(acquire)),
49
- core.map((ref) => ({
50
- [ResourceTypeId]: resourceVariance,
51
- scopedRef: ref,
52
- acquire: core.provideContext(acquire, env)
53
- }))
59
+ core.map((ref) => {
60
+ const resource = Object.create(proto)
61
+ resource.scopedRef = ref
62
+ resource.acquire = core.provideContext(acquire, env)
63
+ return resource
64
+ })
54
65
  ))
55
66
 
56
67
  /** @internal */
@@ -195,6 +195,9 @@ class FiberFailureImpl extends Error implements Runtime.FiberFailure {
195
195
  toString(): string {
196
196
  return "(FiberFailure) " + (this.stack ?? this.message)
197
197
  }
198
+ [Inspectable.DenoInspectSymbol](): unknown {
199
+ return this.toString()
200
+ }
198
201
  [Inspectable.NodeInspectSymbol](): unknown {
199
202
  return this.toString()
200
203
  }
@@ -250,7 +253,7 @@ export const unsafeRunSyncExit =
250
253
  if (result) {
251
254
  return result
252
255
  }
253
- throw asyncFiberException(fiberRuntime)
256
+ return core.exitDie(core.capture(asyncFiberException(fiberRuntime), core.currentSpanFromFiber(fiberRuntime)))
254
257
  }
255
258
 
256
259
  /** @internal */
@@ -2,11 +2,11 @@ import * as Context from "../Context.js"
2
2
  import type * as Effect from "../Effect.js"
3
3
  import type { LazyArg } from "../Function.js"
4
4
  import { dual, pipe } from "../Function.js"
5
- import { pipeArguments } from "../Pipeable.js"
6
5
  import type * as Scope from "../Scope.js"
7
6
  import type * as ScopedRef from "../ScopedRef.js"
8
7
  import * as core from "./core.js"
9
8
  import * as circular from "./effect/circular.js"
9
+ import * as effectable from "./effectable.js"
10
10
  import * as fiberRuntime from "./fiberRuntime.js"
11
11
  import * as ref from "./ref.js"
12
12
  import * as synchronized from "./synchronizedRef.js"
@@ -25,6 +25,15 @@ const scopedRefVariance = {
25
25
  _A: (_: any) => _
26
26
  }
27
27
 
28
+ /** @internal */
29
+ const proto: ThisType<ScopedRef.ScopedRef<any>> = {
30
+ ...effectable.CommitPrototype,
31
+ commit() {
32
+ return get(this)
33
+ },
34
+ [ScopedRefTypeId]: scopedRefVariance
35
+ }
36
+
28
37
  /** @internal */
29
38
  const close = <A>(self: ScopedRef.ScopedRef<A>): Effect.Effect<void> =>
30
39
  core.flatMap(ref.get(self.ref), (tuple) => tuple[0].close(core.exitVoid))
@@ -41,13 +50,8 @@ export const fromAcquire = <A, E, R>(
41
50
  core.flatMap((value) =>
42
51
  circular.makeSynchronized([newScope, value] as const).pipe(
43
52
  core.flatMap((ref) => {
44
- const scopedRef: ScopedRef.ScopedRef<A> = {
45
- [ScopedRefTypeId]: scopedRefVariance,
46
- pipe() {
47
- return pipeArguments(this, arguments)
48
- },
49
- ref
50
- }
53
+ const scopedRef = Object.create(proto)
54
+ scopedRef.ref = ref
51
55
  return pipe(
52
56
  fiberRuntime.addFinalizer(() => close(scopedRef)),
53
57
  core.as(scopedRef)