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/BigDecimal.ts CHANGED
@@ -18,7 +18,7 @@ import * as Equal from "./Equal.js"
18
18
  import * as equivalence from "./Equivalence.js"
19
19
  import { dual, pipe } from "./Function.js"
20
20
  import * as Hash from "./Hash.js"
21
- import { type Inspectable, NodeInspectSymbol } from "./Inspectable.js"
21
+ import { DenoInspectSymbol, type Inspectable, NodeInspectSymbol } from "./Inspectable.js"
22
22
  import * as Option from "./Option.js"
23
23
  import * as order from "./Order.js"
24
24
  import type { Ordering } from "./Ordering.js"
@@ -74,6 +74,9 @@ const BigDecimalProto: Omit<BigDecimal, "value" | "scale" | "normalized"> = {
74
74
  scale: this.scale
75
75
  }
76
76
  },
77
+ [DenoInspectSymbol](this: BigDecimal) {
78
+ return this.toJSON()
79
+ },
77
80
  [NodeInspectSymbol](this: BigDecimal) {
78
81
  return this.toJSON()
79
82
  },
@@ -183,7 +186,34 @@ export const normalize = (self: BigDecimal): BigDecimal => {
183
186
  * @since 2.0.0
184
187
  * @category scaling
185
188
  */
186
- export const scale = (self: BigDecimal, scale: number): BigDecimal => {
189
+ export const scale: {
190
+ /**
191
+ * Scales a given `BigDecimal` to the specified scale.
192
+ *
193
+ * If the given scale is smaller than the current scale, the value will be rounded down to
194
+ * the nearest integer.
195
+ *
196
+ * @param self - The `BigDecimal` to scale.
197
+ * @param scale - The scale to scale to.
198
+ *
199
+ * @since 2.0.0
200
+ * @category scaling
201
+ */
202
+ (scale: number): (self: BigDecimal) => BigDecimal
203
+ /**
204
+ * Scales a given `BigDecimal` to the specified scale.
205
+ *
206
+ * If the given scale is smaller than the current scale, the value will be rounded down to
207
+ * the nearest integer.
208
+ *
209
+ * @param self - The `BigDecimal` to scale.
210
+ * @param scale - The scale to scale to.
211
+ *
212
+ * @since 2.0.0
213
+ * @category scaling
214
+ */
215
+ (self: BigDecimal, scale: number): BigDecimal
216
+ } = dual(2, (self: BigDecimal, scale: number): BigDecimal => {
187
217
  if (scale > self.scale) {
188
218
  return make(self.value * bigint10 ** BigInt(scale - self.scale), scale)
189
219
  }
@@ -193,7 +223,7 @@ export const scale = (self: BigDecimal, scale: number): BigDecimal => {
193
223
  }
194
224
 
195
225
  return self
196
- }
226
+ })
197
227
 
198
228
  /**
199
229
  * Provides an addition operation on `BigDecimal`s.
@@ -210,7 +240,35 @@ export const scale = (self: BigDecimal, scale: number): BigDecimal => {
210
240
  * @category math
211
241
  */
212
242
  export const sum: {
243
+ /**
244
+ * Provides an addition operation on `BigDecimal`s.
245
+ *
246
+ * @param self - The first operand.
247
+ * @param that - The second operand.
248
+ *
249
+ * @example
250
+ * import { sum, unsafeFromString } from "effect/BigDecimal"
251
+ *
252
+ * assert.deepStrictEqual(sum(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("5"))
253
+ *
254
+ * @since 2.0.0
255
+ * @category math
256
+ */
213
257
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
258
+ /**
259
+ * Provides an addition operation on `BigDecimal`s.
260
+ *
261
+ * @param self - The first operand.
262
+ * @param that - The second operand.
263
+ *
264
+ * @example
265
+ * import { sum, unsafeFromString } from "effect/BigDecimal"
266
+ *
267
+ * assert.deepStrictEqual(sum(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("5"))
268
+ *
269
+ * @since 2.0.0
270
+ * @category math
271
+ */
214
272
  (self: BigDecimal, that: BigDecimal): BigDecimal
215
273
  } = dual(2, (self: BigDecimal, that: BigDecimal): BigDecimal => {
216
274
  if (that.value === bigint0) {
@@ -247,7 +305,35 @@ export const sum: {
247
305
  * @category math
248
306
  */
249
307
  export const multiply: {
308
+ /**
309
+ * Provides a multiplication operation on `BigDecimal`s.
310
+ *
311
+ * @param self - The first operand.
312
+ * @param that - The second operand.
313
+ *
314
+ * @example
315
+ * import { multiply, unsafeFromString } from "effect/BigDecimal"
316
+ *
317
+ * assert.deepStrictEqual(multiply(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("6"))
318
+ *
319
+ * @since 2.0.0
320
+ * @category math
321
+ */
250
322
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
323
+ /**
324
+ * Provides a multiplication operation on `BigDecimal`s.
325
+ *
326
+ * @param self - The first operand.
327
+ * @param that - The second operand.
328
+ *
329
+ * @example
330
+ * import { multiply, unsafeFromString } from "effect/BigDecimal"
331
+ *
332
+ * assert.deepStrictEqual(multiply(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("6"))
333
+ *
334
+ * @since 2.0.0
335
+ * @category math
336
+ */
251
337
  (self: BigDecimal, that: BigDecimal): BigDecimal
252
338
  } = dual(2, (self: BigDecimal, that: BigDecimal): BigDecimal => {
253
339
  if (that.value === bigint0 || self.value === bigint0) {
@@ -272,7 +358,35 @@ export const multiply: {
272
358
  * @category math
273
359
  */
274
360
  export const subtract: {
361
+ /**
362
+ * Provides a subtraction operation on `BigDecimal`s.
363
+ *
364
+ * @param self - The first operand.
365
+ * @param that - The second operand.
366
+ *
367
+ * @example
368
+ * import { subtract, unsafeFromString } from "effect/BigDecimal"
369
+ *
370
+ * assert.deepStrictEqual(subtract(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("-1"))
371
+ *
372
+ * @since 2.0.0
373
+ * @category math
374
+ */
275
375
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
376
+ /**
377
+ * Provides a subtraction operation on `BigDecimal`s.
378
+ *
379
+ * @param self - The first operand.
380
+ * @param that - The second operand.
381
+ *
382
+ * @example
383
+ * import { subtract, unsafeFromString } from "effect/BigDecimal"
384
+ *
385
+ * assert.deepStrictEqual(subtract(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("-1"))
386
+ *
387
+ * @since 2.0.0
388
+ * @category math
389
+ */
276
390
  (self: BigDecimal, that: BigDecimal): BigDecimal
277
391
  } = dual(2, (self: BigDecimal, that: BigDecimal): BigDecimal => {
278
392
  if (that.value === bigint0) {
@@ -384,7 +498,49 @@ export const roundTerminal = (n: bigint): bigint => {
384
498
  * @category math
385
499
  */
386
500
  export const divide: {
501
+ /**
502
+ * Provides a division operation on `BigDecimal`s.
503
+ *
504
+ * If the dividend is not a multiple of the divisor the result will be a `BigDecimal` value
505
+ * which represents the integer division rounded down to the nearest integer.
506
+ *
507
+ * If the divisor is `0`, the result will be `None`.
508
+ *
509
+ * @param self - The dividend operand.
510
+ * @param that - The divisor operand.
511
+ *
512
+ * @example
513
+ * import { BigDecimal, Option } from "effect"
514
+ *
515
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("3")), Option.some(BigDecimal.unsafeFromString("2")))
516
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("4")), Option.some(BigDecimal.unsafeFromString("1.5")))
517
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("0")), Option.none())
518
+ *
519
+ * @since 2.0.0
520
+ * @category math
521
+ */
387
522
  (that: BigDecimal): (self: BigDecimal) => Option.Option<BigDecimal>
523
+ /**
524
+ * Provides a division operation on `BigDecimal`s.
525
+ *
526
+ * If the dividend is not a multiple of the divisor the result will be a `BigDecimal` value
527
+ * which represents the integer division rounded down to the nearest integer.
528
+ *
529
+ * If the divisor is `0`, the result will be `None`.
530
+ *
531
+ * @param self - The dividend operand.
532
+ * @param that - The divisor operand.
533
+ *
534
+ * @example
535
+ * import { BigDecimal, Option } from "effect"
536
+ *
537
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("3")), Option.some(BigDecimal.unsafeFromString("2")))
538
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("4")), Option.some(BigDecimal.unsafeFromString("1.5")))
539
+ * assert.deepStrictEqual(BigDecimal.divide(BigDecimal.unsafeFromString("6"), BigDecimal.unsafeFromString("0")), Option.none())
540
+ *
541
+ * @since 2.0.0
542
+ * @category math
543
+ */
388
544
  (self: BigDecimal, that: BigDecimal): Option.Option<BigDecimal>
389
545
  } = dual(2, (self: BigDecimal, that: BigDecimal): Option.Option<BigDecimal> => {
390
546
  if (that.value === bigint0) {
@@ -424,7 +580,47 @@ export const divide: {
424
580
  * @category math
425
581
  */
426
582
  export const unsafeDivide: {
583
+ /**
584
+ * Provides an unsafe division operation on `BigDecimal`s.
585
+ *
586
+ * If the dividend is not a multiple of the divisor the result will be a `BigDecimal` value
587
+ * which represents the integer division rounded down to the nearest integer.
588
+ *
589
+ * Throws a `RangeError` if the divisor is `0`.
590
+ *
591
+ * @param self - The dividend operand.
592
+ * @param that - The divisor operand.as
593
+ *
594
+ * @example
595
+ * import { unsafeDivide, unsafeFromString } from "effect/BigDecimal"
596
+ *
597
+ * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("3")), unsafeFromString("2"))
598
+ * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("4")), unsafeFromString("1.5"))
599
+ *
600
+ * @since 2.0.0
601
+ * @category math
602
+ */
427
603
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
604
+ /**
605
+ * Provides an unsafe division operation on `BigDecimal`s.
606
+ *
607
+ * If the dividend is not a multiple of the divisor the result will be a `BigDecimal` value
608
+ * which represents the integer division rounded down to the nearest integer.
609
+ *
610
+ * Throws a `RangeError` if the divisor is `0`.
611
+ *
612
+ * @param self - The dividend operand.
613
+ * @param that - The divisor operand.as
614
+ *
615
+ * @example
616
+ * import { unsafeDivide, unsafeFromString } from "effect/BigDecimal"
617
+ *
618
+ * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("3")), unsafeFromString("2"))
619
+ * assert.deepStrictEqual(unsafeDivide(unsafeFromString("6"), unsafeFromString("4")), unsafeFromString("1.5"))
620
+ *
621
+ * @since 2.0.0
622
+ * @category math
623
+ */
428
624
  (self: BigDecimal, that: BigDecimal): BigDecimal
429
625
  } = dual(2, (self: BigDecimal, that: BigDecimal): BigDecimal => {
430
626
  if (that.value === bigint0) {
@@ -480,7 +676,39 @@ export const Order: order.Order<BigDecimal> = order.make((self, that) => {
480
676
  * @category predicates
481
677
  */
482
678
  export const lessThan: {
679
+ /**
680
+ * Returns `true` if the first argument is less than the second, otherwise `false`.
681
+ *
682
+ * @param self - The first argument.
683
+ * @param that - The second argument.
684
+ *
685
+ * @example
686
+ * import { lessThan, unsafeFromString } from "effect/BigDecimal"
687
+ *
688
+ * assert.deepStrictEqual(lessThan(unsafeFromString("2"), unsafeFromString("3")), true)
689
+ * assert.deepStrictEqual(lessThan(unsafeFromString("3"), unsafeFromString("3")), false)
690
+ * assert.deepStrictEqual(lessThan(unsafeFromString("4"), unsafeFromString("3")), false)
691
+ *
692
+ * @since 2.0.0
693
+ * @category predicates
694
+ */
483
695
  (that: BigDecimal): (self: BigDecimal) => boolean
696
+ /**
697
+ * Returns `true` if the first argument is less than the second, otherwise `false`.
698
+ *
699
+ * @param self - The first argument.
700
+ * @param that - The second argument.
701
+ *
702
+ * @example
703
+ * import { lessThan, unsafeFromString } from "effect/BigDecimal"
704
+ *
705
+ * assert.deepStrictEqual(lessThan(unsafeFromString("2"), unsafeFromString("3")), true)
706
+ * assert.deepStrictEqual(lessThan(unsafeFromString("3"), unsafeFromString("3")), false)
707
+ * assert.deepStrictEqual(lessThan(unsafeFromString("4"), unsafeFromString("3")), false)
708
+ *
709
+ * @since 2.0.0
710
+ * @category predicates
711
+ */
484
712
  (self: BigDecimal, that: BigDecimal): boolean
485
713
  } = order.lessThan(Order)
486
714
 
@@ -501,7 +729,39 @@ export const lessThan: {
501
729
  * @category predicates
502
730
  */
503
731
  export const lessThanOrEqualTo: {
732
+ /**
733
+ * Checks if a given `BigDecimal` is less than or equal to the provided one.
734
+ *
735
+ * @param self - The first `BigDecimal` to compare with.
736
+ * @param that - The second `BigDecimal` to compare with.
737
+ *
738
+ * @example
739
+ * import { lessThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
740
+ *
741
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), true)
742
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
743
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), false)
744
+ *
745
+ * @since 2.0.0
746
+ * @category predicates
747
+ */
504
748
  (that: BigDecimal): (self: BigDecimal) => boolean
749
+ /**
750
+ * Checks if a given `BigDecimal` is less than or equal to the provided one.
751
+ *
752
+ * @param self - The first `BigDecimal` to compare with.
753
+ * @param that - The second `BigDecimal` to compare with.
754
+ *
755
+ * @example
756
+ * import { lessThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
757
+ *
758
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), true)
759
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
760
+ * assert.deepStrictEqual(lessThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), false)
761
+ *
762
+ * @since 2.0.0
763
+ * @category predicates
764
+ */
505
765
  (self: BigDecimal, that: BigDecimal): boolean
506
766
  } = order.lessThanOrEqualTo(Order)
507
767
 
@@ -522,7 +782,39 @@ export const lessThanOrEqualTo: {
522
782
  * @category predicates
523
783
  */
524
784
  export const greaterThan: {
785
+ /**
786
+ * Returns `true` if the first argument is greater than the second, otherwise `false`.
787
+ *
788
+ * @param self - The first argument.
789
+ * @param that - The second argument.
790
+ *
791
+ * @example
792
+ * import { greaterThan, unsafeFromString } from "effect/BigDecimal"
793
+ *
794
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("2"), unsafeFromString("3")), false)
795
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("3"), unsafeFromString("3")), false)
796
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("4"), unsafeFromString("3")), true)
797
+ *
798
+ * @since 2.0.0
799
+ * @category predicates
800
+ */
525
801
  (that: BigDecimal): (self: BigDecimal) => boolean
802
+ /**
803
+ * Returns `true` if the first argument is greater than the second, otherwise `false`.
804
+ *
805
+ * @param self - The first argument.
806
+ * @param that - The second argument.
807
+ *
808
+ * @example
809
+ * import { greaterThan, unsafeFromString } from "effect/BigDecimal"
810
+ *
811
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("2"), unsafeFromString("3")), false)
812
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("3"), unsafeFromString("3")), false)
813
+ * assert.deepStrictEqual(greaterThan(unsafeFromString("4"), unsafeFromString("3")), true)
814
+ *
815
+ * @since 2.0.0
816
+ * @category predicates
817
+ */
526
818
  (self: BigDecimal, that: BigDecimal): boolean
527
819
  } = order.greaterThan(Order)
528
820
 
@@ -543,7 +835,39 @@ export const greaterThan: {
543
835
  * @category predicates
544
836
  */
545
837
  export const greaterThanOrEqualTo: {
838
+ /**
839
+ * Checks if a given `BigDecimal` is greater than or equal to the provided one.
840
+ *
841
+ * @param self - The first `BigDecimal` to compare with.
842
+ * @param that - The second `BigDecimal` to compare with.
843
+ *
844
+ * @example
845
+ * import { greaterThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
846
+ *
847
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), false)
848
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
849
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), true)
850
+ *
851
+ * @since 2.0.0
852
+ * @category predicates
853
+ */
546
854
  (that: BigDecimal): (self: BigDecimal) => boolean
855
+ /**
856
+ * Checks if a given `BigDecimal` is greater than or equal to the provided one.
857
+ *
858
+ * @param self - The first `BigDecimal` to compare with.
859
+ * @param that - The second `BigDecimal` to compare with.
860
+ *
861
+ * @example
862
+ * import { greaterThanOrEqualTo, unsafeFromString } from "effect/BigDecimal"
863
+ *
864
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("2"), unsafeFromString("3")), false)
865
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("3"), unsafeFromString("3")), true)
866
+ * assert.deepStrictEqual(greaterThanOrEqualTo(unsafeFromString("4"), unsafeFromString("3")), true)
867
+ *
868
+ * @since 2.0.0
869
+ * @category predicates
870
+ */
547
871
  (self: BigDecimal, that: BigDecimal): boolean
548
872
  } = order.greaterThanOrEqualTo(Order)
549
873
 
@@ -570,14 +894,63 @@ export const greaterThanOrEqualTo: {
570
894
  * @category predicates
571
895
  */
572
896
  export const between: {
573
- (options: {
574
- minimum: BigDecimal
575
- maximum: BigDecimal
576
- }): (self: BigDecimal) => boolean
577
- (self: BigDecimal, options: {
578
- minimum: BigDecimal
579
- maximum: BigDecimal
580
- }): boolean
897
+ /**
898
+ * Checks if a `BigDecimal` is between a `minimum` and `maximum` value (inclusive).
899
+ *
900
+ * @param self - The `number` to check.
901
+ * @param minimum - The `minimum` value to check.
902
+ * @param maximum - The `maximum` value to check.
903
+ *
904
+ * @example
905
+ * import { BigDecimal } from "effect"
906
+ *
907
+ * const between = BigDecimal.between({
908
+ * minimum: BigDecimal.unsafeFromString("1"),
909
+ * maximum: BigDecimal.unsafeFromString("5") }
910
+ * )
911
+ *
912
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("3")), true)
913
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("0")), false)
914
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("6")), false)
915
+ *
916
+ * @since 2.0.0
917
+ * @category predicates
918
+ */
919
+ (
920
+ options: {
921
+ minimum: BigDecimal
922
+ maximum: BigDecimal
923
+ }
924
+ ): (self: BigDecimal) => boolean
925
+ /**
926
+ * Checks if a `BigDecimal` is between a `minimum` and `maximum` value (inclusive).
927
+ *
928
+ * @param self - The `number` to check.
929
+ * @param minimum - The `minimum` value to check.
930
+ * @param maximum - The `maximum` value to check.
931
+ *
932
+ * @example
933
+ * import { BigDecimal } from "effect"
934
+ *
935
+ * const between = BigDecimal.between({
936
+ * minimum: BigDecimal.unsafeFromString("1"),
937
+ * maximum: BigDecimal.unsafeFromString("5") }
938
+ * )
939
+ *
940
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("3")), true)
941
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("0")), false)
942
+ * assert.deepStrictEqual(between(BigDecimal.unsafeFromString("6")), false)
943
+ *
944
+ * @since 2.0.0
945
+ * @category predicates
946
+ */
947
+ (
948
+ self: BigDecimal,
949
+ options: {
950
+ minimum: BigDecimal
951
+ maximum: BigDecimal
952
+ }
953
+ ): boolean
581
954
  } = order.between(Order)
582
955
 
583
956
  /**
@@ -607,14 +980,71 @@ export const between: {
607
980
  * @category math
608
981
  */
609
982
  export const clamp: {
610
- (options: {
611
- minimum: BigDecimal
612
- maximum: BigDecimal
613
- }): (self: BigDecimal) => BigDecimal
614
- (self: BigDecimal, options: {
615
- minimum: BigDecimal
616
- maximum: BigDecimal
617
- }): BigDecimal
983
+ /**
984
+ * Restricts the given `BigDecimal` to be within the range specified by the `minimum` and `maximum` values.
985
+ *
986
+ * - If the `BigDecimal` is less than the `minimum` value, the function returns the `minimum` value.
987
+ * - If the `BigDecimal` is greater than the `maximum` value, the function returns the `maximum` value.
988
+ * - Otherwise, it returns the original `BigDecimal`.
989
+ *
990
+ * @param self - The `BigDecimal` to be clamped.
991
+ * @param minimum - The lower end of the range.
992
+ * @param maximum - The upper end of the range.
993
+ *
994
+ * @example
995
+ * import { BigDecimal } from "effect"
996
+ *
997
+ * const clamp = BigDecimal.clamp({
998
+ * minimum: BigDecimal.unsafeFromString("1"),
999
+ * maximum: BigDecimal.unsafeFromString("5") }
1000
+ * )
1001
+ *
1002
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("3")), BigDecimal.unsafeFromString("3"))
1003
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("0")), BigDecimal.unsafeFromString("1"))
1004
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("6")), BigDecimal.unsafeFromString("5"))
1005
+ *
1006
+ * @since 2.0.0
1007
+ * @category math
1008
+ */
1009
+ (
1010
+ options: {
1011
+ minimum: BigDecimal
1012
+ maximum: BigDecimal
1013
+ }
1014
+ ): (self: BigDecimal) => BigDecimal
1015
+ /**
1016
+ * Restricts the given `BigDecimal` to be within the range specified by the `minimum` and `maximum` values.
1017
+ *
1018
+ * - If the `BigDecimal` is less than the `minimum` value, the function returns the `minimum` value.
1019
+ * - If the `BigDecimal` is greater than the `maximum` value, the function returns the `maximum` value.
1020
+ * - Otherwise, it returns the original `BigDecimal`.
1021
+ *
1022
+ * @param self - The `BigDecimal` to be clamped.
1023
+ * @param minimum - The lower end of the range.
1024
+ * @param maximum - The upper end of the range.
1025
+ *
1026
+ * @example
1027
+ * import { BigDecimal } from "effect"
1028
+ *
1029
+ * const clamp = BigDecimal.clamp({
1030
+ * minimum: BigDecimal.unsafeFromString("1"),
1031
+ * maximum: BigDecimal.unsafeFromString("5") }
1032
+ * )
1033
+ *
1034
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("3")), BigDecimal.unsafeFromString("3"))
1035
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("0")), BigDecimal.unsafeFromString("1"))
1036
+ * assert.deepStrictEqual(clamp(BigDecimal.unsafeFromString("6")), BigDecimal.unsafeFromString("5"))
1037
+ *
1038
+ * @since 2.0.0
1039
+ * @category math
1040
+ */
1041
+ (
1042
+ self: BigDecimal,
1043
+ options: {
1044
+ minimum: BigDecimal
1045
+ maximum: BigDecimal
1046
+ }
1047
+ ): BigDecimal
618
1048
  } = order.clamp(Order)
619
1049
 
620
1050
  /**
@@ -632,7 +1062,35 @@ export const clamp: {
632
1062
  * @category math
633
1063
  */
634
1064
  export const min: {
1065
+ /**
1066
+ * Returns the minimum between two `BigDecimal`s.
1067
+ *
1068
+ * @param self - The first `BigDecimal`.
1069
+ * @param that - The second `BigDecimal`.
1070
+ *
1071
+ * @example
1072
+ * import { min, unsafeFromString } from "effect/BigDecimal"
1073
+ *
1074
+ * assert.deepStrictEqual(min(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("2"))
1075
+ *
1076
+ * @since 2.0.0
1077
+ * @category math
1078
+ */
635
1079
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
1080
+ /**
1081
+ * Returns the minimum between two `BigDecimal`s.
1082
+ *
1083
+ * @param self - The first `BigDecimal`.
1084
+ * @param that - The second `BigDecimal`.
1085
+ *
1086
+ * @example
1087
+ * import { min, unsafeFromString } from "effect/BigDecimal"
1088
+ *
1089
+ * assert.deepStrictEqual(min(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("2"))
1090
+ *
1091
+ * @since 2.0.0
1092
+ * @category math
1093
+ */
636
1094
  (self: BigDecimal, that: BigDecimal): BigDecimal
637
1095
  } = order.min(Order)
638
1096
 
@@ -651,7 +1109,35 @@ export const min: {
651
1109
  * @category math
652
1110
  */
653
1111
  export const max: {
1112
+ /**
1113
+ * Returns the maximum between two `BigDecimal`s.
1114
+ *
1115
+ * @param self - The first `BigDecimal`.
1116
+ * @param that - The second `BigDecimal`.
1117
+ *
1118
+ * @example
1119
+ * import { max, unsafeFromString } from "effect/BigDecimal"
1120
+ *
1121
+ * assert.deepStrictEqual(max(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("3"))
1122
+ *
1123
+ * @since 2.0.0
1124
+ * @category math
1125
+ */
654
1126
  (that: BigDecimal): (self: BigDecimal) => BigDecimal
1127
+ /**
1128
+ * Returns the maximum between two `BigDecimal`s.
1129
+ *
1130
+ * @param self - The first `BigDecimal`.
1131
+ * @param that - The second `BigDecimal`.
1132
+ *
1133
+ * @example
1134
+ * import { max, unsafeFromString } from "effect/BigDecimal"
1135
+ *
1136
+ * assert.deepStrictEqual(max(unsafeFromString("2"), unsafeFromString("3")), unsafeFromString("3"))
1137
+ *
1138
+ * @since 2.0.0
1139
+ * @category math
1140
+ */
655
1141
  (self: BigDecimal, that: BigDecimal): BigDecimal
656
1142
  } = order.max(Order)
657
1143
 
@@ -724,7 +1210,43 @@ export const negate = (n: BigDecimal): BigDecimal => make(-n.value, n.scale)
724
1210
  * @category math
725
1211
  */
726
1212
  export const remainder: {
1213
+ /**
1214
+ * Returns the remainder left over when one operand is divided by a second operand.
1215
+ *
1216
+ * If the divisor is `0`, the result will be `None`.
1217
+ *
1218
+ * @param self - The dividend.
1219
+ * @param divisor - The divisor.
1220
+ *
1221
+ * @example
1222
+ * import { BigDecimal, Option } from "effect"
1223
+ *
1224
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("2"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
1225
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("3"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("1")))
1226
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("-4"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
1227
+ *
1228
+ * @since 2.0.0
1229
+ * @category math
1230
+ */
727
1231
  (divisor: BigDecimal): (self: BigDecimal) => Option.Option<BigDecimal>
1232
+ /**
1233
+ * Returns the remainder left over when one operand is divided by a second operand.
1234
+ *
1235
+ * If the divisor is `0`, the result will be `None`.
1236
+ *
1237
+ * @param self - The dividend.
1238
+ * @param divisor - The divisor.
1239
+ *
1240
+ * @example
1241
+ * import { BigDecimal, Option } from "effect"
1242
+ *
1243
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("2"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
1244
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("3"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("1")))
1245
+ * assert.deepStrictEqual(BigDecimal.remainder(BigDecimal.unsafeFromString("-4"), BigDecimal.unsafeFromString("2")), Option.some(BigDecimal.unsafeFromString("0")))
1246
+ *
1247
+ * @since 2.0.0
1248
+ * @category math
1249
+ */
728
1250
  (self: BigDecimal, divisor: BigDecimal): Option.Option<BigDecimal>
729
1251
  } = dual(2, (self: BigDecimal, divisor: BigDecimal): Option.Option<BigDecimal> => {
730
1252
  if (divisor.value === bigint0) {
@@ -754,7 +1276,43 @@ export const remainder: {
754
1276
  * @category math
755
1277
  */
756
1278
  export const unsafeRemainder: {
1279
+ /**
1280
+ * Returns the remainder left over when one operand is divided by a second operand.
1281
+ *
1282
+ * Throws a `RangeError` if the divisor is `0`.
1283
+ *
1284
+ * @param self - The dividend.
1285
+ * @param divisor - The divisor.
1286
+ *
1287
+ * @example
1288
+ * import { unsafeRemainder, unsafeFromString } from "effect/BigDecimal"
1289
+ *
1290
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("2"), unsafeFromString("2")), unsafeFromString("0"))
1291
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("3"), unsafeFromString("2")), unsafeFromString("1"))
1292
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("-4"), unsafeFromString("2")), unsafeFromString("0"))
1293
+ *
1294
+ * @since 2.0.0
1295
+ * @category math
1296
+ */
757
1297
  (divisor: BigDecimal): (self: BigDecimal) => BigDecimal
1298
+ /**
1299
+ * Returns the remainder left over when one operand is divided by a second operand.
1300
+ *
1301
+ * Throws a `RangeError` if the divisor is `0`.
1302
+ *
1303
+ * @param self - The dividend.
1304
+ * @param divisor - The divisor.
1305
+ *
1306
+ * @example
1307
+ * import { unsafeRemainder, unsafeFromString } from "effect/BigDecimal"
1308
+ *
1309
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("2"), unsafeFromString("2")), unsafeFromString("0"))
1310
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("3"), unsafeFromString("2")), unsafeFromString("1"))
1311
+ * assert.deepStrictEqual(unsafeRemainder(unsafeFromString("-4"), unsafeFromString("2")), unsafeFromString("0"))
1312
+ *
1313
+ * @since 2.0.0
1314
+ * @category math
1315
+ */
758
1316
  (self: BigDecimal, divisor: BigDecimal): BigDecimal
759
1317
  } = dual(2, (self: BigDecimal, divisor: BigDecimal): BigDecimal => {
760
1318
  if (divisor.value === bigint0) {
@@ -788,7 +1346,19 @@ export const Equivalence: equivalence.Equivalence<BigDecimal> = equivalence.make
788
1346
  * @category predicates
789
1347
  */
790
1348
  export const equals: {
1349
+ /**
1350
+ * Checks if two `BigDecimal`s are equal.
1351
+ *
1352
+ * @since 2.0.0
1353
+ * @category predicates
1354
+ */
791
1355
  (that: BigDecimal): (self: BigDecimal) => boolean
1356
+ /**
1357
+ * Checks if two `BigDecimal`s are equal.
1358
+ *
1359
+ * @since 2.0.0
1360
+ * @category predicates
1361
+ */
792
1362
  (self: BigDecimal, that: BigDecimal): boolean
793
1363
  } = dual(2, (self: BigDecimal, that: BigDecimal): boolean => Equivalence(self, that))
794
1364