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/Predicate.ts CHANGED
@@ -88,7 +88,45 @@ export declare namespace Refinement {
88
88
  * @since 2.0.0
89
89
  */
90
90
  export const mapInput: {
91
+ /**
92
+ * Given a `Predicate<A>` returns a `Predicate<B>`
93
+ *
94
+ * @param self - the `Predicate<A>` to be transformed to `Predicate<B>`.
95
+ * @param f - a function to transform `B` to `A`.
96
+ *
97
+ * @example
98
+ * import { Predicate, Number } from "effect"
99
+ *
100
+ * const minLength3 = Predicate.mapInput(Number.greaterThan(2), (s: string) => s.length)
101
+ *
102
+ * assert.deepStrictEqual(minLength3("a"), false)
103
+ * assert.deepStrictEqual(minLength3("aa"), false)
104
+ * assert.deepStrictEqual(minLength3("aaa"), true)
105
+ * assert.deepStrictEqual(minLength3("aaaa"), true)
106
+ *
107
+ * @category combinators
108
+ * @since 2.0.0
109
+ */
91
110
  <B, A>(f: (b: B) => A): (self: Predicate<A>) => Predicate<B>
111
+ /**
112
+ * Given a `Predicate<A>` returns a `Predicate<B>`
113
+ *
114
+ * @param self - the `Predicate<A>` to be transformed to `Predicate<B>`.
115
+ * @param f - a function to transform `B` to `A`.
116
+ *
117
+ * @example
118
+ * import { Predicate, Number } from "effect"
119
+ *
120
+ * const minLength3 = Predicate.mapInput(Number.greaterThan(2), (s: string) => s.length)
121
+ *
122
+ * assert.deepStrictEqual(minLength3("a"), false)
123
+ * assert.deepStrictEqual(minLength3("aa"), false)
124
+ * assert.deepStrictEqual(minLength3("aaa"), true)
125
+ * assert.deepStrictEqual(minLength3("aaaa"), true)
126
+ *
127
+ * @category combinators
128
+ * @since 2.0.0
129
+ */
92
130
  <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B>
93
131
  } = dual(2, <A, B>(self: Predicate<A>, f: (b: B) => A): Predicate<B> => (b) => self(f(b)))
94
132
 
@@ -117,7 +155,55 @@ export const mapInput: {
117
155
  * @since 3.3.0
118
156
  */
119
157
  export const isTupleOf: {
158
+ /**
159
+ * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
160
+ *
161
+ * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
162
+ *
163
+ * @param self - The `Array` to check.
164
+ * @param n - The exact number of elements that the `Array` should have to be considered a `TupleOf`.
165
+ *
166
+ * @example
167
+ * import { isTupleOf } from "effect/Predicate"
168
+ *
169
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
170
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
171
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
172
+ *
173
+ * const arr: number[] = [1, 2, 3];
174
+ * if (isTupleOf(arr, 3)) {
175
+ * console.log(arr);
176
+ * // ^? [number, number, number]
177
+ * }
178
+ *
179
+ * @category guards
180
+ * @since 3.3.0
181
+ */
120
182
  <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOf<N, T>
183
+ /**
184
+ * Determine if an `Array` is a tuple with exactly `N` elements, narrowing down the type to `TupleOf`.
185
+ *
186
+ * An `Array` is considered to be a `TupleOf` if its length is exactly `N`.
187
+ *
188
+ * @param self - The `Array` to check.
189
+ * @param n - The exact number of elements that the `Array` should have to be considered a `TupleOf`.
190
+ *
191
+ * @example
192
+ * import { isTupleOf } from "effect/Predicate"
193
+ *
194
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 3), true);
195
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 2), false);
196
+ * assert.deepStrictEqual(isTupleOf([1, 2, 3], 4), false);
197
+ *
198
+ * const arr: number[] = [1, 2, 3];
199
+ * if (isTupleOf(arr, 3)) {
200
+ * console.log(arr);
201
+ * // ^? [number, number, number]
202
+ * }
203
+ *
204
+ * @category guards
205
+ * @since 3.3.0
206
+ */
121
207
  <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T>
122
208
  } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOf<N, T> => self.length === n)
123
209
 
@@ -146,7 +232,55 @@ export const isTupleOf: {
146
232
  * @since 3.3.0
147
233
  */
148
234
  export const isTupleOfAtLeast: {
235
+ /**
236
+ * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
237
+ *
238
+ * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
239
+ *
240
+ * @param self - The `Array` to check.
241
+ * @param n - The minimum number of elements that the `Array` should have to be considered a `TupleOfAtLeast`.
242
+ *
243
+ * @example
244
+ * import { isTupleOfAtLeast } from "effect/Predicate"
245
+ *
246
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
247
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
248
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
249
+ *
250
+ * const arr: number[] = [1, 2, 3, 4];
251
+ * if (isTupleOfAtLeast(arr, 3)) {
252
+ * console.log(arr);
253
+ * // ^? [number, number, number, ...number[]]
254
+ * }
255
+ *
256
+ * @category guards
257
+ * @since 3.3.0
258
+ */
149
259
  <N extends number>(n: N): <T>(self: ReadonlyArray<T>) => self is TupleOfAtLeast<N, T>
260
+ /**
261
+ * Determine if an `Array` is a tuple with at least `N` elements, narrowing down the type to `TupleOfAtLeast`.
262
+ *
263
+ * An `Array` is considered to be a `TupleOfAtLeast` if its length is at least `N`.
264
+ *
265
+ * @param self - The `Array` to check.
266
+ * @param n - The minimum number of elements that the `Array` should have to be considered a `TupleOfAtLeast`.
267
+ *
268
+ * @example
269
+ * import { isTupleOfAtLeast } from "effect/Predicate"
270
+ *
271
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 3), true);
272
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 2), true);
273
+ * assert.deepStrictEqual(isTupleOfAtLeast([1, 2, 3], 4), false);
274
+ *
275
+ * const arr: number[] = [1, 2, 3, 4];
276
+ * if (isTupleOfAtLeast(arr, 3)) {
277
+ * console.log(arr);
278
+ * // ^? [number, number, number, ...number[]]
279
+ * }
280
+ *
281
+ * @category guards
282
+ * @since 3.3.0
283
+ */
150
284
  <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T>
151
285
  } = dual(2, <T, N extends number>(self: ReadonlyArray<T>, n: N): self is TupleOfAtLeast<N, T> => self.length >= n)
152
286
 
@@ -446,7 +580,25 @@ export const isObject = (input: unknown): input is object => isRecordOrArray(inp
446
580
  * @since 2.0.0
447
581
  */
448
582
  export const hasProperty: {
583
+ /**
584
+ * Checks whether a value is an `object` containing a specified property key.
585
+ *
586
+ * @param property - The field to check within the object.
587
+ * @param self - The value to examine.
588
+ *
589
+ * @category guards
590
+ * @since 2.0.0
591
+ */
449
592
  <P extends PropertyKey>(property: P): (self: unknown) => self is { [K in P]: unknown }
593
+ /**
594
+ * Checks whether a value is an `object` containing a specified property key.
595
+ *
596
+ * @param property - The field to check within the object.
597
+ * @param self - The value to examine.
598
+ *
599
+ * @category guards
600
+ * @since 2.0.0
601
+ */
450
602
  <P extends PropertyKey>(self: unknown, property: P): self is { [K in P]: unknown }
451
603
  } = dual(
452
604
  2,
@@ -474,7 +626,45 @@ export const hasProperty: {
474
626
  * @since 2.0.0
475
627
  */
476
628
  export const isTagged: {
629
+ /**
630
+ * Tests if a value is an `object` with a property `_tag` that matches the given tag.
631
+ *
632
+ * @param input - The value to test.
633
+ * @param tag - The tag to test for.
634
+ *
635
+ * @example
636
+ * import { isTagged } from "effect/Predicate"
637
+ *
638
+ * assert.deepStrictEqual(isTagged(1, "a"), false)
639
+ * assert.deepStrictEqual(isTagged(null, "a"), false)
640
+ * assert.deepStrictEqual(isTagged({}, "a"), false)
641
+ * assert.deepStrictEqual(isTagged({ a: "a" }, "a"), false)
642
+ * assert.deepStrictEqual(isTagged({ _tag: "a" }, "a"), true)
643
+ * assert.deepStrictEqual(isTagged("a")({ _tag: "a" }), true)
644
+ *
645
+ * @category guards
646
+ * @since 2.0.0
647
+ */
477
648
  <K extends string>(tag: K): (self: unknown) => self is { _tag: K }
649
+ /**
650
+ * Tests if a value is an `object` with a property `_tag` that matches the given tag.
651
+ *
652
+ * @param input - The value to test.
653
+ * @param tag - The tag to test for.
654
+ *
655
+ * @example
656
+ * import { isTagged } from "effect/Predicate"
657
+ *
658
+ * assert.deepStrictEqual(isTagged(1, "a"), false)
659
+ * assert.deepStrictEqual(isTagged(null, "a"), false)
660
+ * assert.deepStrictEqual(isTagged({}, "a"), false)
661
+ * assert.deepStrictEqual(isTagged({ a: "a" }, "a"), false)
662
+ * assert.deepStrictEqual(isTagged({ _tag: "a" }, "a"), true)
663
+ * assert.deepStrictEqual(isTagged("a")({ _tag: "a" }), true)
664
+ *
665
+ * @category guards
666
+ * @since 2.0.0
667
+ */
478
668
  <K extends string>(self: unknown, tag: K): self is { _tag: K }
479
669
  } = dual(
480
670
  2,
@@ -665,13 +855,41 @@ export const isPromiseLike = (
665
855
  input: unknown
666
856
  ): input is PromiseLike<unknown> => hasProperty(input, "then") && isFunction(input.then)
667
857
 
858
+ /**
859
+ * Tests if a value is a `RegExp`.
860
+ *
861
+ * @param input - The value to test.
862
+ *
863
+ * @example
864
+ * import { Predicate } from "effect"
865
+ *
866
+ * assert.deepStrictEqual(Predicate.isRegExp(/a/), true)
867
+ * assert.deepStrictEqual(Predicate.isRegExp("a"), false)
868
+ *
869
+ * @category guards
870
+ * @since 3.9.0
871
+ */
872
+ export const isRegExp = (input: unknown): input is RegExp => input instanceof RegExp
873
+
668
874
  /**
669
875
  * @since 2.0.0
670
876
  */
671
877
  export const compose: {
878
+ /**
879
+ * @since 2.0.0
880
+ */
672
881
  <A, B extends A, C extends B>(bc: Refinement<B, C>): (ab: Refinement<A, B>) => Refinement<A, C>
882
+ /**
883
+ * @since 2.0.0
884
+ */
673
885
  <A, B extends A>(bc: Predicate<NoInfer<B>>): (ab: Refinement<A, B>) => Refinement<A, B>
886
+ /**
887
+ * @since 2.0.0
888
+ */
674
889
  <A, B extends A, C extends B>(ab: Refinement<A, B>, bc: Refinement<B, C>): Refinement<A, C>
890
+ /**
891
+ * @since 2.0.0
892
+ */
675
893
  <A, B extends A>(ab: Refinement<A, B>, bc: Predicate<NoInfer<B>>): Refinement<A, B>
676
894
  } = dual(
677
895
  2,
@@ -733,6 +951,17 @@ export const productMany = <A>(
733
951
  * @since 2.0.0
734
952
  */
735
953
  export const tuple: {
954
+ /**
955
+ * Similar to `Promise.all` but operates on `Predicate`s.
956
+ *
957
+ * ```
958
+ * [Refinement<A, B>, Refinement<C, D>, ...] -> Refinement<[A, C, ...], [B, D, ...]>
959
+ * [Predicate<A>, Predicate<B>, ...] -> Predicate<[A, B, ...]>
960
+ * [Refinement<A, B>, Predicate<C>, ...] -> Refinement<[A, C, ...], [B, C, ...]>
961
+ * ```
962
+ *
963
+ * @since 2.0.0
964
+ */
736
965
  <T extends ReadonlyArray<Predicate.Any>>(
737
966
  ...elements: T
738
967
  ): [Extract<T[number], Refinement.Any>] extends [never] ? Predicate<{ readonly [I in keyof T]: Predicate.In<T[I]> }>
@@ -752,6 +981,15 @@ export const tuple: {
752
981
  * @since 2.0.0
753
982
  */
754
983
  export const struct: {
984
+ /**
985
+ * ```
986
+ * { ab: Refinement<A, B>; cd: Refinement<C, D>, ... } -> Refinement<{ ab: A; cd: C; ... }, { ab: B; cd: D; ... }>
987
+ * { a: Predicate<A, B>; b: Predicate<B>, ... } -> Predicate<{ a: A; b: B; ... }>
988
+ * { ab: Refinement<A, B>; c: Predicate<C>, ... } -> Refinement<{ ab: A; c: C; ... }, { ab: B; c: С; ... }>
989
+ * ```
990
+ *
991
+ * @since 2.0.0
992
+ */
755
993
  <R extends Record<string, Predicate.Any>>(
756
994
  fields: R
757
995
  ): [Extract<R[keyof R], Refinement.Any>] extends [never] ?
@@ -810,9 +1048,81 @@ export const not = <A>(self: Predicate<A>): Predicate<A> => (a) => !self(a)
810
1048
  * @since 2.0.0
811
1049
  */
812
1050
  export const or: {
1051
+ /**
1052
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1053
+ *
1054
+ * @param self - A predicate.
1055
+ * @param that - A predicate.
1056
+ *
1057
+ * @example
1058
+ * import { Predicate, Number } from "effect"
1059
+ *
1060
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1061
+ *
1062
+ * assert.deepStrictEqual(nonZero(-1), true)
1063
+ * assert.deepStrictEqual(nonZero(0), false)
1064
+ * assert.deepStrictEqual(nonZero(1), true)
1065
+ *
1066
+ * @category combinators
1067
+ * @since 2.0.0
1068
+ */
813
1069
  <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B | C>
1070
+ /**
1071
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1072
+ *
1073
+ * @param self - A predicate.
1074
+ * @param that - A predicate.
1075
+ *
1076
+ * @example
1077
+ * import { Predicate, Number } from "effect"
1078
+ *
1079
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1080
+ *
1081
+ * assert.deepStrictEqual(nonZero(-1), true)
1082
+ * assert.deepStrictEqual(nonZero(0), false)
1083
+ * assert.deepStrictEqual(nonZero(1), true)
1084
+ *
1085
+ * @category combinators
1086
+ * @since 2.0.0
1087
+ */
814
1088
  <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B | C>
1089
+ /**
1090
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1091
+ *
1092
+ * @param self - A predicate.
1093
+ * @param that - A predicate.
1094
+ *
1095
+ * @example
1096
+ * import { Predicate, Number } from "effect"
1097
+ *
1098
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1099
+ *
1100
+ * assert.deepStrictEqual(nonZero(-1), true)
1101
+ * assert.deepStrictEqual(nonZero(0), false)
1102
+ * assert.deepStrictEqual(nonZero(1), true)
1103
+ *
1104
+ * @category combinators
1105
+ * @since 2.0.0
1106
+ */
815
1107
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1108
+ /**
1109
+ * Combines two predicates into a new predicate that returns `true` if at least one of the predicates returns `true`.
1110
+ *
1111
+ * @param self - A predicate.
1112
+ * @param that - A predicate.
1113
+ *
1114
+ * @example
1115
+ * import { Predicate, Number } from "effect"
1116
+ *
1117
+ * const nonZero = Predicate.or(Number.lessThan(0), Number.greaterThan(0))
1118
+ *
1119
+ * assert.deepStrictEqual(nonZero(-1), true)
1120
+ * assert.deepStrictEqual(nonZero(0), false)
1121
+ * assert.deepStrictEqual(nonZero(1), true)
1122
+ *
1123
+ * @category combinators
1124
+ * @since 2.0.0
1125
+ */
816
1126
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
817
1127
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) || that(a))
818
1128
 
@@ -838,9 +1148,93 @@ export const or: {
838
1148
  * @since 2.0.0
839
1149
  */
840
1150
  export const and: {
1151
+ /**
1152
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1153
+ *
1154
+ * @param self - A predicate.
1155
+ * @param that - A predicate.
1156
+ *
1157
+ * @example
1158
+ * import { Predicate } from "effect"
1159
+ *
1160
+ * const minLength = (n: number) => (s: string) => s.length >= n
1161
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1162
+ *
1163
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1164
+ *
1165
+ * assert.deepStrictEqual(length(2)("aa"), true)
1166
+ * assert.deepStrictEqual(length(2)("a"), false)
1167
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1168
+ *
1169
+ * @category combinators
1170
+ * @since 2.0.0
1171
+ */
841
1172
  <A, C extends A>(that: Refinement<A, C>): <B extends A>(self: Refinement<A, B>) => Refinement<A, B & C>
1173
+ /**
1174
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1175
+ *
1176
+ * @param self - A predicate.
1177
+ * @param that - A predicate.
1178
+ *
1179
+ * @example
1180
+ * import { Predicate } from "effect"
1181
+ *
1182
+ * const minLength = (n: number) => (s: string) => s.length >= n
1183
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1184
+ *
1185
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1186
+ *
1187
+ * assert.deepStrictEqual(length(2)("aa"), true)
1188
+ * assert.deepStrictEqual(length(2)("a"), false)
1189
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1190
+ *
1191
+ * @category combinators
1192
+ * @since 2.0.0
1193
+ */
842
1194
  <A, B extends A, C extends A>(self: Refinement<A, B>, that: Refinement<A, C>): Refinement<A, B & C>
1195
+ /**
1196
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1197
+ *
1198
+ * @param self - A predicate.
1199
+ * @param that - A predicate.
1200
+ *
1201
+ * @example
1202
+ * import { Predicate } from "effect"
1203
+ *
1204
+ * const minLength = (n: number) => (s: string) => s.length >= n
1205
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1206
+ *
1207
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1208
+ *
1209
+ * assert.deepStrictEqual(length(2)("aa"), true)
1210
+ * assert.deepStrictEqual(length(2)("a"), false)
1211
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1212
+ *
1213
+ * @category combinators
1214
+ * @since 2.0.0
1215
+ */
843
1216
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1217
+ /**
1218
+ * Combines two predicates into a new predicate that returns `true` if both of the predicates returns `true`.
1219
+ *
1220
+ * @param self - A predicate.
1221
+ * @param that - A predicate.
1222
+ *
1223
+ * @example
1224
+ * import { Predicate } from "effect"
1225
+ *
1226
+ * const minLength = (n: number) => (s: string) => s.length >= n
1227
+ * const maxLength = (n: number) => (s: string) => s.length <= n
1228
+ *
1229
+ * const length = (n: number) => Predicate.and(minLength(n), maxLength(n))
1230
+ *
1231
+ * assert.deepStrictEqual(length(2)("aa"), true)
1232
+ * assert.deepStrictEqual(length(2)("a"), false)
1233
+ * assert.deepStrictEqual(length(2)("aaa"), false)
1234
+ *
1235
+ * @category combinators
1236
+ * @since 2.0.0
1237
+ */
844
1238
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
845
1239
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) && that(a))
846
1240
 
@@ -849,7 +1243,15 @@ export const and: {
849
1243
  * @since 2.0.0
850
1244
  */
851
1245
  export const xor: {
1246
+ /**
1247
+ * @category combinators
1248
+ * @since 2.0.0
1249
+ */
852
1250
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1251
+ /**
1252
+ * @category combinators
1253
+ * @since 2.0.0
1254
+ */
853
1255
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
854
1256
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) !== that(a))
855
1257
 
@@ -858,7 +1260,15 @@ export const xor: {
858
1260
  * @since 2.0.0
859
1261
  */
860
1262
  export const eqv: {
1263
+ /**
1264
+ * @category combinators
1265
+ * @since 2.0.0
1266
+ */
861
1267
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1268
+ /**
1269
+ * @category combinators
1270
+ * @since 2.0.0
1271
+ */
862
1272
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
863
1273
  } = dual(2, <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A> => (a) => self(a) === that(a))
864
1274
 
@@ -907,7 +1317,95 @@ export const eqv: {
907
1317
  * @since 2.0.0
908
1318
  */
909
1319
  export const implies: {
1320
+ /**
1321
+ * Represents the logical implication combinator for predicates. In formal
1322
+ * logic, the implication operator `->` denotes that if the first proposition
1323
+ * (antecedent) is true, then the second proposition (consequent) must also be
1324
+ * true. In simpler terms, `p implies q` can be interpreted as "if p then q". If
1325
+ * the first predicate holds, then the second predicate must hold
1326
+ * for the given context.
1327
+ *
1328
+ * In practical terms within TypeScript, `p implies q` is equivalent to `!p || (p && q)`.
1329
+ *
1330
+ * Note that if the antecedent is `false`, the result is `true` by default
1331
+ * because the outcome of the consequent cannot be determined.
1332
+ *
1333
+ * This function is useful in situations where you need to enforce rules or
1334
+ * constraints that are contingent on certain conditions.
1335
+ * It proves especially helpful in defining property tests.
1336
+ *
1337
+ * The example below illustrates the transitive property of order using the
1338
+ * `implies` function. In simple terms, if `a <= b` and `b <= c`, then `a <= c`
1339
+ * must be true.
1340
+ *
1341
+ * @example
1342
+ * import { Predicate } from "effect"
1343
+ *
1344
+ * type Triple = {
1345
+ * readonly a: number
1346
+ * readonly b: number
1347
+ * readonly c: number
1348
+ * }
1349
+ *
1350
+ * const transitivity = Predicate.implies(
1351
+ * // antecedent
1352
+ * (input: Triple) => input.a <= input.b && input.b <= input.c,
1353
+ * // consequent
1354
+ * (input: Triple) => input.a <= input.c
1355
+ * )
1356
+ *
1357
+ * assert.equal(transitivity({ a: 1, b: 2, c: 3 }), true)
1358
+ * // antecedent is `false`, so the result is `true`
1359
+ * assert.equal(transitivity({ a: 1, b: 0, c: 0 }), true)
1360
+ *
1361
+ * @category combinators
1362
+ * @since 2.0.0
1363
+ */
910
1364
  <A>(consequent: Predicate<A>): (antecedent: Predicate<A>) => Predicate<A>
1365
+ /**
1366
+ * Represents the logical implication combinator for predicates. In formal
1367
+ * logic, the implication operator `->` denotes that if the first proposition
1368
+ * (antecedent) is true, then the second proposition (consequent) must also be
1369
+ * true. In simpler terms, `p implies q` can be interpreted as "if p then q". If
1370
+ * the first predicate holds, then the second predicate must hold
1371
+ * for the given context.
1372
+ *
1373
+ * In practical terms within TypeScript, `p implies q` is equivalent to `!p || (p && q)`.
1374
+ *
1375
+ * Note that if the antecedent is `false`, the result is `true` by default
1376
+ * because the outcome of the consequent cannot be determined.
1377
+ *
1378
+ * This function is useful in situations where you need to enforce rules or
1379
+ * constraints that are contingent on certain conditions.
1380
+ * It proves especially helpful in defining property tests.
1381
+ *
1382
+ * The example below illustrates the transitive property of order using the
1383
+ * `implies` function. In simple terms, if `a <= b` and `b <= c`, then `a <= c`
1384
+ * must be true.
1385
+ *
1386
+ * @example
1387
+ * import { Predicate } from "effect"
1388
+ *
1389
+ * type Triple = {
1390
+ * readonly a: number
1391
+ * readonly b: number
1392
+ * readonly c: number
1393
+ * }
1394
+ *
1395
+ * const transitivity = Predicate.implies(
1396
+ * // antecedent
1397
+ * (input: Triple) => input.a <= input.b && input.b <= input.c,
1398
+ * // consequent
1399
+ * (input: Triple) => input.a <= input.c
1400
+ * )
1401
+ *
1402
+ * assert.equal(transitivity({ a: 1, b: 2, c: 3 }), true)
1403
+ * // antecedent is `false`, so the result is `true`
1404
+ * assert.equal(transitivity({ a: 1, b: 0, c: 0 }), true)
1405
+ *
1406
+ * @category combinators
1407
+ * @since 2.0.0
1408
+ */
911
1409
  <A>(antecedent: Predicate<A>, consequent: Predicate<A>): Predicate<A>
912
1410
  } = dual(
913
1411
  2,
@@ -919,7 +1417,15 @@ export const implies: {
919
1417
  * @since 2.0.0
920
1418
  */
921
1419
  export const nor: {
1420
+ /**
1421
+ * @category combinators
1422
+ * @since 2.0.0
1423
+ */
922
1424
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1425
+ /**
1426
+ * @category combinators
1427
+ * @since 2.0.0
1428
+ */
923
1429
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
924
1430
  } = dual(
925
1431
  2,
@@ -931,7 +1437,15 @@ export const nor: {
931
1437
  * @since 2.0.0
932
1438
  */
933
1439
  export const nand: {
1440
+ /**
1441
+ * @category combinators
1442
+ * @since 2.0.0
1443
+ */
934
1444
  <A>(that: Predicate<A>): (self: Predicate<A>) => Predicate<A>
1445
+ /**
1446
+ * @category combinators
1447
+ * @since 2.0.0
1448
+ */
935
1449
  <A>(self: Predicate<A>, that: Predicate<A>): Predicate<A>
936
1450
  } = dual(
937
1451
  2,
package/src/PubSub.ts CHANGED
@@ -155,7 +155,21 @@ export const awaitShutdown: <A>(self: PubSub<A>) => Effect.Effect<void> = intern
155
155
  * @category utils
156
156
  */
157
157
  export const publish: {
158
+ /**
159
+ * Publishes a message to the `PubSub`, returning whether the message was published
160
+ * to the `PubSub`.
161
+ *
162
+ * @since 2.0.0
163
+ * @category utils
164
+ */
158
165
  <A>(value: A): (self: PubSub<A>) => Effect.Effect<boolean>
166
+ /**
167
+ * Publishes a message to the `PubSub`, returning whether the message was published
168
+ * to the `PubSub`.
169
+ *
170
+ * @since 2.0.0
171
+ * @category utils
172
+ */
159
173
  <A>(self: PubSub<A>, value: A): Effect.Effect<boolean>
160
174
  } = internal.publish
161
175
 
@@ -167,7 +181,21 @@ export const publish: {
167
181
  * @category utils
168
182
  */
169
183
  export const publishAll: {
184
+ /**
185
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
186
+ * were published to the `PubSub`.
187
+ *
188
+ * @since 2.0.0
189
+ * @category utils
190
+ */
170
191
  <A>(elements: Iterable<A>): (self: PubSub<A>) => Effect.Effect<boolean>
192
+ /**
193
+ * Publishes all of the specified messages to the `PubSub`, returning whether they
194
+ * were published to the `PubSub`.
195
+ *
196
+ * @since 2.0.0
197
+ * @category utils
198
+ */
171
199
  <A>(self: PubSub<A>, elements: Iterable<A>): Effect.Effect<boolean>
172
200
  } = internal.publishAll
173
201