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
package/src/Function.ts CHANGED
@@ -69,10 +69,92 @@ export const isFunction = (input: unknown): input is Function => typeof input ==
69
69
  * @since 2.0.0
70
70
  */
71
71
  export const dual: {
72
+ /**
73
+ * Creates a function that can be used in a data-last (aka `pipe`able) or
74
+ * data-first style.
75
+ *
76
+ * The first parameter to `dual` is either the arity of the uncurried function
77
+ * or a predicate that determines if the function is being used in a data-first
78
+ * or data-last style.
79
+ *
80
+ * Using the arity is the most common use case, but there are some cases where
81
+ * you may want to use a predicate. For example, if you have a function that
82
+ * takes an optional argument, you can use a predicate to determine if the
83
+ * function is being used in a data-first or data-last style.
84
+ *
85
+ * @param arity - Either the arity of the uncurried function or a predicate
86
+ * which determines if the function is being used in a data-first
87
+ * or data-last style.
88
+ * @param body - The definition of the uncurried function.
89
+ *
90
+ * @example
91
+ * import { dual, pipe } from "effect/Function"
92
+ *
93
+ * // Exampe using arity to determine data-first or data-last style
94
+ * const sum: {
95
+ * (that: number): (self: number) => number
96
+ * (self: number, that: number): number
97
+ * } = dual(2, (self: number, that: number): number => self + that)
98
+ *
99
+ * assert.deepStrictEqual(sum(2, 3), 5)
100
+ * assert.deepStrictEqual(pipe(2, sum(3)), 5)
101
+ *
102
+ * // Example using a predicate to determine data-first or data-last style
103
+ * const sum2: {
104
+ * (that: number): (self: number) => number
105
+ * (self: number, that: number): number
106
+ * } = dual((args) => args.length === 1, (self: number, that: number): number => self + that)
107
+ *
108
+ * assert.deepStrictEqual(sum(2, 3), 5)
109
+ * assert.deepStrictEqual(pipe(2, sum(3)), 5)
110
+ *
111
+ * @since 2.0.0
112
+ */
72
113
  <DataLast extends (...args: Array<any>) => any, DataFirst extends (...args: Array<any>) => any>(
73
114
  arity: Parameters<DataFirst>["length"],
74
115
  body: DataFirst
75
116
  ): DataLast & DataFirst
117
+ /**
118
+ * Creates a function that can be used in a data-last (aka `pipe`able) or
119
+ * data-first style.
120
+ *
121
+ * The first parameter to `dual` is either the arity of the uncurried function
122
+ * or a predicate that determines if the function is being used in a data-first
123
+ * or data-last style.
124
+ *
125
+ * Using the arity is the most common use case, but there are some cases where
126
+ * you may want to use a predicate. For example, if you have a function that
127
+ * takes an optional argument, you can use a predicate to determine if the
128
+ * function is being used in a data-first or data-last style.
129
+ *
130
+ * @param arity - Either the arity of the uncurried function or a predicate
131
+ * which determines if the function is being used in a data-first
132
+ * or data-last style.
133
+ * @param body - The definition of the uncurried function.
134
+ *
135
+ * @example
136
+ * import { dual, pipe } from "effect/Function"
137
+ *
138
+ * // Exampe using arity to determine data-first or data-last style
139
+ * const sum: {
140
+ * (that: number): (self: number) => number
141
+ * (self: number, that: number): number
142
+ * } = dual(2, (self: number, that: number): number => self + that)
143
+ *
144
+ * assert.deepStrictEqual(sum(2, 3), 5)
145
+ * assert.deepStrictEqual(pipe(2, sum(3)), 5)
146
+ *
147
+ * // Example using a predicate to determine data-first or data-last style
148
+ * const sum2: {
149
+ * (that: number): (self: number) => number
150
+ * (self: number, that: number): number
151
+ * } = dual((args) => args.length === 1, (self: number, that: number): number => self + that)
152
+ *
153
+ * assert.deepStrictEqual(sum(2, 3), 5)
154
+ * assert.deepStrictEqual(pipe(2, sum(3)), 5)
155
+ *
156
+ * @since 2.0.0
157
+ */
76
158
  <DataLast extends (...args: Array<any>) => any, DataFirst extends (...args: Array<any>) => any>(
77
159
  isDataFirst: (args: IArguments) => boolean,
78
160
  body: DataFirst
@@ -353,7 +435,41 @@ export const flip = <A extends Array<unknown>, B extends Array<unknown>, C>(
353
435
  * @since 2.0.0
354
436
  */
355
437
  export const compose: {
438
+ /**
439
+ * Composes two functions, `ab` and `bc` into a single function that takes in an argument `a` of type `A` and returns a result of type `C`.
440
+ * The result is obtained by first applying the `ab` function to `a` and then applying the `bc` function to the result of `ab`.
441
+ *
442
+ * @param ab - A function that maps from `A` to `B`.
443
+ * @param bc - A function that maps from `B` to `C`.
444
+ *
445
+ * @example
446
+ * import { compose } from "effect/Function"
447
+ *
448
+ * const increment = (n: number) => n + 1;
449
+ * const square = (n: number) => n * n;
450
+ *
451
+ * assert.strictEqual(compose(increment, square)(2), 9);
452
+ *
453
+ * @since 2.0.0
454
+ */
356
455
  <B, C>(bc: (b: B) => C): <A>(self: (a: A) => B) => (a: A) => C
456
+ /**
457
+ * Composes two functions, `ab` and `bc` into a single function that takes in an argument `a` of type `A` and returns a result of type `C`.
458
+ * The result is obtained by first applying the `ab` function to `a` and then applying the `bc` function to the result of `ab`.
459
+ *
460
+ * @param ab - A function that maps from `A` to `B`.
461
+ * @param bc - A function that maps from `B` to `C`.
462
+ *
463
+ * @example
464
+ * import { compose } from "effect/Function"
465
+ *
466
+ * const increment = (n: number) => n + 1;
467
+ * const square = (n: number) => n * n;
468
+ *
469
+ * assert.strictEqual(compose(increment, square)(2), 9);
470
+ *
471
+ * @since 2.0.0
472
+ */
357
473
  <A, B, C>(self: (a: A) => B, bc: (b: B) => C): (a: A) => C
358
474
  } = dual(2, <A, B, C>(ab: (a: A) => B, bc: (b: B) => C): (a: A) => C => (a) => bc(ab(a)))
359
475
 
@@ -420,17 +536,26 @@ export const untupled = <A extends ReadonlyArray<unknown>, B>(f: (a: A) => B): (
420
536
  * @since 2.0.0
421
537
  */
422
538
  export function pipe<A>(a: A): A
423
- export function pipe<A, B>(a: A, ab: (a: A) => B): B
424
- export function pipe<A, B, C>(a: A, ab: (a: A) => B, bc: (b: B) => C): C
425
- export function pipe<A, B, C, D>(a: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D
426
- export function pipe<A, B, C, D, E>(
539
+ export function pipe<A, B = never>(a: A, ab: (a: A) => B): B
540
+ export function pipe<A, B = never, C = never>(
541
+ a: A,
542
+ ab: (a: A) => B,
543
+ bc: (b: B) => C
544
+ ): C
545
+ export function pipe<A, B = never, C = never, D = never>(
546
+ a: A,
547
+ ab: (a: A) => B,
548
+ bc: (b: B) => C,
549
+ cd: (c: C) => D
550
+ ): D
551
+ export function pipe<A, B = never, C = never, D = never, E = never>(
427
552
  a: A,
428
553
  ab: (a: A) => B,
429
554
  bc: (b: B) => C,
430
555
  cd: (c: C) => D,
431
556
  de: (d: D) => E
432
557
  ): E
433
- export function pipe<A, B, C, D, E, F>(
558
+ export function pipe<A, B = never, C = never, D = never, E = never, F = never>(
434
559
  a: A,
435
560
  ab: (a: A) => B,
436
561
  bc: (b: B) => C,
@@ -438,7 +563,15 @@ export function pipe<A, B, C, D, E, F>(
438
563
  de: (d: D) => E,
439
564
  ef: (e: E) => F
440
565
  ): F
441
- export function pipe<A, B, C, D, E, F, G>(
566
+ export function pipe<
567
+ A,
568
+ B = never,
569
+ C = never,
570
+ D = never,
571
+ E = never,
572
+ F = never,
573
+ G = never
574
+ >(
442
575
  a: A,
443
576
  ab: (a: A) => B,
444
577
  bc: (b: B) => C,
@@ -447,7 +580,16 @@ export function pipe<A, B, C, D, E, F, G>(
447
580
  ef: (e: E) => F,
448
581
  fg: (f: F) => G
449
582
  ): G
450
- export function pipe<A, B, C, D, E, F, G, H>(
583
+ export function pipe<
584
+ A,
585
+ B = never,
586
+ C = never,
587
+ D = never,
588
+ E = never,
589
+ F = never,
590
+ G = never,
591
+ H = never
592
+ >(
451
593
  a: A,
452
594
  ab: (a: A) => B,
453
595
  bc: (b: B) => C,
@@ -457,7 +599,17 @@ export function pipe<A, B, C, D, E, F, G, H>(
457
599
  fg: (f: F) => G,
458
600
  gh: (g: G) => H
459
601
  ): H
460
- export function pipe<A, B, C, D, E, F, G, H, I>(
602
+ export function pipe<
603
+ A,
604
+ B = never,
605
+ C = never,
606
+ D = never,
607
+ E = never,
608
+ F = never,
609
+ G = never,
610
+ H = never,
611
+ I = never
612
+ >(
461
613
  a: A,
462
614
  ab: (a: A) => B,
463
615
  bc: (b: B) => C,
@@ -468,7 +620,18 @@ export function pipe<A, B, C, D, E, F, G, H, I>(
468
620
  gh: (g: G) => H,
469
621
  hi: (h: H) => I
470
622
  ): I
471
- export function pipe<A, B, C, D, E, F, G, H, I, J>(
623
+ export function pipe<
624
+ A,
625
+ B = never,
626
+ C = never,
627
+ D = never,
628
+ E = never,
629
+ F = never,
630
+ G = never,
631
+ H = never,
632
+ I = never,
633
+ J = never
634
+ >(
472
635
  a: A,
473
636
  ab: (a: A) => B,
474
637
  bc: (b: B) => C,
@@ -480,7 +643,19 @@ export function pipe<A, B, C, D, E, F, G, H, I, J>(
480
643
  hi: (h: H) => I,
481
644
  ij: (i: I) => J
482
645
  ): J
483
- export function pipe<A, B, C, D, E, F, G, H, I, J, K>(
646
+ export function pipe<
647
+ A,
648
+ B = never,
649
+ C = never,
650
+ D = never,
651
+ E = never,
652
+ F = never,
653
+ G = never,
654
+ H = never,
655
+ I = never,
656
+ J = never,
657
+ K = never
658
+ >(
484
659
  a: A,
485
660
  ab: (a: A) => B,
486
661
  bc: (b: B) => C,
@@ -493,7 +668,20 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K>(
493
668
  ij: (i: I) => J,
494
669
  jk: (j: J) => K
495
670
  ): K
496
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L>(
671
+ export function pipe<
672
+ A,
673
+ B = never,
674
+ C = never,
675
+ D = never,
676
+ E = never,
677
+ F = never,
678
+ G = never,
679
+ H = never,
680
+ I = never,
681
+ J = never,
682
+ K = never,
683
+ L = never
684
+ >(
497
685
  a: A,
498
686
  ab: (a: A) => B,
499
687
  bc: (b: B) => C,
@@ -507,7 +695,21 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L>(
507
695
  jk: (j: J) => K,
508
696
  kl: (k: K) => L
509
697
  ): L
510
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>(
698
+ export function pipe<
699
+ A,
700
+ B = never,
701
+ C = never,
702
+ D = never,
703
+ E = never,
704
+ F = never,
705
+ G = never,
706
+ H = never,
707
+ I = never,
708
+ J = never,
709
+ K = never,
710
+ L = never,
711
+ M = never
712
+ >(
511
713
  a: A,
512
714
  ab: (a: A) => B,
513
715
  bc: (b: B) => C,
@@ -522,7 +724,22 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M>(
522
724
  kl: (k: K) => L,
523
725
  lm: (l: L) => M
524
726
  ): M
525
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(
727
+ export function pipe<
728
+ A,
729
+ B = never,
730
+ C = never,
731
+ D = never,
732
+ E = never,
733
+ F = never,
734
+ G = never,
735
+ H = never,
736
+ I = never,
737
+ J = never,
738
+ K = never,
739
+ L = never,
740
+ M = never,
741
+ N = never
742
+ >(
526
743
  a: A,
527
744
  ab: (a: A) => B,
528
745
  bc: (b: B) => C,
@@ -538,7 +755,23 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N>(
538
755
  lm: (l: L) => M,
539
756
  mn: (m: M) => N
540
757
  ): N
541
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
758
+ export function pipe<
759
+ A,
760
+ B = never,
761
+ C = never,
762
+ D = never,
763
+ E = never,
764
+ F = never,
765
+ G = never,
766
+ H = never,
767
+ I = never,
768
+ J = never,
769
+ K = never,
770
+ L = never,
771
+ M = never,
772
+ N = never,
773
+ O = never
774
+ >(
542
775
  a: A,
543
776
  ab: (a: A) => B,
544
777
  bc: (b: B) => C,
@@ -555,7 +788,24 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O>(
555
788
  mn: (m: M) => N,
556
789
  no: (n: N) => O
557
790
  ): O
558
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(
791
+ export function pipe<
792
+ A,
793
+ B = never,
794
+ C = never,
795
+ D = never,
796
+ E = never,
797
+ F = never,
798
+ G = never,
799
+ H = never,
800
+ I = never,
801
+ J = never,
802
+ K = never,
803
+ L = never,
804
+ M = never,
805
+ N = never,
806
+ O = never,
807
+ P = never
808
+ >(
559
809
  a: A,
560
810
  ab: (a: A) => B,
561
811
  bc: (b: B) => C,
@@ -573,7 +823,25 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P>(
573
823
  no: (n: N) => O,
574
824
  op: (o: O) => P
575
825
  ): P
576
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(
826
+ export function pipe<
827
+ A,
828
+ B = never,
829
+ C = never,
830
+ D = never,
831
+ E = never,
832
+ F = never,
833
+ G = never,
834
+ H = never,
835
+ I = never,
836
+ J = never,
837
+ K = never,
838
+ L = never,
839
+ M = never,
840
+ N = never,
841
+ O = never,
842
+ P = never,
843
+ Q = never
844
+ >(
577
845
  a: A,
578
846
  ab: (a: A) => B,
579
847
  bc: (b: B) => C,
@@ -592,7 +860,26 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q>(
592
860
  op: (o: O) => P,
593
861
  pq: (p: P) => Q
594
862
  ): Q
595
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(
863
+ export function pipe<
864
+ A,
865
+ B = never,
866
+ C = never,
867
+ D = never,
868
+ E = never,
869
+ F = never,
870
+ G = never,
871
+ H = never,
872
+ I = never,
873
+ J = never,
874
+ K = never,
875
+ L = never,
876
+ M = never,
877
+ N = never,
878
+ O = never,
879
+ P = never,
880
+ Q = never,
881
+ R = never
882
+ >(
596
883
  a: A,
597
884
  ab: (a: A) => B,
598
885
  bc: (b: B) => C,
@@ -612,7 +899,27 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R>(
612
899
  pq: (p: P) => Q,
613
900
  qr: (q: Q) => R
614
901
  ): R
615
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(
902
+ export function pipe<
903
+ A,
904
+ B = never,
905
+ C = never,
906
+ D = never,
907
+ E = never,
908
+ F = never,
909
+ G = never,
910
+ H = never,
911
+ I = never,
912
+ J = never,
913
+ K = never,
914
+ L = never,
915
+ M = never,
916
+ N = never,
917
+ O = never,
918
+ P = never,
919
+ Q = never,
920
+ R = never,
921
+ S = never
922
+ >(
616
923
  a: A,
617
924
  ab: (a: A) => B,
618
925
  bc: (b: B) => C,
@@ -633,7 +940,28 @@ export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S>(
633
940
  qr: (q: Q) => R,
634
941
  rs: (r: R) => S
635
942
  ): S
636
- export function pipe<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T>(
943
+ export function pipe<
944
+ A,
945
+ B = never,
946
+ C = never,
947
+ D = never,
948
+ E = never,
949
+ F = never,
950
+ G = never,
951
+ H = never,
952
+ I = never,
953
+ J = never,
954
+ K = never,
955
+ L = never,
956
+ M = never,
957
+ N = never,
958
+ O = never,
959
+ P = never,
960
+ Q = never,
961
+ R = never,
962
+ S = never,
963
+ T = never
964
+ >(
637
965
  a: A,
638
966
  ab: (a: A) => B,
639
967
  bc: (b: B) => C,
@@ -712,27 +1040,54 @@ export function pipe(
712
1040
  *
713
1041
  * @since 2.0.0
714
1042
  */
715
- export function flow<A extends ReadonlyArray<unknown>, B>(ab: (...a: A) => B): (...a: A) => B
716
- export function flow<A extends ReadonlyArray<unknown>, B, C>(ab: (...a: A) => B, bc: (b: B) => C): (...a: A) => C
717
- export function flow<A extends ReadonlyArray<unknown>, B, C, D>(
1043
+ export function flow<A extends ReadonlyArray<unknown>, B = never>(
1044
+ ab: (...a: A) => B
1045
+ ): (...a: A) => B
1046
+ export function flow<A extends ReadonlyArray<unknown>, B = never, C = never>(
718
1047
  ab: (...a: A) => B,
719
- bc: (b: B) => C,
720
- cd: (c: C) => D
721
- ): (...a: A) => D
722
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E>(
1048
+ bc: (b: B) => C
1049
+ ): (...a: A) => C
1050
+ export function flow<
1051
+ A extends ReadonlyArray<unknown>,
1052
+ B = never,
1053
+ C = never,
1054
+ D = never
1055
+ >(ab: (...a: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...a: A) => D
1056
+ export function flow<
1057
+ A extends ReadonlyArray<unknown>,
1058
+ B = never,
1059
+ C = never,
1060
+ D = never,
1061
+ E = never
1062
+ >(
723
1063
  ab: (...a: A) => B,
724
1064
  bc: (b: B) => C,
725
1065
  cd: (c: C) => D,
726
1066
  de: (d: D) => E
727
1067
  ): (...a: A) => E
728
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F>(
1068
+ export function flow<
1069
+ A extends ReadonlyArray<unknown>,
1070
+ B = never,
1071
+ C = never,
1072
+ D = never,
1073
+ E = never,
1074
+ F = never
1075
+ >(
729
1076
  ab: (...a: A) => B,
730
1077
  bc: (b: B) => C,
731
1078
  cd: (c: C) => D,
732
1079
  de: (d: D) => E,
733
1080
  ef: (e: E) => F
734
1081
  ): (...a: A) => F
735
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G>(
1082
+ export function flow<
1083
+ A extends ReadonlyArray<unknown>,
1084
+ B = never,
1085
+ C = never,
1086
+ D = never,
1087
+ E = never,
1088
+ F = never,
1089
+ G = never
1090
+ >(
736
1091
  ab: (...a: A) => B,
737
1092
  bc: (b: B) => C,
738
1093
  cd: (c: C) => D,
@@ -740,7 +1095,16 @@ export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G>(
740
1095
  ef: (e: E) => F,
741
1096
  fg: (f: F) => G
742
1097
  ): (...a: A) => G
743
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H>(
1098
+ export function flow<
1099
+ A extends ReadonlyArray<unknown>,
1100
+ B = never,
1101
+ C = never,
1102
+ D = never,
1103
+ E = never,
1104
+ F = never,
1105
+ G = never,
1106
+ H = never
1107
+ >(
744
1108
  ab: (...a: A) => B,
745
1109
  bc: (b: B) => C,
746
1110
  cd: (c: C) => D,
@@ -749,7 +1113,17 @@ export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H>(
749
1113
  fg: (f: F) => G,
750
1114
  gh: (g: G) => H
751
1115
  ): (...a: A) => H
752
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I>(
1116
+ export function flow<
1117
+ A extends ReadonlyArray<unknown>,
1118
+ B = never,
1119
+ C = never,
1120
+ D = never,
1121
+ E = never,
1122
+ F = never,
1123
+ G = never,
1124
+ H = never,
1125
+ I = never
1126
+ >(
753
1127
  ab: (...a: A) => B,
754
1128
  bc: (b: B) => C,
755
1129
  cd: (c: C) => D,
@@ -759,7 +1133,18 @@ export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I>(
759
1133
  gh: (g: G) => H,
760
1134
  hi: (h: H) => I
761
1135
  ): (...a: A) => I
762
- export function flow<A extends ReadonlyArray<unknown>, B, C, D, E, F, G, H, I, J>(
1136
+ export function flow<
1137
+ A extends ReadonlyArray<unknown>,
1138
+ B = never,
1139
+ C = never,
1140
+ D = never,
1141
+ E = never,
1142
+ F = never,
1143
+ G = never,
1144
+ H = never,
1145
+ I = never,
1146
+ J = never
1147
+ >(
763
1148
  ab: (...a: A) => B,
764
1149
  bc: (b: B) => C,
765
1150
  cd: (c: C) => D,
package/src/GroupBy.ts CHANGED
@@ -59,10 +59,24 @@ export declare namespace GroupBy {
59
59
  * @category destructors
60
60
  */
61
61
  export const evaluate: {
62
+ /**
63
+ * Run the function across all groups, collecting the results in an
64
+ * arbitrary order.
65
+ *
66
+ * @since 2.0.0
67
+ * @category destructors
68
+ */
62
69
  <K, V, E, A, E2, R2>(
63
70
  f: (key: K, stream: Stream.Stream<V, E, never>) => Stream.Stream<A, E2, R2>,
64
71
  options?: { readonly bufferSize?: number | undefined } | undefined
65
72
  ): <R>(self: GroupBy<K, V, E, R>) => Stream.Stream<A, E | E2, R2 | R>
73
+ /**
74
+ * Run the function across all groups, collecting the results in an
75
+ * arbitrary order.
76
+ *
77
+ * @since 2.0.0
78
+ * @category destructors
79
+ */
66
80
  <K, V, E, R, A, E2, R2>(
67
81
  self: GroupBy<K, V, E, R>,
68
82
  f: (key: K, stream: Stream.Stream<V, E, never>) => Stream.Stream<A, E2, R2>,
@@ -77,7 +91,19 @@ export const evaluate: {
77
91
  * @category utils
78
92
  */
79
93
  export const filter: {
94
+ /**
95
+ * Filter the groups to be processed.
96
+ *
97
+ * @since 2.0.0
98
+ * @category utils
99
+ */
80
100
  <K>(predicate: Predicate<NoInfer<K>>): <V, E, R>(self: GroupBy<K, V, E, R>) => GroupBy<K, V, E, R>
101
+ /**
102
+ * Filter the groups to be processed.
103
+ *
104
+ * @since 2.0.0
105
+ * @category utils
106
+ */
81
107
  <K, V, E, R>(self: GroupBy<K, V, E, R>, predicate: Predicate<K>): GroupBy<K, V, E, R>
82
108
  } = internal.filter
83
109
 
@@ -88,7 +114,19 @@ export const filter: {
88
114
  * @category utils
89
115
  */
90
116
  export const first: {
117
+ /**
118
+ * Only consider the first `n` groups found in the `Stream`.
119
+ *
120
+ * @since 2.0.0
121
+ * @category utils
122
+ */
91
123
  (n: number): <K, V, E, R>(self: GroupBy<K, V, E, R>) => GroupBy<K, V, E, R>
124
+ /**
125
+ * Only consider the first `n` groups found in the `Stream`.
126
+ *
127
+ * @since 2.0.0
128
+ * @category utils
129
+ */
92
130
  <K, V, E, R>(self: GroupBy<K, V, E, R>, n: number): GroupBy<K, V, E, R>
93
131
  } = internal.first
94
132
 
package/src/Hash.ts CHANGED
@@ -162,7 +162,15 @@ export const array = <A>(arr: ReadonlyArray<A>) => {
162
162
  * @category hashing
163
163
  */
164
164
  export const cached: {
165
+ /**
166
+ * @since 2.0.0
167
+ * @category hashing
168
+ */
165
169
  (self: object): (hash: number) => number
170
+ /**
171
+ * @since 2.0.0
172
+ * @category hashing
173
+ */
166
174
  (self: object, hash: number): number
167
175
  } = function() {
168
176
  if (arguments.length === 1) {