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
@@ -104,7 +104,49 @@ export declare const make: <Entries extends Array<readonly [string, any]>>(...en
104
104
  * @category mutations
105
105
  */
106
106
  export declare const insert: {
107
+ /**
108
+ * Insert a new entry in the `Trie`.
109
+ *
110
+ * @example
111
+ * import { Trie } from "effect"
112
+ *
113
+ * const trie1 = Trie.empty<number>().pipe(
114
+ * Trie.insert("call", 0)
115
+ * )
116
+ * const trie2 = trie1.pipe(Trie.insert("me", 1))
117
+ * const trie3 = trie2.pipe(Trie.insert("mind", 2))
118
+ * const trie4 = trie3.pipe(Trie.insert("mid", 3))
119
+ *
120
+ * assert.deepStrictEqual(Array.from(trie1), [["call", 0]])
121
+ * assert.deepStrictEqual(Array.from(trie2), [["call", 0], ["me", 1]])
122
+ * assert.deepStrictEqual(Array.from(trie3), [["call", 0], ["me", 1], ["mind", 2]])
123
+ * assert.deepStrictEqual(Array.from(trie4), [["call", 0], ["me", 1], ["mid", 3], ["mind", 2]])
124
+ *
125
+ * @since 2.0.0
126
+ * @category mutations
127
+ */
107
128
  <V>(key: string, value: V): (self: Trie<V>) => Trie<V>;
129
+ /**
130
+ * Insert a new entry in the `Trie`.
131
+ *
132
+ * @example
133
+ * import { Trie } from "effect"
134
+ *
135
+ * const trie1 = Trie.empty<number>().pipe(
136
+ * Trie.insert("call", 0)
137
+ * )
138
+ * const trie2 = trie1.pipe(Trie.insert("me", 1))
139
+ * const trie3 = trie2.pipe(Trie.insert("mind", 2))
140
+ * const trie4 = trie3.pipe(Trie.insert("mid", 3))
141
+ *
142
+ * assert.deepStrictEqual(Array.from(trie1), [["call", 0]])
143
+ * assert.deepStrictEqual(Array.from(trie2), [["call", 0], ["me", 1]])
144
+ * assert.deepStrictEqual(Array.from(trie3), [["call", 0], ["me", 1], ["mind", 2]])
145
+ * assert.deepStrictEqual(Array.from(trie4), [["call", 0], ["me", 1], ["mid", 3], ["mind", 2]])
146
+ *
147
+ * @since 2.0.0
148
+ * @category mutations
149
+ */
108
150
  <V>(self: Trie<V>, key: string, value: V): Trie<V>;
109
151
  };
110
152
  /**
@@ -210,7 +252,47 @@ export declare const toEntries: <V>(self: Trie<V>) => Array<[string, V]>;
210
252
  * @category getters
211
253
  */
212
254
  export declare const keysWithPrefix: {
255
+ /**
256
+ * Returns an `IterableIterator` of the keys within the `Trie`
257
+ * that have `prefix` as prefix (`prefix` included if it exists).
258
+ *
259
+ * @example
260
+ * import { Trie } from "effect"
261
+ *
262
+ * const trie = Trie.empty<number>().pipe(
263
+ * Trie.insert("she", 0),
264
+ * Trie.insert("shells", 1),
265
+ * Trie.insert("sea", 2),
266
+ * Trie.insert("shore", 3)
267
+ * )
268
+ *
269
+ * const result = Array.from(Trie.keysWithPrefix(trie, "she"))
270
+ * assert.deepStrictEqual(result, ["she", "shells"])
271
+ *
272
+ * @since 2.0.0
273
+ * @category getters
274
+ */
213
275
  (prefix: string): <V>(self: Trie<V>) => IterableIterator<string>;
276
+ /**
277
+ * Returns an `IterableIterator` of the keys within the `Trie`
278
+ * that have `prefix` as prefix (`prefix` included if it exists).
279
+ *
280
+ * @example
281
+ * import { Trie } from "effect"
282
+ *
283
+ * const trie = Trie.empty<number>().pipe(
284
+ * Trie.insert("she", 0),
285
+ * Trie.insert("shells", 1),
286
+ * Trie.insert("sea", 2),
287
+ * Trie.insert("shore", 3)
288
+ * )
289
+ *
290
+ * const result = Array.from(Trie.keysWithPrefix(trie, "she"))
291
+ * assert.deepStrictEqual(result, ["she", "shells"])
292
+ *
293
+ * @since 2.0.0
294
+ * @category getters
295
+ */
214
296
  <V>(self: Trie<V>, prefix: string): IterableIterator<string>;
215
297
  };
216
298
  /**
@@ -236,7 +318,51 @@ export declare const keysWithPrefix: {
236
318
  * @category getters
237
319
  */
238
320
  export declare const valuesWithPrefix: {
321
+ /**
322
+ * Returns an `IterableIterator` of the values within the `Trie`
323
+ * that have `prefix` as prefix (`prefix` included if it exists).
324
+ *
325
+ * @example
326
+ * import { Trie } from "effect"
327
+ *
328
+ * const trie = Trie.empty<number>().pipe(
329
+ * Trie.insert("she", 0),
330
+ * Trie.insert("shells", 1),
331
+ * Trie.insert("sea", 2),
332
+ * Trie.insert("shore", 3)
333
+ * )
334
+ *
335
+ * const result = Array.from(Trie.valuesWithPrefix(trie, "she"))
336
+ *
337
+ * // 0: "she", 1: "shells"
338
+ * assert.deepStrictEqual(result, [0, 1])
339
+ *
340
+ * @since 2.0.0
341
+ * @category getters
342
+ */
239
343
  (prefix: string): <V>(self: Trie<V>) => IterableIterator<V>;
344
+ /**
345
+ * Returns an `IterableIterator` of the values within the `Trie`
346
+ * that have `prefix` as prefix (`prefix` included if it exists).
347
+ *
348
+ * @example
349
+ * import { Trie } from "effect"
350
+ *
351
+ * const trie = Trie.empty<number>().pipe(
352
+ * Trie.insert("she", 0),
353
+ * Trie.insert("shells", 1),
354
+ * Trie.insert("sea", 2),
355
+ * Trie.insert("shore", 3)
356
+ * )
357
+ *
358
+ * const result = Array.from(Trie.valuesWithPrefix(trie, "she"))
359
+ *
360
+ * // 0: "she", 1: "shells"
361
+ * assert.deepStrictEqual(result, [0, 1])
362
+ *
363
+ * @since 2.0.0
364
+ * @category getters
365
+ */
240
366
  <V>(self: Trie<V>, prefix: string): IterableIterator<V>;
241
367
  };
242
368
  /**
@@ -260,7 +386,47 @@ export declare const valuesWithPrefix: {
260
386
  * @category getters
261
387
  */
262
388
  export declare const entriesWithPrefix: {
389
+ /**
390
+ * Returns an `IterableIterator` of the entries within the `Trie`
391
+ * that have `prefix` as prefix (`prefix` included if it exists).
392
+ *
393
+ * @example
394
+ * import { Trie } from "effect"
395
+ *
396
+ * const trie = Trie.empty<number>().pipe(
397
+ * Trie.insert("she", 0),
398
+ * Trie.insert("shells", 1),
399
+ * Trie.insert("sea", 2),
400
+ * Trie.insert("shore", 3)
401
+ * )
402
+ *
403
+ * const result = Array.from(Trie.entriesWithPrefix(trie, "she"))
404
+ * assert.deepStrictEqual(result, [["she", 0], ["shells", 1]])
405
+ *
406
+ * @since 2.0.0
407
+ * @category getters
408
+ */
263
409
  (prefix: string): <V>(self: Trie<V>) => IterableIterator<[string, V]>;
410
+ /**
411
+ * Returns an `IterableIterator` of the entries within the `Trie`
412
+ * that have `prefix` as prefix (`prefix` included if it exists).
413
+ *
414
+ * @example
415
+ * import { Trie } from "effect"
416
+ *
417
+ * const trie = Trie.empty<number>().pipe(
418
+ * Trie.insert("she", 0),
419
+ * Trie.insert("shells", 1),
420
+ * Trie.insert("sea", 2),
421
+ * Trie.insert("shore", 3)
422
+ * )
423
+ *
424
+ * const result = Array.from(Trie.entriesWithPrefix(trie, "she"))
425
+ * assert.deepStrictEqual(result, [["she", 0], ["shells", 1]])
426
+ *
427
+ * @since 2.0.0
428
+ * @category getters
429
+ */
264
430
  <V>(self: Trie<V>, prefix: string): IterableIterator<[string, V]>;
265
431
  };
266
432
  /**
@@ -284,7 +450,47 @@ export declare const entriesWithPrefix: {
284
450
  * @category getters
285
451
  */
286
452
  export declare const toEntriesWithPrefix: {
453
+ /**
454
+ * Returns `Array<[K, V]>` of the entries within the `Trie`
455
+ * that have `prefix` as prefix (`prefix` included if it exists).
456
+ *
457
+ * @example
458
+ * import { Trie } from "effect"
459
+ *
460
+ * const trie = Trie.empty<number>().pipe(
461
+ * Trie.insert("shells", 0),
462
+ * Trie.insert("sells", 1),
463
+ * Trie.insert("sea", 2),
464
+ * Trie.insert("she", 3)
465
+ * )
466
+ *
467
+ * const result = Trie.toEntriesWithPrefix(trie, "she")
468
+ * assert.deepStrictEqual(result, [["she", 3], ["shells", 0]])
469
+ *
470
+ * @since 2.0.0
471
+ * @category getters
472
+ */
287
473
  (prefix: string): <V>(self: Trie<V>) => Array<[string, V]>;
474
+ /**
475
+ * Returns `Array<[K, V]>` of the entries within the `Trie`
476
+ * that have `prefix` as prefix (`prefix` included if it exists).
477
+ *
478
+ * @example
479
+ * import { Trie } from "effect"
480
+ *
481
+ * const trie = Trie.empty<number>().pipe(
482
+ * Trie.insert("shells", 0),
483
+ * Trie.insert("sells", 1),
484
+ * Trie.insert("sea", 2),
485
+ * Trie.insert("she", 3)
486
+ * )
487
+ *
488
+ * const result = Trie.toEntriesWithPrefix(trie, "she")
489
+ * assert.deepStrictEqual(result, [["she", 3], ["shells", 0]])
490
+ *
491
+ * @since 2.0.0
492
+ * @category getters
493
+ */
288
494
  <V>(self: Trie<V>, prefix: string): Array<[string, V]>;
289
495
  };
290
496
  /**
@@ -309,7 +515,49 @@ export declare const toEntriesWithPrefix: {
309
515
  * @category getters
310
516
  */
311
517
  export declare const longestPrefixOf: {
518
+ /**
519
+ * Returns the longest key/value in the `Trie`
520
+ * that is a prefix of that `key` if it exists, `None` otherwise.
521
+ *
522
+ * @example
523
+ * import { Trie, Option } from "effect"
524
+ *
525
+ * const trie = Trie.empty<number>().pipe(
526
+ * Trie.insert("shells", 0),
527
+ * Trie.insert("sells", 1),
528
+ * Trie.insert("she", 2)
529
+ * )
530
+ *
531
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "sell"), Option.none())
532
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "sells"), Option.some(["sells", 1]))
533
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "shell"), Option.some(["she", 2]))
534
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "shellsort"), Option.some(["shells", 0]))
535
+ *
536
+ * @since 2.0.0
537
+ * @category getters
538
+ */
312
539
  (key: string): <V>(self: Trie<V>) => Option<[string, V]>;
540
+ /**
541
+ * Returns the longest key/value in the `Trie`
542
+ * that is a prefix of that `key` if it exists, `None` otherwise.
543
+ *
544
+ * @example
545
+ * import { Trie, Option } from "effect"
546
+ *
547
+ * const trie = Trie.empty<number>().pipe(
548
+ * Trie.insert("shells", 0),
549
+ * Trie.insert("sells", 1),
550
+ * Trie.insert("she", 2)
551
+ * )
552
+ *
553
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "sell"), Option.none())
554
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "sells"), Option.some(["sells", 1]))
555
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "shell"), Option.some(["she", 2]))
556
+ * assert.deepStrictEqual(Trie.longestPrefixOf(trie, "shellsort"), Option.some(["shells", 0]))
557
+ *
558
+ * @since 2.0.0
559
+ * @category getters
560
+ */
313
561
  <V>(self: Trie<V>, key: string): Option<[string, V]>;
314
562
  };
315
563
  /**
@@ -355,7 +603,57 @@ export declare const size: <V>(self: Trie<V>) => number;
355
603
  * @category elements
356
604
  */
357
605
  export declare const get: {
606
+ /**
607
+ * Safely lookup the value for the specified key in the `Trie`.
608
+ *
609
+ * @example
610
+ * import { Trie, Option } from "effect"
611
+ *
612
+ * const trie = Trie.empty<number>().pipe(
613
+ * Trie.insert("call", 0),
614
+ * Trie.insert("me", 1),
615
+ * Trie.insert("mind", 2),
616
+ * Trie.insert("mid", 3)
617
+ * )
618
+ *
619
+ * assert.deepStrictEqual(Trie.get(trie, "call"), Option.some(0))
620
+ * assert.deepStrictEqual(Trie.get(trie, "me"), Option.some(1))
621
+ * assert.deepStrictEqual(Trie.get(trie, "mind"), Option.some(2))
622
+ * assert.deepStrictEqual(Trie.get(trie, "mid"), Option.some(3))
623
+ * assert.deepStrictEqual(Trie.get(trie, "cale"), Option.none())
624
+ * assert.deepStrictEqual(Trie.get(trie, "ma"), Option.none())
625
+ * assert.deepStrictEqual(Trie.get(trie, "midn"), Option.none())
626
+ * assert.deepStrictEqual(Trie.get(trie, "mea"), Option.none())
627
+ *
628
+ * @since 2.0.0
629
+ * @category elements
630
+ */
358
631
  (key: string): <V>(self: Trie<V>) => Option<V>;
632
+ /**
633
+ * Safely lookup the value for the specified key in the `Trie`.
634
+ *
635
+ * @example
636
+ * import { Trie, Option } from "effect"
637
+ *
638
+ * const trie = Trie.empty<number>().pipe(
639
+ * Trie.insert("call", 0),
640
+ * Trie.insert("me", 1),
641
+ * Trie.insert("mind", 2),
642
+ * Trie.insert("mid", 3)
643
+ * )
644
+ *
645
+ * assert.deepStrictEqual(Trie.get(trie, "call"), Option.some(0))
646
+ * assert.deepStrictEqual(Trie.get(trie, "me"), Option.some(1))
647
+ * assert.deepStrictEqual(Trie.get(trie, "mind"), Option.some(2))
648
+ * assert.deepStrictEqual(Trie.get(trie, "mid"), Option.some(3))
649
+ * assert.deepStrictEqual(Trie.get(trie, "cale"), Option.none())
650
+ * assert.deepStrictEqual(Trie.get(trie, "ma"), Option.none())
651
+ * assert.deepStrictEqual(Trie.get(trie, "midn"), Option.none())
652
+ * assert.deepStrictEqual(Trie.get(trie, "mea"), Option.none())
653
+ *
654
+ * @since 2.0.0
655
+ * @category elements
656
+ */
359
657
  <V>(self: Trie<V>, key: string): Option<V>;
360
658
  };
361
659
  /**
@@ -384,7 +682,57 @@ export declare const get: {
384
682
  * @category elements
385
683
  */
386
684
  export declare const has: {
685
+ /**
686
+ * Check if the given key exists in the `Trie`.
687
+ *
688
+ * @example
689
+ * import { Trie } from "effect"
690
+ *
691
+ * const trie = Trie.empty<number>().pipe(
692
+ * Trie.insert("call", 0),
693
+ * Trie.insert("me", 1),
694
+ * Trie.insert("mind", 2),
695
+ * Trie.insert("mid", 3)
696
+ * )
697
+ *
698
+ * assert.equal(Trie.has(trie, "call"), true)
699
+ * assert.equal(Trie.has(trie, "me"), true)
700
+ * assert.equal(Trie.has(trie, "mind"), true)
701
+ * assert.equal(Trie.has(trie, "mid"), true)
702
+ * assert.equal(Trie.has(trie, "cale"), false)
703
+ * assert.equal(Trie.has(trie, "ma"), false)
704
+ * assert.equal(Trie.has(trie, "midn"), false)
705
+ * assert.equal(Trie.has(trie, "mea"), false)
706
+ *
707
+ * @since 2.0.0
708
+ * @category elements
709
+ */
387
710
  (key: string): <V>(self: Trie<V>) => boolean;
711
+ /**
712
+ * Check if the given key exists in the `Trie`.
713
+ *
714
+ * @example
715
+ * import { Trie } from "effect"
716
+ *
717
+ * const trie = Trie.empty<number>().pipe(
718
+ * Trie.insert("call", 0),
719
+ * Trie.insert("me", 1),
720
+ * Trie.insert("mind", 2),
721
+ * Trie.insert("mid", 3)
722
+ * )
723
+ *
724
+ * assert.equal(Trie.has(trie, "call"), true)
725
+ * assert.equal(Trie.has(trie, "me"), true)
726
+ * assert.equal(Trie.has(trie, "mind"), true)
727
+ * assert.equal(Trie.has(trie, "mid"), true)
728
+ * assert.equal(Trie.has(trie, "cale"), false)
729
+ * assert.equal(Trie.has(trie, "ma"), false)
730
+ * assert.equal(Trie.has(trie, "midn"), false)
731
+ * assert.equal(Trie.has(trie, "mea"), false)
732
+ *
733
+ * @since 2.0.0
734
+ * @category elements
735
+ */
388
736
  <V>(self: Trie<V>, key: string): boolean;
389
737
  };
390
738
  /**
@@ -423,7 +771,45 @@ export declare const isEmpty: <V>(self: Trie<V>) => boolean;
423
771
  * @category unsafe
424
772
  */
425
773
  export declare const unsafeGet: {
774
+ /**
775
+ * Unsafely lookup the value for the specified key in the `Trie`.
776
+ *
777
+ * `unsafeGet` will throw if the key is not found. Use `get` instead to safely
778
+ * get a value from the `Trie`.
779
+ *
780
+ * @example
781
+ * import { Trie } from "effect"
782
+ *
783
+ * const trie = Trie.empty<number>().pipe(
784
+ * Trie.insert("call", 0),
785
+ * Trie.insert("me", 1)
786
+ * )
787
+ *
788
+ * assert.throws(() => Trie.unsafeGet(trie, "mae"))
789
+ *
790
+ * @since 2.0.0
791
+ * @category unsafe
792
+ */
426
793
  (key: string): <V>(self: Trie<V>) => V;
794
+ /**
795
+ * Unsafely lookup the value for the specified key in the `Trie`.
796
+ *
797
+ * `unsafeGet` will throw if the key is not found. Use `get` instead to safely
798
+ * get a value from the `Trie`.
799
+ *
800
+ * @example
801
+ * import { Trie } from "effect"
802
+ *
803
+ * const trie = Trie.empty<number>().pipe(
804
+ * Trie.insert("call", 0),
805
+ * Trie.insert("me", 1)
806
+ * )
807
+ *
808
+ * assert.throws(() => Trie.unsafeGet(trie, "mae"))
809
+ *
810
+ * @since 2.0.0
811
+ * @category unsafe
812
+ */
427
813
  <V>(self: Trie<V>, key: string): V;
428
814
  };
429
815
  /**
@@ -450,7 +836,53 @@ export declare const unsafeGet: {
450
836
  * @category mutations
451
837
  */
452
838
  export declare const remove: {
839
+ /**
840
+ * Remove the entry for the specified key in the `Trie`.
841
+ *
842
+ * @example
843
+ * import { Trie, Option } from "effect"
844
+ *
845
+ * const trie = Trie.empty<number>().pipe(
846
+ * Trie.insert("call", 0),
847
+ * Trie.insert("me", 1),
848
+ * Trie.insert("mind", 2),
849
+ * Trie.insert("mid", 3)
850
+ * )
851
+ *
852
+ * const trie1 = trie.pipe(Trie.remove("call"))
853
+ * const trie2 = trie1.pipe(Trie.remove("mea"))
854
+ *
855
+ * assert.deepStrictEqual(Trie.get(trie, "call"), Option.some(0))
856
+ * assert.deepStrictEqual(Trie.get(trie1, "call"), Option.none())
857
+ * assert.deepStrictEqual(Trie.get(trie2, "call"), Option.none())
858
+ *
859
+ * @since 2.0.0
860
+ * @category mutations
861
+ */
453
862
  (key: string): <V>(self: Trie<V>) => Trie<V>;
863
+ /**
864
+ * Remove the entry for the specified key in the `Trie`.
865
+ *
866
+ * @example
867
+ * import { Trie, Option } from "effect"
868
+ *
869
+ * const trie = Trie.empty<number>().pipe(
870
+ * Trie.insert("call", 0),
871
+ * Trie.insert("me", 1),
872
+ * Trie.insert("mind", 2),
873
+ * Trie.insert("mid", 3)
874
+ * )
875
+ *
876
+ * const trie1 = trie.pipe(Trie.remove("call"))
877
+ * const trie2 = trie1.pipe(Trie.remove("mea"))
878
+ *
879
+ * assert.deepStrictEqual(Trie.get(trie, "call"), Option.some(0))
880
+ * assert.deepStrictEqual(Trie.get(trie1, "call"), Option.none())
881
+ * assert.deepStrictEqual(Trie.get(trie2, "call"), Option.none())
882
+ *
883
+ * @since 2.0.0
884
+ * @category mutations
885
+ */
454
886
  <V>(self: Trie<V>, key: string): Trie<V>;
455
887
  };
456
888
  /**
@@ -488,7 +920,75 @@ export declare const remove: {
488
920
  * @category folding
489
921
  */
490
922
  export declare const reduce: {
923
+ /**
924
+ * Reduce a state over the entries of the `Trie`.
925
+ *
926
+ * @example
927
+ * import { Trie } from "effect"
928
+ *
929
+ * const trie = Trie.empty<number>().pipe(
930
+ * Trie.insert("shells", 0),
931
+ * Trie.insert("sells", 1),
932
+ * Trie.insert("she", 2)
933
+ * )
934
+ *
935
+ * assert.equal(
936
+ * trie.pipe(
937
+ * Trie.reduce(0, (acc, n) => acc + n)
938
+ * ),
939
+ * 3
940
+ * )
941
+ * assert.equal(
942
+ * trie.pipe(
943
+ * Trie.reduce(10, (acc, n) => acc + n)
944
+ * ),
945
+ * 13
946
+ * )
947
+ * assert.equal(
948
+ * trie.pipe(
949
+ * Trie.reduce("", (acc, _, key) => acc + key)
950
+ * ),
951
+ * "sellssheshells"
952
+ * )
953
+ *
954
+ * @since 2.0.0
955
+ * @category folding
956
+ */
491
957
  <Z, V>(zero: Z, f: (accumulator: Z, value: V, key: string) => Z): (self: Trie<V>) => Z;
958
+ /**
959
+ * Reduce a state over the entries of the `Trie`.
960
+ *
961
+ * @example
962
+ * import { Trie } from "effect"
963
+ *
964
+ * const trie = Trie.empty<number>().pipe(
965
+ * Trie.insert("shells", 0),
966
+ * Trie.insert("sells", 1),
967
+ * Trie.insert("she", 2)
968
+ * )
969
+ *
970
+ * assert.equal(
971
+ * trie.pipe(
972
+ * Trie.reduce(0, (acc, n) => acc + n)
973
+ * ),
974
+ * 3
975
+ * )
976
+ * assert.equal(
977
+ * trie.pipe(
978
+ * Trie.reduce(10, (acc, n) => acc + n)
979
+ * ),
980
+ * 13
981
+ * )
982
+ * assert.equal(
983
+ * trie.pipe(
984
+ * Trie.reduce("", (acc, _, key) => acc + key)
985
+ * ),
986
+ * "sellssheshells"
987
+ * )
988
+ *
989
+ * @since 2.0.0
990
+ * @category folding
991
+ */
492
992
  <Z, V>(self: Trie<V>, zero: Z, f: (accumulator: Z, value: V, key: string) => Z): Z;
493
993
  };
494
994
  /**
@@ -522,7 +1022,67 @@ export declare const reduce: {
522
1022
  * @category folding
523
1023
  */
524
1024
  export declare const map: {
1025
+ /**
1026
+ * Maps over the entries of the `Trie` using the specified function.
1027
+ *
1028
+ * @example
1029
+ * import { Trie, Equal } from "effect"
1030
+ *
1031
+ * const trie = Trie.empty<number>().pipe(
1032
+ * Trie.insert("shells", 0),
1033
+ * Trie.insert("sells", 1),
1034
+ * Trie.insert("she", 2)
1035
+ * )
1036
+ *
1037
+ * const trieMapV = Trie.empty<number>().pipe(
1038
+ * Trie.insert("shells", 1),
1039
+ * Trie.insert("sells", 2),
1040
+ * Trie.insert("she", 3)
1041
+ * )
1042
+ *
1043
+ * const trieMapK = Trie.empty<number>().pipe(
1044
+ * Trie.insert("shells", 6),
1045
+ * Trie.insert("sells", 5),
1046
+ * Trie.insert("she", 3)
1047
+ * )
1048
+ *
1049
+ * assert.equal(Equal.equals(Trie.map(trie, (v) => v + 1), trieMapV), true)
1050
+ * assert.equal(Equal.equals(Trie.map(trie, (_, k) => k.length), trieMapK), true)
1051
+ *
1052
+ * @since 2.0.0
1053
+ * @category folding
1054
+ */
525
1055
  <A, V>(f: (value: V, key: string) => A): (self: Trie<V>) => Trie<A>;
1056
+ /**
1057
+ * Maps over the entries of the `Trie` using the specified function.
1058
+ *
1059
+ * @example
1060
+ * import { Trie, Equal } from "effect"
1061
+ *
1062
+ * const trie = Trie.empty<number>().pipe(
1063
+ * Trie.insert("shells", 0),
1064
+ * Trie.insert("sells", 1),
1065
+ * Trie.insert("she", 2)
1066
+ * )
1067
+ *
1068
+ * const trieMapV = Trie.empty<number>().pipe(
1069
+ * Trie.insert("shells", 1),
1070
+ * Trie.insert("sells", 2),
1071
+ * Trie.insert("she", 3)
1072
+ * )
1073
+ *
1074
+ * const trieMapK = Trie.empty<number>().pipe(
1075
+ * Trie.insert("shells", 6),
1076
+ * Trie.insert("sells", 5),
1077
+ * Trie.insert("she", 3)
1078
+ * )
1079
+ *
1080
+ * assert.equal(Equal.equals(Trie.map(trie, (v) => v + 1), trieMapV), true)
1081
+ * assert.equal(Equal.equals(Trie.map(trie, (_, k) => k.length), trieMapK), true)
1082
+ *
1083
+ * @since 2.0.0
1084
+ * @category folding
1085
+ */
526
1086
  <V, A>(self: Trie<V>, f: (value: V, key: string) => A): Trie<A>;
527
1087
  };
528
1088
  /**
@@ -553,9 +1113,117 @@ export declare const map: {
553
1113
  * @category filtering
554
1114
  */
555
1115
  export declare const filter: {
1116
+ /**
1117
+ * Filters entries out of a `Trie` using the specified predicate.
1118
+ *
1119
+ * @example
1120
+ * import { Trie, Equal } from "effect"
1121
+ *
1122
+ * const trie = Trie.empty<number>().pipe(
1123
+ * Trie.insert("shells", 0),
1124
+ * Trie.insert("sells", 1),
1125
+ * Trie.insert("she", 2)
1126
+ * )
1127
+ *
1128
+ * const trieMapV = Trie.empty<number>().pipe(
1129
+ * Trie.insert("she", 2)
1130
+ * )
1131
+ *
1132
+ * const trieMapK = Trie.empty<number>().pipe(
1133
+ * Trie.insert("shells", 0),
1134
+ * Trie.insert("sells", 1)
1135
+ * )
1136
+ *
1137
+ * assert.equal(Equal.equals(Trie.filter(trie, (v) => v > 1), trieMapV), true)
1138
+ * assert.equal(Equal.equals(Trie.filter(trie, (_, k) => k.length > 3), trieMapK), true)
1139
+ *
1140
+ * @since 2.0.0
1141
+ * @category filtering
1142
+ */
556
1143
  <A, B extends A>(f: (a: NoInfer<A>, k: string) => a is B): (self: Trie<A>) => Trie<B>;
1144
+ /**
1145
+ * Filters entries out of a `Trie` using the specified predicate.
1146
+ *
1147
+ * @example
1148
+ * import { Trie, Equal } from "effect"
1149
+ *
1150
+ * const trie = Trie.empty<number>().pipe(
1151
+ * Trie.insert("shells", 0),
1152
+ * Trie.insert("sells", 1),
1153
+ * Trie.insert("she", 2)
1154
+ * )
1155
+ *
1156
+ * const trieMapV = Trie.empty<number>().pipe(
1157
+ * Trie.insert("she", 2)
1158
+ * )
1159
+ *
1160
+ * const trieMapK = Trie.empty<number>().pipe(
1161
+ * Trie.insert("shells", 0),
1162
+ * Trie.insert("sells", 1)
1163
+ * )
1164
+ *
1165
+ * assert.equal(Equal.equals(Trie.filter(trie, (v) => v > 1), trieMapV), true)
1166
+ * assert.equal(Equal.equals(Trie.filter(trie, (_, k) => k.length > 3), trieMapK), true)
1167
+ *
1168
+ * @since 2.0.0
1169
+ * @category filtering
1170
+ */
557
1171
  <A>(f: (a: NoInfer<A>, k: string) => boolean): (self: Trie<A>) => Trie<A>;
1172
+ /**
1173
+ * Filters entries out of a `Trie` using the specified predicate.
1174
+ *
1175
+ * @example
1176
+ * import { Trie, Equal } from "effect"
1177
+ *
1178
+ * const trie = Trie.empty<number>().pipe(
1179
+ * Trie.insert("shells", 0),
1180
+ * Trie.insert("sells", 1),
1181
+ * Trie.insert("she", 2)
1182
+ * )
1183
+ *
1184
+ * const trieMapV = Trie.empty<number>().pipe(
1185
+ * Trie.insert("she", 2)
1186
+ * )
1187
+ *
1188
+ * const trieMapK = Trie.empty<number>().pipe(
1189
+ * Trie.insert("shells", 0),
1190
+ * Trie.insert("sells", 1)
1191
+ * )
1192
+ *
1193
+ * assert.equal(Equal.equals(Trie.filter(trie, (v) => v > 1), trieMapV), true)
1194
+ * assert.equal(Equal.equals(Trie.filter(trie, (_, k) => k.length > 3), trieMapK), true)
1195
+ *
1196
+ * @since 2.0.0
1197
+ * @category filtering
1198
+ */
558
1199
  <A, B extends A>(self: Trie<A>, f: (a: A, k: string) => a is B): Trie<B>;
1200
+ /**
1201
+ * Filters entries out of a `Trie` using the specified predicate.
1202
+ *
1203
+ * @example
1204
+ * import { Trie, Equal } from "effect"
1205
+ *
1206
+ * const trie = Trie.empty<number>().pipe(
1207
+ * Trie.insert("shells", 0),
1208
+ * Trie.insert("sells", 1),
1209
+ * Trie.insert("she", 2)
1210
+ * )
1211
+ *
1212
+ * const trieMapV = Trie.empty<number>().pipe(
1213
+ * Trie.insert("she", 2)
1214
+ * )
1215
+ *
1216
+ * const trieMapK = Trie.empty<number>().pipe(
1217
+ * Trie.insert("shells", 0),
1218
+ * Trie.insert("sells", 1)
1219
+ * )
1220
+ *
1221
+ * assert.equal(Equal.equals(Trie.filter(trie, (v) => v > 1), trieMapV), true)
1222
+ * assert.equal(Equal.equals(Trie.filter(trie, (_, k) => k.length > 3), trieMapK), true)
1223
+ *
1224
+ * @since 2.0.0
1225
+ * @category filtering
1226
+ */
559
1227
  <A>(self: Trie<A>, f: (a: A, k: string) => boolean): Trie<A>;
560
1228
  };
561
1229
  /**
@@ -590,7 +1258,69 @@ export declare const filter: {
590
1258
  * @category filtering
591
1259
  */
592
1260
  export declare const filterMap: {
1261
+ /**
1262
+ * Maps over the entries of the `Trie` using the specified partial function
1263
+ * and filters out `None` values.
1264
+ *
1265
+ * @example
1266
+ * import { Trie, Equal, Option } from "effect"
1267
+ *
1268
+ * const trie = Trie.empty<number>().pipe(
1269
+ * Trie.insert("shells", 0),
1270
+ * Trie.insert("sells", 1),
1271
+ * Trie.insert("she", 2)
1272
+ * )
1273
+ *
1274
+ * const trieMapV = Trie.empty<number>().pipe(
1275
+ * Trie.insert("she", 2)
1276
+ * )
1277
+ *
1278
+ * const trieMapK = Trie.empty<number>().pipe(
1279
+ * Trie.insert("shells", 0),
1280
+ * Trie.insert("sells", 1)
1281
+ * )
1282
+ *
1283
+ * assert.equal(Equal.equals(Trie.filterMap(trie, (v) => v > 1 ? Option.some(v) : Option.none()), trieMapV), true)
1284
+ * assert.equal(
1285
+ * Equal.equals(Trie.filterMap(trie, (v, k) => k.length > 3 ? Option.some(v) : Option.none()), trieMapK),
1286
+ * true
1287
+ * )
1288
+ *
1289
+ * @since 2.0.0
1290
+ * @category filtering
1291
+ */
593
1292
  <A, B>(f: (value: A, key: string) => Option<B>): (self: Trie<A>) => Trie<B>;
1293
+ /**
1294
+ * Maps over the entries of the `Trie` using the specified partial function
1295
+ * and filters out `None` values.
1296
+ *
1297
+ * @example
1298
+ * import { Trie, Equal, Option } from "effect"
1299
+ *
1300
+ * const trie = Trie.empty<number>().pipe(
1301
+ * Trie.insert("shells", 0),
1302
+ * Trie.insert("sells", 1),
1303
+ * Trie.insert("she", 2)
1304
+ * )
1305
+ *
1306
+ * const trieMapV = Trie.empty<number>().pipe(
1307
+ * Trie.insert("she", 2)
1308
+ * )
1309
+ *
1310
+ * const trieMapK = Trie.empty<number>().pipe(
1311
+ * Trie.insert("shells", 0),
1312
+ * Trie.insert("sells", 1)
1313
+ * )
1314
+ *
1315
+ * assert.equal(Equal.equals(Trie.filterMap(trie, (v) => v > 1 ? Option.some(v) : Option.none()), trieMapV), true)
1316
+ * assert.equal(
1317
+ * Equal.equals(Trie.filterMap(trie, (v, k) => k.length > 3 ? Option.some(v) : Option.none()), trieMapK),
1318
+ * true
1319
+ * )
1320
+ *
1321
+ * @since 2.0.0
1322
+ * @category filtering
1323
+ */
594
1324
  <A, B>(self: Trie<A>, f: (value: A, key: string) => Option<B>): Trie<B>;
595
1325
  };
596
1326
  /**
@@ -639,7 +1369,51 @@ export declare const compact: <A>(self: Trie<Option<A>>) => Trie<A>;
639
1369
  * @category traversing
640
1370
  */
641
1371
  export declare const forEach: {
1372
+ /**
1373
+ * Applies the specified function to the entries of the `Trie`.
1374
+ *
1375
+ * @example
1376
+ * import { Trie } from "effect"
1377
+ *
1378
+ * let value = 0
1379
+ *
1380
+ * Trie.empty<number>().pipe(
1381
+ * Trie.insert("shells", 0),
1382
+ * Trie.insert("sells", 1),
1383
+ * Trie.insert("she", 2),
1384
+ * Trie.forEach((n, key) => {
1385
+ * value += n + key.length
1386
+ * })
1387
+ * )
1388
+ *
1389
+ * assert.equal(value, 17)
1390
+ *
1391
+ * @since 2.0.0
1392
+ * @category traversing
1393
+ */
642
1394
  <V>(f: (value: V, key: string) => void): (self: Trie<V>) => void;
1395
+ /**
1396
+ * Applies the specified function to the entries of the `Trie`.
1397
+ *
1398
+ * @example
1399
+ * import { Trie } from "effect"
1400
+ *
1401
+ * let value = 0
1402
+ *
1403
+ * Trie.empty<number>().pipe(
1404
+ * Trie.insert("shells", 0),
1405
+ * Trie.insert("sells", 1),
1406
+ * Trie.insert("she", 2),
1407
+ * Trie.forEach((n, key) => {
1408
+ * value += n + key.length
1409
+ * })
1410
+ * )
1411
+ *
1412
+ * assert.equal(value, 17)
1413
+ *
1414
+ * @since 2.0.0
1415
+ * @category traversing
1416
+ */
643
1417
  <V>(self: Trie<V>, f: (value: V, key: string) => void): void;
644
1418
  };
645
1419
  /**
@@ -662,7 +1436,45 @@ export declare const forEach: {
662
1436
  * @category mutations
663
1437
  */
664
1438
  export declare const modify: {
1439
+ /**
1440
+ * Updates the value of the specified key within the `Trie` if it exists.
1441
+ *
1442
+ * @example
1443
+ * import { Trie, Equal, Option } from "effect"
1444
+ *
1445
+ * const trie = Trie.empty<number>().pipe(
1446
+ * Trie.insert("shells", 0),
1447
+ * Trie.insert("sells", 1),
1448
+ * Trie.insert("she", 2)
1449
+ * )
1450
+ *
1451
+ * assert.deepStrictEqual(trie.pipe(Trie.modify("she", (v) => v + 10), Trie.get("she")), Option.some(12))
1452
+ *
1453
+ * assert.equal(Equal.equals(trie.pipe(Trie.modify("me", (v) => v)), trie), true)
1454
+ *
1455
+ * @since 2.0.0
1456
+ * @category mutations
1457
+ */
665
1458
  <V>(key: string, f: (v: V) => V): (self: Trie<V>) => Trie<V>;
1459
+ /**
1460
+ * Updates the value of the specified key within the `Trie` if it exists.
1461
+ *
1462
+ * @example
1463
+ * import { Trie, Equal, Option } from "effect"
1464
+ *
1465
+ * const trie = Trie.empty<number>().pipe(
1466
+ * Trie.insert("shells", 0),
1467
+ * Trie.insert("sells", 1),
1468
+ * Trie.insert("she", 2)
1469
+ * )
1470
+ *
1471
+ * assert.deepStrictEqual(trie.pipe(Trie.modify("she", (v) => v + 10), Trie.get("she")), Option.some(12))
1472
+ *
1473
+ * assert.equal(Equal.equals(trie.pipe(Trie.modify("me", (v) => v)), trie), true)
1474
+ *
1475
+ * @since 2.0.0
1476
+ * @category mutations
1477
+ */
666
1478
  <V>(self: Trie<V>, key: string, f: (v: V) => V): Trie<V>;
667
1479
  };
668
1480
  /**
@@ -686,7 +1498,47 @@ export declare const modify: {
686
1498
  * @category mutations
687
1499
  */
688
1500
  export declare const removeMany: {
1501
+ /**
1502
+ * Removes all entries in the `Trie` which have the specified keys.
1503
+ *
1504
+ * @example
1505
+ * import { Trie, Equal } from "effect"
1506
+ *
1507
+ * const trie = Trie.empty<number>().pipe(
1508
+ * Trie.insert("shells", 0),
1509
+ * Trie.insert("sells", 1),
1510
+ * Trie.insert("she", 2)
1511
+ * )
1512
+ *
1513
+ * assert.equal(
1514
+ * Equal.equals(trie.pipe(Trie.removeMany(["she", "sells"])), Trie.empty<number>().pipe(Trie.insert("shells", 0))),
1515
+ * true
1516
+ * )
1517
+ *
1518
+ * @since 2.0.0
1519
+ * @category mutations
1520
+ */
689
1521
  (keys: Iterable<string>): <V>(self: Trie<V>) => Trie<V>;
1522
+ /**
1523
+ * Removes all entries in the `Trie` which have the specified keys.
1524
+ *
1525
+ * @example
1526
+ * import { Trie, Equal } from "effect"
1527
+ *
1528
+ * const trie = Trie.empty<number>().pipe(
1529
+ * Trie.insert("shells", 0),
1530
+ * Trie.insert("sells", 1),
1531
+ * Trie.insert("she", 2)
1532
+ * )
1533
+ *
1534
+ * assert.equal(
1535
+ * Equal.equals(trie.pipe(Trie.removeMany(["she", "sells"])), Trie.empty<number>().pipe(Trie.insert("shells", 0))),
1536
+ * true
1537
+ * )
1538
+ *
1539
+ * @since 2.0.0
1540
+ * @category mutations
1541
+ */
690
1542
  <V>(self: Trie<V>, keys: Iterable<string>): Trie<V>;
691
1543
  };
692
1544
  /**
@@ -717,7 +1569,61 @@ export declare const removeMany: {
717
1569
  * @category mutations
718
1570
  */
719
1571
  export declare const insertMany: {
1572
+ /**
1573
+ * Insert multiple entries in the `Trie` at once.
1574
+ *
1575
+ * @example
1576
+ * import { Trie, Equal } from "effect"
1577
+ *
1578
+ * const trie = Trie.empty<number>().pipe(
1579
+ * Trie.insert("shells", 0),
1580
+ * Trie.insert("sells", 1),
1581
+ * Trie.insert("she", 2)
1582
+ * )
1583
+ *
1584
+ * const trieInsert = Trie.empty<number>().pipe(
1585
+ * Trie.insert("shells", 0),
1586
+ * Trie.insertMany(
1587
+ * [["sells", 1], ["she", 2]]
1588
+ * )
1589
+ * )
1590
+ *
1591
+ * assert.equal(
1592
+ * Equal.equals(trie, trieInsert),
1593
+ * true
1594
+ * )
1595
+ *
1596
+ * @since 2.0.0
1597
+ * @category mutations
1598
+ */
720
1599
  <V>(iter: Iterable<[string, V]>): (self: Trie<V>) => Trie<V>;
1600
+ /**
1601
+ * Insert multiple entries in the `Trie` at once.
1602
+ *
1603
+ * @example
1604
+ * import { Trie, Equal } from "effect"
1605
+ *
1606
+ * const trie = Trie.empty<number>().pipe(
1607
+ * Trie.insert("shells", 0),
1608
+ * Trie.insert("sells", 1),
1609
+ * Trie.insert("she", 2)
1610
+ * )
1611
+ *
1612
+ * const trieInsert = Trie.empty<number>().pipe(
1613
+ * Trie.insert("shells", 0),
1614
+ * Trie.insertMany(
1615
+ * [["sells", 1], ["she", 2]]
1616
+ * )
1617
+ * )
1618
+ *
1619
+ * assert.equal(
1620
+ * Equal.equals(trie, trieInsert),
1621
+ * true
1622
+ * )
1623
+ *
1624
+ * @since 2.0.0
1625
+ * @category mutations
1626
+ */
721
1627
  <V>(self: Trie<V>, iter: Iterable<[string, V]>): Trie<V>;
722
1628
  };
723
1629
  export {};