@fncts/base 0.0.20 → 0.0.21

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 (975) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +8 -8
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/Iterable/api.cjs +497 -444
  4. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  5. package/_cjs/collection/Iterable/constructors.cjs +7 -7
  6. package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
  7. package/_cjs/collection/compat/Array/api.cjs +16 -12
  8. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  9. package/_cjs/collection/compat/Array/derivations.cjs +41 -19
  10. package/_cjs/collection/compat/Array/derivations.cjs.map +1 -1
  11. package/_cjs/collection/compat/ArrayLike/api.cjs +1 -1
  12. package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
  13. package/_cjs/collection/compat/Record/instances.cjs +39 -3
  14. package/_cjs/collection/compat/Record/instances.cjs.map +1 -1
  15. package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -1
  16. package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
  17. package/_cjs/collection/immutable/Conc/api.cjs +866 -765
  18. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  19. package/_cjs/collection/immutable/Conc/definition.cjs +55 -53
  20. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  21. package/_cjs/collection/immutable/Conc/derivations.cjs +13 -2
  22. package/_cjs/collection/immutable/Conc/derivations.cjs.map +1 -1
  23. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  24. package/_cjs/collection/immutable/Dictionary/api.cjs +57 -44
  25. package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
  26. package/_cjs/collection/immutable/HashMap/api.cjs +351 -258
  27. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  28. package/_cjs/collection/immutable/HashMap/definition.cjs +1 -1
  29. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  30. package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
  31. package/_cjs/collection/immutable/HashSet/api.cjs +230 -192
  32. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  33. package/_cjs/collection/immutable/HashSet/definition.cjs +1 -1
  34. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  35. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +6 -4
  36. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +1 -1
  37. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +6 -4
  38. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +1 -1
  39. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +6 -4
  40. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +1 -1
  41. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +15 -13
  42. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +1 -1
  43. package/_cjs/collection/immutable/ImmutableArray/api.cjs +943 -749
  44. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  45. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs +12 -1
  46. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs.map +1 -1
  47. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +33 -33
  48. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  49. package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
  50. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +338 -273
  51. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  52. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +1 -1
  53. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  54. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs +15 -4
  55. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs.map +1 -1
  56. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +2 -2
  57. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +1 -1
  58. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +12 -12
  59. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  60. package/_cjs/collection/immutable/List/api/foldLeft.cjs +12 -10
  61. package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
  62. package/_cjs/collection/immutable/List/api.cjs +164 -141
  63. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  64. package/_cjs/collection/immutable/List.cjs.map +1 -1
  65. package/_cjs/collection/immutable/Queue/api.cjs +64 -48
  66. package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
  67. package/_cjs/collection/immutable/Queue/definition.cjs +1 -1
  68. package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
  69. package/_cjs/collection/immutable/RoseTree/api.cjs +50 -36
  70. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
  71. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  72. package/_cjs/collection/immutable/SortedMap/api.cjs +408 -368
  73. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  74. package/_cjs/collection/immutable/Vector/api.cjs +723 -608
  75. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  76. package/_cjs/collection/immutable/Vector/definition.cjs +18 -16
  77. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  78. package/_cjs/collection/immutable/Vector/internal.cjs +40 -39
  79. package/_cjs/collection/immutable/Vector/internal.cjs.map +1 -1
  80. package/_cjs/collection/mutable/HashMap.cjs +3 -5
  81. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  82. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  83. package/_cjs/collection/mutable/ListBuffer.cjs +2 -2
  84. package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
  85. package/_cjs/collection/mutable/internal.cjs +0 -2
  86. package/_cjs/collection/mutable/internal.cjs.map +1 -1
  87. package/_cjs/collection/weak/IterableWeakMap.cjs +7 -7
  88. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  89. package/_cjs/collection/weak/IterableWeakSet.cjs +7 -7
  90. package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
  91. package/_cjs/control/Eval/api.cjs +55 -43
  92. package/_cjs/control/Eval/api.cjs.map +1 -1
  93. package/_cjs/control/Eval/instance.cjs +4 -4
  94. package/_cjs/control/Eval/instance.cjs.map +1 -1
  95. package/_cjs/control/Eval/run.cjs +1 -1
  96. package/_cjs/control/Eval/run.cjs.map +1 -1
  97. package/_cjs/control/Z/api.cjs +241 -172
  98. package/_cjs/control/Z/api.cjs.map +1 -1
  99. package/_cjs/control/Z/instances.cjs +3 -3
  100. package/_cjs/control/Z/instances.cjs.map +1 -1
  101. package/_cjs/control/Z/runtime.cjs +250 -241
  102. package/_cjs/control/Z/runtime.cjs.map +1 -1
  103. package/_cjs/data/Branded/definition.cjs.map +1 -1
  104. package/_cjs/data/Branded/derivations.cjs +3 -3
  105. package/_cjs/data/Branded/derivations.cjs.map +1 -1
  106. package/_cjs/data/CaseClass.cjs.map +1 -1
  107. package/_cjs/data/Cause/api/fold.cjs +20 -18
  108. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  109. package/_cjs/data/Cause/api/isEmpty.cjs +1 -1
  110. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  111. package/_cjs/data/Cause/api/linearize.cjs +8 -8
  112. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  113. package/_cjs/data/Cause/api/prettyPrint.cjs +1 -1
  114. package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
  115. package/_cjs/data/Cause/api.cjs +160 -140
  116. package/_cjs/data/Cause/api.cjs.map +1 -1
  117. package/_cjs/data/Cause/definition.cjs +18 -18
  118. package/_cjs/data/Cause/definition.cjs.map +1 -1
  119. package/_cjs/data/Cause.cjs.map +1 -1
  120. package/_cjs/data/Const/api.cjs +8 -6
  121. package/_cjs/data/Const/api.cjs.map +1 -1
  122. package/_cjs/data/Const/instances.cjs +4 -4
  123. package/_cjs/data/Const/instances.cjs.map +1 -1
  124. package/_cjs/data/Datum/api.cjs +219 -176
  125. package/_cjs/data/Datum/api.cjs.map +1 -1
  126. package/_cjs/data/Datum/definition.cjs.map +1 -1
  127. package/_cjs/data/DatumEither/api.cjs +165 -133
  128. package/_cjs/data/DatumEither/api.cjs.map +1 -1
  129. package/_cjs/data/DecodeError/definition.cjs +14 -14
  130. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  131. package/_cjs/data/Decoder/api.cjs +9 -7
  132. package/_cjs/data/Decoder/api.cjs.map +1 -1
  133. package/_cjs/data/Duration/api.cjs +18 -12
  134. package/_cjs/data/Duration/api.cjs.map +1 -1
  135. package/_cjs/data/Either/api/align.cjs +8 -3
  136. package/_cjs/data/Either/api/align.cjs.map +1 -1
  137. package/_cjs/data/Either/api/alignWith.cjs +14 -12
  138. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  139. package/_cjs/data/Either/api.cjs +206 -169
  140. package/_cjs/data/Either/api.cjs.map +1 -1
  141. package/_cjs/data/Either/constructors.cjs +11 -9
  142. package/_cjs/data/Either/constructors.cjs.map +1 -1
  143. package/_cjs/data/Either/destructors.cjs +16 -14
  144. package/_cjs/data/Either/destructors.cjs.map +1 -1
  145. package/_cjs/data/Either/instances.cjs +8 -8
  146. package/_cjs/data/Either/instances.cjs.map +1 -1
  147. package/_cjs/data/EitherT/api.cjs +8 -8
  148. package/_cjs/data/EitherT/api.cjs.map +1 -1
  149. package/_cjs/data/Encoder/api.cjs +134 -0
  150. package/_cjs/data/Encoder/api.cjs.map +1 -0
  151. package/_cjs/data/Encoder/definition.cjs +25 -0
  152. package/_cjs/data/Encoder/definition.cjs.map +1 -0
  153. package/_cjs/data/Encoder.cjs +32 -0
  154. package/_cjs/data/Encoder.cjs.map +1 -0
  155. package/_cjs/data/Environment/api.cjs +45 -33
  156. package/_cjs/data/Environment/api.cjs.map +1 -1
  157. package/_cjs/data/EnvironmentPatch.cjs +17 -13
  158. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  159. package/_cjs/data/ExecutionStrategy.cjs +21 -29
  160. package/_cjs/data/ExecutionStrategy.cjs.map +1 -1
  161. package/_cjs/data/Exit/api.cjs +159 -127
  162. package/_cjs/data/Exit/api.cjs.map +1 -1
  163. package/_cjs/data/Exit/constructors.cjs +4 -4
  164. package/_cjs/data/Exit/constructors.cjs.map +1 -1
  165. package/_cjs/data/FiberId/api.cjs +23 -21
  166. package/_cjs/data/FiberId/api.cjs.map +1 -1
  167. package/_cjs/data/FiberId/constructors.cjs.map +1 -1
  168. package/_cjs/data/Identity/api.cjs +26 -18
  169. package/_cjs/data/Identity/api.cjs.map +1 -1
  170. package/_cjs/data/Identity/instances.cjs +3 -3
  171. package/_cjs/data/Identity/instances.cjs.map +1 -1
  172. package/_cjs/data/Interval.cjs +43 -33
  173. package/_cjs/data/Interval.cjs.map +1 -1
  174. package/_cjs/data/Intervals.cjs +35 -27
  175. package/_cjs/data/Intervals.cjs.map +1 -1
  176. package/_cjs/data/Maybe/api.cjs +160 -125
  177. package/_cjs/data/Maybe/api.cjs.map +1 -1
  178. package/_cjs/data/Maybe/constructors.cjs +2 -2
  179. package/_cjs/data/Maybe/constructors.cjs.map +1 -1
  180. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  181. package/_cjs/data/Maybe/destructors.cjs +9 -7
  182. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  183. package/_cjs/data/Maybe/instances.cjs +11 -11
  184. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  185. package/_cjs/data/Predicate/api.cjs +10 -8
  186. package/_cjs/data/Predicate/api.cjs.map +1 -1
  187. package/_cjs/data/Refinement/api.cjs +15 -9
  188. package/_cjs/data/Refinement/api.cjs.map +1 -1
  189. package/_cjs/data/Struct/api.cjs +62 -50
  190. package/_cjs/data/Struct/api.cjs.map +1 -1
  191. package/_cjs/data/Tag/constructors.cjs +3 -2
  192. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  193. package/_cjs/data/Tag/definition.cjs +0 -3
  194. package/_cjs/data/Tag/definition.cjs.map +1 -1
  195. package/_cjs/data/These/api.cjs +188 -170
  196. package/_cjs/data/These/api.cjs.map +1 -1
  197. package/_cjs/data/These/constructors.cjs +1 -1
  198. package/_cjs/data/These/constructors.cjs.map +1 -1
  199. package/_cjs/data/These/destructors.cjs +39 -35
  200. package/_cjs/data/These/destructors.cjs.map +1 -1
  201. package/_cjs/data/These/instances.cjs +1 -1
  202. package/_cjs/data/These/instances.cjs.map +1 -1
  203. package/_cjs/data/Trace/api.cjs +7 -5
  204. package/_cjs/data/Trace/api.cjs.map +1 -1
  205. package/_cjs/data/Zipped.cjs.map +1 -1
  206. package/_cjs/data/function/api.cjs +6 -4
  207. package/_cjs/data/function/api.cjs.map +1 -1
  208. package/_cjs/data/function/pipe.cjs +9 -0
  209. package/_cjs/data/function/pipe.cjs.map +1 -1
  210. package/_cjs/data/string/api.cjs +53 -96
  211. package/_cjs/data/string/api.cjs.map +1 -1
  212. package/_cjs/global/api.cjs +4 -2
  213. package/_cjs/global/api.cjs.map +1 -1
  214. package/_cjs/internal/AtomicBoolean.cjs.map +1 -1
  215. package/_cjs/internal/AtomicNumber.cjs.map +1 -1
  216. package/_cjs/internal/AtomicReference.cjs.map +1 -1
  217. package/_cjs/internal/Stack.cjs +2 -2
  218. package/_cjs/internal/Stack.cjs.map +1 -1
  219. package/_cjs/optics/At/api.cjs +1 -1
  220. package/_cjs/optics/At/api.cjs.map +1 -1
  221. package/_cjs/optics/At/definition.cjs +2 -2
  222. package/_cjs/optics/At/definition.cjs.map +1 -1
  223. package/_cjs/optics/Fold/definition.cjs +3 -4
  224. package/_cjs/optics/Fold/definition.cjs.map +1 -1
  225. package/_cjs/optics/Getter/definition.cjs +2 -3
  226. package/_cjs/optics/Getter/definition.cjs.map +1 -1
  227. package/_cjs/optics/Index/api.cjs +4 -4
  228. package/_cjs/optics/Index/api.cjs.map +1 -1
  229. package/_cjs/optics/Index/definition.cjs +2 -2
  230. package/_cjs/optics/Index/definition.cjs.map +1 -1
  231. package/_cjs/optics/Iso/api.cjs +9 -7
  232. package/_cjs/optics/Iso/api.cjs.map +1 -1
  233. package/_cjs/optics/Iso/definition.cjs +12 -12
  234. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  235. package/_cjs/optics/Lens/api.cjs +54 -44
  236. package/_cjs/optics/Lens/api.cjs.map +1 -1
  237. package/_cjs/optics/Lens/definition.cjs +10 -10
  238. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  239. package/_cjs/optics/Optional/api/compose.cjs +9 -7
  240. package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
  241. package/_cjs/optics/Optional/definition.cjs +12 -13
  242. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  243. package/_cjs/optics/Optional.cjs.map +1 -1
  244. package/_cjs/optics/Prism/api/compose.cjs +9 -7
  245. package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
  246. package/_cjs/optics/Prism/api/fromNullable.cjs +2 -2
  247. package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
  248. package/_cjs/optics/Prism/api/just.cjs +2 -2
  249. package/_cjs/optics/Prism/api/just.cjs.map +1 -1
  250. package/_cjs/optics/Prism/definition.cjs +9 -9
  251. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  252. package/_cjs/optics/Prism.cjs.map +1 -1
  253. package/_cjs/optics/Setter/definition.cjs +8 -13
  254. package/_cjs/optics/Setter/definition.cjs.map +1 -1
  255. package/_cjs/optics/Traversal/api/compose.cjs +8 -6
  256. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  257. package/_cjs/optics/Traversal/api/fromTraversable.cjs +2 -2
  258. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  259. package/_cjs/optics/Traversal/definition.cjs +12 -12
  260. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  261. package/_cjs/optics/Traversal.cjs.map +1 -1
  262. package/_cjs/typeclass/Align.cjs.map +1 -1
  263. package/_cjs/typeclass/Alt.cjs.map +1 -1
  264. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  265. package/_cjs/typeclass/ApplicativeExcept.cjs +5 -10
  266. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  267. package/_cjs/typeclass/Apply.cjs +8 -8
  268. package/_cjs/typeclass/Apply.cjs.map +1 -1
  269. package/_cjs/typeclass/Chain.cjs +4 -4
  270. package/_cjs/typeclass/Chain.cjs.map +1 -1
  271. package/_cjs/typeclass/Eq/definition.cjs.map +1 -1
  272. package/_cjs/typeclass/Eq/derivations.cjs.map +1 -1
  273. package/_cjs/typeclass/Equatable/api.cjs.map +1 -1
  274. package/_cjs/typeclass/Equatable/definition.cjs.map +1 -1
  275. package/_cjs/typeclass/Equatable/fast-equals.cjs.map +1 -1
  276. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  277. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  278. package/_cjs/typeclass/Foldable.cjs +1 -1
  279. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  280. package/_cjs/typeclass/FoldableWithIndex.cjs +1 -1
  281. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  282. package/_cjs/typeclass/Functor.cjs.map +1 -1
  283. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  284. package/_cjs/typeclass/Guard/api.cjs +18 -10
  285. package/_cjs/typeclass/Guard/api.cjs.map +1 -1
  286. package/_cjs/typeclass/Guard/definition.cjs.map +1 -1
  287. package/_cjs/typeclass/Guard/derivations.cjs.map +1 -1
  288. package/_cjs/typeclass/Has.cjs +7 -5
  289. package/_cjs/typeclass/Has.cjs.map +1 -1
  290. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  291. package/_cjs/typeclass/Hashable/definition.cjs.map +1 -1
  292. package/_cjs/typeclass/Hashable/hash.cjs.map +1 -1
  293. package/_cjs/typeclass/MonadExcept.cjs +1 -1
  294. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  295. package/_cjs/typeclass/Ord/api/contramap.cjs +7 -5
  296. package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
  297. package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
  298. package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
  299. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  300. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  301. package/_cjs/typeclass/Ordering.cjs.map +1 -1
  302. package/_cjs/typeclass/Semialign.cjs +7 -7
  303. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  304. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  305. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  306. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
  307. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  308. package/_cjs/typeclass/Showable/definition.cjs.map +1 -1
  309. package/_cjs/typeclass/Showable/show.cjs +107 -107
  310. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  311. package/_cjs/typeclass/Showable/styles.cjs.map +1 -1
  312. package/_cjs/typeclass/Showable/util.cjs +1 -1
  313. package/_cjs/typeclass/Showable/util.cjs.map +1 -1
  314. package/_cjs/typeclass/Traversable.cjs +1 -2
  315. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  316. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  317. package/_cjs/typeclass/Witherable.cjs +3 -1
  318. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  319. package/_cjs/typeclass/WitherableWithIndex.cjs +3 -1
  320. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  321. package/_cjs/util/AnsiFormat.cjs +11 -11
  322. package/_cjs/util/AnsiFormat.cjs.map +1 -1
  323. package/_cjs/util/PCGRandom.cjs.map +1 -1
  324. package/_cjs/util/assert.cjs.map +1 -1
  325. package/_cjs/util/pattern.cjs.map +1 -1
  326. package/_cjs/util/predicates.cjs.map +1 -1
  327. package/_cjs/util/rand/Random.cjs.map +1 -1
  328. package/_cjs/util/rand/distribution/UniformArrayIntDistribution.cjs.map +1 -1
  329. package/_cjs/util/rand/distribution/UniformBigIntDistribution.cjs.map +1 -1
  330. package/_cjs/util/rand/distribution/UniformIntDistribution.cjs.map +1 -1
  331. package/_cjs/util/rand/distribution/internals/ArrayInt.cjs.map +1 -1
  332. package/_cjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.cjs.map +1 -1
  333. package/_cjs/util/rand/distribution/internals/UniformIntDistributionInternal.cjs.map +1 -1
  334. package/_cjs/util/rand/generator/MersenneTwister.cjs.map +1 -1
  335. package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
  336. package/_cjs/util/rand.cjs.map +1 -1
  337. package/_mjs/collection/Iterable/api/traverseConc.mjs +5 -5
  338. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  339. package/_mjs/collection/Iterable/api.mjs +465 -411
  340. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  341. package/_mjs/collection/Iterable/constructors.mjs +5 -5
  342. package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
  343. package/_mjs/collection/compat/Array/api.mjs +16 -12
  344. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  345. package/_mjs/collection/compat/Array/derivations.mjs +35 -19
  346. package/_mjs/collection/compat/Array/derivations.mjs.map +1 -1
  347. package/_mjs/collection/compat/ArrayLike/api.mjs +1 -1
  348. package/_mjs/collection/compat/ArrayLike/api.mjs.map +1 -1
  349. package/_mjs/collection/compat/Record/instances.mjs +34 -3
  350. package/_mjs/collection/compat/Record/instances.mjs.map +1 -1
  351. package/_mjs/collection/immutable/Conc/api/makeBy.mjs +1 -1
  352. package/_mjs/collection/immutable/Conc/api/makeBy.mjs.map +1 -1
  353. package/_mjs/collection/immutable/Conc/api.mjs +795 -697
  354. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  355. package/_mjs/collection/immutable/Conc/definition.mjs +53 -51
  356. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  357. package/_mjs/collection/immutable/Conc/derivations.mjs +10 -2
  358. package/_mjs/collection/immutable/Conc/derivations.mjs.map +1 -1
  359. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  360. package/_mjs/collection/immutable/Dictionary/api.mjs +47 -35
  361. package/_mjs/collection/immutable/Dictionary/api.mjs.map +1 -1
  362. package/_mjs/collection/immutable/HashMap/api.mjs +295 -217
  363. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  364. package/_mjs/collection/immutable/HashMap/definition.mjs +1 -1
  365. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  366. package/_mjs/collection/immutable/HashMap/internal.mjs.map +1 -1
  367. package/_mjs/collection/immutable/HashSet/api.mjs +206 -168
  368. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  369. package/_mjs/collection/immutable/HashSet/definition.mjs +1 -1
  370. package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
  371. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs +5 -3
  372. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +1 -1
  373. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +5 -3
  374. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +1 -1
  375. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +5 -3
  376. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +1 -1
  377. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +13 -11
  378. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +1 -1
  379. package/_mjs/collection/immutable/ImmutableArray/api.mjs +816 -629
  380. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  381. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs +9 -1
  382. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs.map +1 -1
  383. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +34 -34
  384. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  385. package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
  386. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +301 -239
  387. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  388. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +1 -1
  389. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  390. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs +12 -4
  391. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs.map +1 -1
  392. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +2 -2
  393. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +1 -1
  394. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +13 -13
  395. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  396. package/_mjs/collection/immutable/List/api/foldLeft.mjs +11 -9
  397. package/_mjs/collection/immutable/List/api/foldLeft.mjs.map +1 -1
  398. package/_mjs/collection/immutable/List/api.mjs +157 -133
  399. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  400. package/_mjs/collection/immutable/List.mjs.map +1 -1
  401. package/_mjs/collection/immutable/Queue/api.mjs +55 -39
  402. package/_mjs/collection/immutable/Queue/api.mjs.map +1 -1
  403. package/_mjs/collection/immutable/Queue/definition.mjs +1 -1
  404. package/_mjs/collection/immutable/Queue/definition.mjs.map +1 -1
  405. package/_mjs/collection/immutable/RoseTree/api.mjs +50 -36
  406. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -1
  407. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  408. package/_mjs/collection/immutable/SortedMap/api.mjs +398 -358
  409. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  410. package/_mjs/collection/immutable/Vector/api.mjs +650 -538
  411. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  412. package/_mjs/collection/immutable/Vector/definition.mjs +16 -14
  413. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  414. package/_mjs/collection/immutable/Vector/internal.mjs +40 -39
  415. package/_mjs/collection/immutable/Vector/internal.mjs.map +1 -1
  416. package/_mjs/collection/mutable/HashMap.mjs +3 -5
  417. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  418. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  419. package/_mjs/collection/mutable/ListBuffer.mjs +2 -2
  420. package/_mjs/collection/mutable/ListBuffer.mjs.map +1 -1
  421. package/_mjs/collection/mutable/internal.mjs +0 -2
  422. package/_mjs/collection/mutable/internal.mjs.map +1 -1
  423. package/_mjs/collection/weak/IterableWeakMap.mjs +7 -7
  424. package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
  425. package/_mjs/collection/weak/IterableWeakSet.mjs +7 -7
  426. package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
  427. package/_mjs/control/Eval/api.mjs +40 -28
  428. package/_mjs/control/Eval/api.mjs.map +1 -1
  429. package/_mjs/control/Eval/instance.mjs +5 -5
  430. package/_mjs/control/Eval/instance.mjs.map +1 -1
  431. package/_mjs/control/Eval/run.mjs +1 -1
  432. package/_mjs/control/Eval/run.mjs.map +1 -1
  433. package/_mjs/control/Z/api.mjs +196 -128
  434. package/_mjs/control/Z/api.mjs.map +1 -1
  435. package/_mjs/control/Z/instances.mjs +4 -4
  436. package/_mjs/control/Z/instances.mjs.map +1 -1
  437. package/_mjs/control/Z/runtime.mjs +244 -234
  438. package/_mjs/control/Z/runtime.mjs.map +1 -1
  439. package/_mjs/data/Branded/definition.mjs.map +1 -1
  440. package/_mjs/data/Branded/derivations.mjs +3 -3
  441. package/_mjs/data/Branded/derivations.mjs.map +1 -1
  442. package/_mjs/data/CaseClass.mjs.map +1 -1
  443. package/_mjs/data/Cause/api/fold.mjs +19 -17
  444. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  445. package/_mjs/data/Cause/api/isEmpty.mjs +1 -1
  446. package/_mjs/data/Cause/api/isEmpty.mjs.map +1 -1
  447. package/_mjs/data/Cause/api/linearize.mjs +8 -8
  448. package/_mjs/data/Cause/api/linearize.mjs.map +1 -1
  449. package/_mjs/data/Cause/api/prettyPrint.mjs +1 -1
  450. package/_mjs/data/Cause/api/prettyPrint.mjs.map +1 -1
  451. package/_mjs/data/Cause/api.mjs +149 -129
  452. package/_mjs/data/Cause/api.mjs.map +1 -1
  453. package/_mjs/data/Cause/definition.mjs +18 -18
  454. package/_mjs/data/Cause/definition.mjs.map +1 -1
  455. package/_mjs/data/Cause.mjs.map +1 -1
  456. package/_mjs/data/Const/api.mjs +6 -4
  457. package/_mjs/data/Const/api.mjs.map +1 -1
  458. package/_mjs/data/Const/instances.mjs +4 -4
  459. package/_mjs/data/Const/instances.mjs.map +1 -1
  460. package/_mjs/data/Datum/api.mjs +220 -179
  461. package/_mjs/data/Datum/api.mjs.map +1 -1
  462. package/_mjs/data/Datum/definition.mjs.map +1 -1
  463. package/_mjs/data/DatumEither/api.mjs +163 -132
  464. package/_mjs/data/DatumEither/api.mjs.map +1 -1
  465. package/_mjs/data/DecodeError/definition.mjs +14 -14
  466. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  467. package/_mjs/data/Decoder/api.mjs +9 -7
  468. package/_mjs/data/Decoder/api.mjs.map +1 -1
  469. package/_mjs/data/Duration/api.mjs +16 -10
  470. package/_mjs/data/Duration/api.mjs.map +1 -1
  471. package/_mjs/data/Either/api/align.mjs +8 -2
  472. package/_mjs/data/Either/api/align.mjs.map +1 -1
  473. package/_mjs/data/Either/api/alignWith.mjs +13 -11
  474. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  475. package/_mjs/data/Either/api.mjs +175 -136
  476. package/_mjs/data/Either/api.mjs.map +1 -1
  477. package/_mjs/data/Either/constructors.mjs +7 -5
  478. package/_mjs/data/Either/constructors.mjs.map +1 -1
  479. package/_mjs/data/Either/destructors.mjs +15 -13
  480. package/_mjs/data/Either/destructors.mjs.map +1 -1
  481. package/_mjs/data/Either/instances.mjs +9 -9
  482. package/_mjs/data/Either/instances.mjs.map +1 -1
  483. package/_mjs/data/EitherT/api.mjs +8 -8
  484. package/_mjs/data/EitherT/api.mjs.map +1 -1
  485. package/_mjs/data/Encoder/api.mjs +102 -0
  486. package/_mjs/data/Encoder/api.mjs.map +1 -0
  487. package/_mjs/data/Encoder/definition.mjs +15 -0
  488. package/_mjs/data/Encoder/definition.mjs.map +1 -0
  489. package/_mjs/data/Encoder.mjs +4 -0
  490. package/_mjs/data/Encoder.mjs.map +1 -0
  491. package/_mjs/data/Environment/api.mjs +45 -33
  492. package/_mjs/data/Environment/api.mjs.map +1 -1
  493. package/_mjs/data/EnvironmentPatch.mjs +17 -13
  494. package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
  495. package/_mjs/data/ExecutionStrategy.mjs +19 -27
  496. package/_mjs/data/ExecutionStrategy.mjs.map +1 -1
  497. package/_mjs/data/Exit/api.mjs +140 -108
  498. package/_mjs/data/Exit/api.mjs.map +1 -1
  499. package/_mjs/data/Exit/constructors.mjs +3 -3
  500. package/_mjs/data/Exit/constructors.mjs.map +1 -1
  501. package/_mjs/data/FiberId/api.mjs +22 -20
  502. package/_mjs/data/FiberId/api.mjs.map +1 -1
  503. package/_mjs/data/FiberId/constructors.mjs.map +1 -1
  504. package/_mjs/data/Identity/api.mjs +21 -13
  505. package/_mjs/data/Identity/api.mjs.map +1 -1
  506. package/_mjs/data/Identity/instances.mjs +4 -4
  507. package/_mjs/data/Identity/instances.mjs.map +1 -1
  508. package/_mjs/data/Interval.mjs +38 -28
  509. package/_mjs/data/Interval.mjs.map +1 -1
  510. package/_mjs/data/Intervals.mjs +35 -27
  511. package/_mjs/data/Intervals.mjs.map +1 -1
  512. package/_mjs/data/Maybe/api.mjs +141 -106
  513. package/_mjs/data/Maybe/api.mjs.map +1 -1
  514. package/_mjs/data/Maybe/constructors.mjs +1 -1
  515. package/_mjs/data/Maybe/constructors.mjs.map +1 -1
  516. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  517. package/_mjs/data/Maybe/destructors.mjs +8 -6
  518. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  519. package/_mjs/data/Maybe/instances.mjs +12 -12
  520. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  521. package/_mjs/data/Predicate/api.mjs +10 -8
  522. package/_mjs/data/Predicate/api.mjs.map +1 -1
  523. package/_mjs/data/Refinement/api.mjs +15 -9
  524. package/_mjs/data/Refinement/api.mjs.map +1 -1
  525. package/_mjs/data/Struct/api.mjs +56 -44
  526. package/_mjs/data/Struct/api.mjs.map +1 -1
  527. package/_mjs/data/Tag/constructors.mjs +3 -2
  528. package/_mjs/data/Tag/constructors.mjs.map +1 -1
  529. package/_mjs/data/Tag/definition.mjs +0 -2
  530. package/_mjs/data/Tag/definition.mjs.map +1 -1
  531. package/_mjs/data/These/api.mjs +187 -169
  532. package/_mjs/data/These/api.mjs.map +1 -1
  533. package/_mjs/data/These/constructors.mjs +1 -1
  534. package/_mjs/data/These/constructors.mjs.map +1 -1
  535. package/_mjs/data/These/destructors.mjs +35 -31
  536. package/_mjs/data/These/destructors.mjs.map +1 -1
  537. package/_mjs/data/These/instances.mjs +1 -1
  538. package/_mjs/data/These/instances.mjs.map +1 -1
  539. package/_mjs/data/Trace/api.mjs +6 -4
  540. package/_mjs/data/Trace/api.mjs.map +1 -1
  541. package/_mjs/data/Zipped.mjs.map +1 -1
  542. package/_mjs/data/function/api.mjs +5 -3
  543. package/_mjs/data/function/api.mjs.map +1 -1
  544. package/_mjs/data/function/pipe.mjs +7 -0
  545. package/_mjs/data/function/pipe.mjs.map +1 -1
  546. package/_mjs/data/string/api.mjs +46 -66
  547. package/_mjs/data/string/api.mjs.map +1 -1
  548. package/_mjs/global/api.mjs +4 -2
  549. package/_mjs/global/api.mjs.map +1 -1
  550. package/_mjs/internal/AtomicBoolean.mjs.map +1 -1
  551. package/_mjs/internal/AtomicNumber.mjs.map +1 -1
  552. package/_mjs/internal/AtomicReference.mjs.map +1 -1
  553. package/_mjs/internal/Stack.mjs +1 -1
  554. package/_mjs/internal/Stack.mjs.map +1 -1
  555. package/_mjs/optics/At/api.mjs +1 -1
  556. package/_mjs/optics/At/api.mjs.map +1 -1
  557. package/_mjs/optics/At/definition.mjs +2 -2
  558. package/_mjs/optics/At/definition.mjs.map +1 -1
  559. package/_mjs/optics/Fold/definition.mjs +2 -3
  560. package/_mjs/optics/Fold/definition.mjs.map +1 -1
  561. package/_mjs/optics/Getter/definition.mjs +1 -2
  562. package/_mjs/optics/Getter/definition.mjs.map +1 -1
  563. package/_mjs/optics/Index/api.mjs +4 -4
  564. package/_mjs/optics/Index/api.mjs.map +1 -1
  565. package/_mjs/optics/Index/definition.mjs +1 -1
  566. package/_mjs/optics/Index/definition.mjs.map +1 -1
  567. package/_mjs/optics/Iso/api.mjs +8 -6
  568. package/_mjs/optics/Iso/api.mjs.map +1 -1
  569. package/_mjs/optics/Iso/definition.mjs +9 -9
  570. package/_mjs/optics/Iso/definition.mjs.map +1 -1
  571. package/_mjs/optics/Lens/api.mjs +49 -39
  572. package/_mjs/optics/Lens/api.mjs.map +1 -1
  573. package/_mjs/optics/Lens/definition.mjs +7 -7
  574. package/_mjs/optics/Lens/definition.mjs.map +1 -1
  575. package/_mjs/optics/Optional/api/compose.mjs +8 -6
  576. package/_mjs/optics/Optional/api/compose.mjs.map +1 -1
  577. package/_mjs/optics/Optional/definition.mjs +8 -10
  578. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  579. package/_mjs/optics/Optional.mjs.map +1 -1
  580. package/_mjs/optics/Prism/api/compose.mjs +8 -6
  581. package/_mjs/optics/Prism/api/compose.mjs.map +1 -1
  582. package/_mjs/optics/Prism/api/fromNullable.mjs +2 -2
  583. package/_mjs/optics/Prism/api/fromNullable.mjs.map +1 -1
  584. package/_mjs/optics/Prism/api/just.mjs +2 -2
  585. package/_mjs/optics/Prism/api/just.mjs.map +1 -1
  586. package/_mjs/optics/Prism/definition.mjs +6 -6
  587. package/_mjs/optics/Prism/definition.mjs.map +1 -1
  588. package/_mjs/optics/Prism.mjs.map +1 -1
  589. package/_mjs/optics/Setter/definition.mjs +5 -10
  590. package/_mjs/optics/Setter/definition.mjs.map +1 -1
  591. package/_mjs/optics/Traversal/api/compose.mjs +7 -5
  592. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  593. package/_mjs/optics/Traversal/api/fromTraversable.mjs +2 -2
  594. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  595. package/_mjs/optics/Traversal/definition.mjs +9 -9
  596. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  597. package/_mjs/optics/Traversal.mjs.map +1 -1
  598. package/_mjs/typeclass/Align.mjs.map +1 -1
  599. package/_mjs/typeclass/Alt.mjs.map +1 -1
  600. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  601. package/_mjs/typeclass/ApplicativeExcept.mjs +6 -10
  602. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  603. package/_mjs/typeclass/Apply.mjs +9 -9
  604. package/_mjs/typeclass/Apply.mjs.map +1 -1
  605. package/_mjs/typeclass/Chain.mjs +5 -5
  606. package/_mjs/typeclass/Chain.mjs.map +1 -1
  607. package/_mjs/typeclass/Eq/definition.mjs.map +1 -1
  608. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -1
  609. package/_mjs/typeclass/Equatable/api.mjs.map +1 -1
  610. package/_mjs/typeclass/Equatable/definition.mjs.map +1 -1
  611. package/_mjs/typeclass/Equatable/fast-equals.mjs.map +1 -1
  612. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  613. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  614. package/_mjs/typeclass/Foldable.mjs +1 -1
  615. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  616. package/_mjs/typeclass/FoldableWithIndex.mjs +1 -1
  617. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  618. package/_mjs/typeclass/Functor.mjs.map +1 -1
  619. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  620. package/_mjs/typeclass/Guard/api.mjs +18 -10
  621. package/_mjs/typeclass/Guard/api.mjs.map +1 -1
  622. package/_mjs/typeclass/Guard/definition.mjs.map +1 -1
  623. package/_mjs/typeclass/Guard/derivations.mjs.map +1 -1
  624. package/_mjs/typeclass/Has.mjs +7 -5
  625. package/_mjs/typeclass/Has.mjs.map +1 -1
  626. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  627. package/_mjs/typeclass/Hashable/definition.mjs.map +1 -1
  628. package/_mjs/typeclass/Hashable/hash.mjs.map +1 -1
  629. package/_mjs/typeclass/MonadExcept.mjs +1 -1
  630. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  631. package/_mjs/typeclass/Ord/api/contramap.mjs +7 -5
  632. package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
  633. package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
  634. package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
  635. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  636. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  637. package/_mjs/typeclass/Ordering.mjs.map +1 -1
  638. package/_mjs/typeclass/Semialign.mjs +7 -7
  639. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  640. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  641. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  642. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -1
  643. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  644. package/_mjs/typeclass/Showable/definition.mjs.map +1 -1
  645. package/_mjs/typeclass/Showable/show.mjs +107 -107
  646. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  647. package/_mjs/typeclass/Showable/styles.mjs.map +1 -1
  648. package/_mjs/typeclass/Showable/util.mjs +1 -1
  649. package/_mjs/typeclass/Showable/util.mjs.map +1 -1
  650. package/_mjs/typeclass/Traversable.mjs +1 -2
  651. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  652. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  653. package/_mjs/typeclass/Witherable.mjs +2 -1
  654. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  655. package/_mjs/typeclass/WitherableWithIndex.mjs +2 -1
  656. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  657. package/_mjs/util/AnsiFormat.mjs +11 -11
  658. package/_mjs/util/AnsiFormat.mjs.map +1 -1
  659. package/_mjs/util/PCGRandom.mjs.map +1 -1
  660. package/_mjs/util/assert.mjs.map +1 -1
  661. package/_mjs/util/pattern.mjs.map +1 -1
  662. package/_mjs/util/predicates.mjs.map +1 -1
  663. package/_mjs/util/rand/Random.mjs.map +1 -1
  664. package/_mjs/util/rand/distribution/UniformArrayIntDistribution.mjs.map +1 -1
  665. package/_mjs/util/rand/distribution/UniformBigIntDistribution.mjs.map +1 -1
  666. package/_mjs/util/rand/distribution/UniformIntDistribution.mjs.map +1 -1
  667. package/_mjs/util/rand/distribution/internals/ArrayInt.mjs.map +1 -1
  668. package/_mjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.mjs.map +1 -1
  669. package/_mjs/util/rand/distribution/internals/UniformIntDistributionInternal.mjs.map +1 -1
  670. package/_mjs/util/rand/generator/MersenneTwister.mjs.map +1 -1
  671. package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
  672. package/_mjs/util/rand.mjs.map +1 -1
  673. package/_src/collection/Iterable/api/traverseConc.ts +3 -3
  674. package/_src/collection/Iterable/api.ts +445 -408
  675. package/_src/collection/Iterable/constructors.ts +1 -1
  676. package/_src/collection/compat/Array/api.ts +16 -13
  677. package/_src/collection/compat/Array/derivations.ts +27 -1
  678. package/_src/collection/compat/Record/instances.ts +51 -2
  679. package/_src/collection/immutable/Conc/api.ts +716 -607
  680. package/_src/collection/immutable/Conc/definition.ts +60 -68
  681. package/_src/collection/immutable/Conc/derivations.ts +13 -0
  682. package/_src/collection/immutable/Conc.ts +0 -1
  683. package/_src/collection/immutable/Dictionary/api.ts +44 -32
  684. package/_src/collection/immutable/HashMap/api.ts +338 -224
  685. package/_src/collection/immutable/HashMap/internal.ts +3 -7
  686. package/_src/collection/immutable/HashSet/api.ts +193 -158
  687. package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +5 -3
  688. package/_src/collection/immutable/ImmutableArray/api/slice.ts +5 -3
  689. package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +5 -3
  690. package/_src/collection/immutable/ImmutableArray/api/splitWhere.ts +13 -14
  691. package/_src/collection/immutable/ImmutableArray/api.ts +870 -722
  692. package/_src/collection/immutable/ImmutableArray/derivations.ts +13 -0
  693. package/_src/collection/immutable/ImmutableArray/instances.ts +54 -73
  694. package/_src/collection/immutable/ImmutableArray.ts +0 -1
  695. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +311 -273
  696. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +19 -4
  697. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -1
  698. package/_src/collection/immutable/ImmutableNonEmptyArray/derivations.ts +13 -0
  699. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +22 -23
  700. package/_src/collection/immutable/List/api/foldLeft.ts +11 -9
  701. package/_src/collection/immutable/List/api.ts +147 -133
  702. package/_src/collection/immutable/List.ts +0 -1
  703. package/_src/collection/immutable/Queue/api.ts +53 -37
  704. package/_src/collection/immutable/Queue/definition.ts +0 -1
  705. package/_src/collection/immutable/RoseTree/api.ts +38 -32
  706. package/_src/collection/immutable/RoseTree/definition.ts +2 -0
  707. package/_src/collection/immutable/SortedMap/api.ts +364 -332
  708. package/_src/collection/immutable/Vector/api.ts +608 -482
  709. package/_src/collection/immutable/Vector/definition.ts +11 -12
  710. package/_src/collection/immutable/Vector/internal.ts +37 -38
  711. package/_src/collection/mutable/HashMap.ts +1 -4
  712. package/_src/collection/mutable/HashSet.ts +1 -2
  713. package/_src/collection/mutable/ListBuffer.ts +1 -1
  714. package/_src/collection/mutable/internal.ts +0 -2
  715. package/_src/collection/weak/IterableWeakMap.ts +11 -7
  716. package/_src/collection/weak/IterableWeakSet.ts +10 -5
  717. package/_src/control/Eval/api.ts +35 -19
  718. package/_src/control/Eval/instance.ts +5 -5
  719. package/_src/control/Z/api.ts +191 -208
  720. package/_src/control/Z/instances.ts +4 -5
  721. package/_src/control/Z/runtime.ts +190 -189
  722. package/_src/data/Branded/definition.ts +11 -12
  723. package/_src/data/Branded/derivations.ts +2 -2
  724. package/_src/data/CaseClass.ts +4 -1
  725. package/_src/data/Cause/api/fold.ts +13 -14
  726. package/_src/data/Cause/api.ts +125 -105
  727. package/_src/data/Cause.ts +0 -1
  728. package/_src/data/Const/api.ts +6 -4
  729. package/_src/data/Const/instances.ts +3 -3
  730. package/_src/data/Datum/api.ts +229 -197
  731. package/_src/data/Datum/definition.ts +2 -5
  732. package/_src/data/DatumEither/api.ts +208 -193
  733. package/_src/data/Decoder/api.ts +5 -3
  734. package/_src/data/Duration/api.ts +19 -15
  735. package/_src/data/Either/api/align.ts +7 -2
  736. package/_src/data/Either/api/alignWith.ts +13 -15
  737. package/_src/data/Either/api.ts +141 -119
  738. package/_src/data/Either/constructors.ts +12 -10
  739. package/_src/data/Either/destructors.ts +11 -9
  740. package/_src/data/Either/instances.ts +24 -20
  741. package/_src/data/EitherT/api.ts +43 -49
  742. package/_src/data/Encoder/api.ts +123 -0
  743. package/_src/data/Encoder/definition.ts +12 -0
  744. package/_src/data/Encoder.ts +4 -0
  745. package/_src/data/Environment/api.ts +52 -44
  746. package/_src/data/EnvironmentPatch.ts +10 -9
  747. package/_src/data/ExecutionStrategy.ts +14 -24
  748. package/_src/data/Exit/api.ts +104 -73
  749. package/_src/data/Exit/constructors.ts +2 -2
  750. package/_src/data/FiberId/api.ts +19 -17
  751. package/_src/data/FiberId/constructors.ts +1 -2
  752. package/_src/data/Identity/api.ts +20 -12
  753. package/_src/data/Identity/instances.ts +4 -7
  754. package/_src/data/Interval.ts +39 -29
  755. package/_src/data/Intervals.ts +31 -23
  756. package/_src/data/Maybe/api.ts +112 -79
  757. package/_src/data/Maybe/constructors.ts +3 -3
  758. package/_src/data/Maybe/definition.ts +11 -1
  759. package/_src/data/Maybe/destructors.ts +6 -4
  760. package/_src/data/Maybe/instances.ts +10 -21
  761. package/_src/data/Predicate/api.ts +14 -8
  762. package/_src/data/Refinement/api.ts +19 -13
  763. package/_src/data/Struct/api.ts +75 -55
  764. package/_src/data/Tag/constructors.ts +1 -2
  765. package/_src/data/Tag/definition.ts +0 -1
  766. package/_src/data/These/api.ts +114 -114
  767. package/_src/data/These/destructors.ts +23 -24
  768. package/_src/data/Trace/api.ts +5 -3
  769. package/_src/data/Zipped.ts +3 -4
  770. package/_src/data/function/api.ts +6 -7
  771. package/_src/data/function/pipe.ts +9 -1
  772. package/_src/data/string/api.ts +40 -60
  773. package/_src/data.ts +1 -0
  774. package/_src/global/api.ts +7 -12
  775. package/_src/global.ts +4 -0
  776. package/_src/internal/AtomicBoolean.ts +0 -1
  777. package/_src/internal/AtomicNumber.ts +0 -7
  778. package/_src/internal/AtomicReference.ts +0 -4
  779. package/_src/internal/Stack.ts +1 -7
  780. package/_src/optics/At/definition.ts +5 -3
  781. package/_src/optics/Fold/definition.ts +3 -10
  782. package/_src/optics/Getter/definition.ts +1 -2
  783. package/_src/optics/Index/definition.ts +1 -1
  784. package/_src/optics/Iso/api.ts +8 -6
  785. package/_src/optics/Iso/definition.ts +3 -3
  786. package/_src/optics/Lens/api.ts +44 -42
  787. package/_src/optics/Lens/definition.ts +5 -5
  788. package/_src/optics/Optional/api/compose.ts +9 -9
  789. package/_src/optics/Optional/definition.ts +9 -16
  790. package/_src/optics/Optional.ts +0 -1
  791. package/_src/optics/Prism/api/compose.ts +9 -6
  792. package/_src/optics/Prism/definition.ts +3 -3
  793. package/_src/optics/Prism.ts +0 -1
  794. package/_src/optics/Setter/definition.ts +3 -23
  795. package/_src/optics/Traversal/api/compose.ts +7 -8
  796. package/_src/optics/Traversal/api/fromTraversable.ts +1 -1
  797. package/_src/optics/Traversal/definition.ts +10 -15
  798. package/_src/optics/Traversal.ts +0 -1
  799. package/_src/typeclass/Align.ts +0 -3
  800. package/_src/typeclass/Alt.ts +2 -1
  801. package/_src/typeclass/Applicative.ts +0 -1
  802. package/_src/typeclass/ApplicativeExcept.ts +15 -10
  803. package/_src/typeclass/Apply.ts +30 -33
  804. package/_src/typeclass/Chain.ts +9 -12
  805. package/_src/typeclass/Eq/definition.ts +0 -3
  806. package/_src/typeclass/Eq/derivations.ts +0 -2
  807. package/_src/typeclass/Equatable/api.ts +0 -2
  808. package/_src/typeclass/Equatable/definition.ts +0 -4
  809. package/_src/typeclass/Equatable/fast-equals.ts +11 -93
  810. package/_src/typeclass/Filterable.ts +19 -13
  811. package/_src/typeclass/FilterableWithIndex.ts +19 -13
  812. package/_src/typeclass/Foldable.ts +7 -10
  813. package/_src/typeclass/FoldableWithIndex.ts +7 -10
  814. package/_src/typeclass/Functor.ts +6 -4
  815. package/_src/typeclass/FunctorWithIndex.ts +3 -2
  816. package/_src/typeclass/Guard/api.ts +21 -16
  817. package/_src/typeclass/Guard/definition.ts +0 -3
  818. package/_src/typeclass/Guard/derivations.ts +5 -6
  819. package/_src/typeclass/Has.ts +6 -4
  820. package/_src/typeclass/HashEq.ts +0 -7
  821. package/_src/typeclass/Hashable/definition.ts +0 -4
  822. package/_src/typeclass/Hashable/hash.ts +0 -26
  823. package/_src/typeclass/MonadExcept.ts +1 -1
  824. package/_src/typeclass/Ord/api/contramap.ts +7 -6
  825. package/_src/typeclass/Ord/api/max.ts +0 -1
  826. package/_src/typeclass/Ord/api/min.ts +0 -1
  827. package/_src/typeclass/Ord/definition.ts +0 -4
  828. package/_src/typeclass/Ord/instances.ts +0 -2
  829. package/_src/typeclass/Ordering.ts +2 -0
  830. package/_src/typeclass/Semialign.ts +43 -32
  831. package/_src/typeclass/Semigroup/api.ts +0 -2
  832. package/_src/typeclass/Semigroup/definition.ts +0 -4
  833. package/_src/typeclass/Semigroup/derivations.ts +0 -2
  834. package/_src/typeclass/Semimonoidal.ts +3 -2
  835. package/_src/typeclass/Showable/definition.ts +0 -6
  836. package/_src/typeclass/Showable/show.ts +1 -57
  837. package/_src/typeclass/Showable/styles.ts +0 -8
  838. package/_src/typeclass/Showable/util.ts +22 -57
  839. package/_src/typeclass/Traversable.ts +13 -18
  840. package/_src/typeclass/TraversableWithIndex.ts +5 -7
  841. package/_src/typeclass/Witherable.ts +21 -13
  842. package/_src/typeclass/WitherableWithIndex.ts +26 -17
  843. package/_src/typeclass/builtin/Symbol.ts +0 -1
  844. package/_src/types/extractions.ts +12 -3
  845. package/_src/types/utility.ts +3 -5
  846. package/_src/util/AnsiFormat.ts +0 -25
  847. package/_src/util/PCGRandom.ts +4 -9
  848. package/_src/util/assert.ts +1 -2
  849. package/_src/util/pattern.ts +91 -12
  850. package/_src/util/predicates.ts +3 -1
  851. package/_src/util/rand/Random.ts +12 -16
  852. package/_src/util/rand/distribution/Distribution.ts +0 -1
  853. package/_src/util/rand/distribution/UniformArrayIntDistribution.ts +0 -3
  854. package/_src/util/rand/distribution/UniformBigIntDistribution.ts +0 -5
  855. package/_src/util/rand/distribution/UniformIntDistribution.ts +0 -7
  856. package/_src/util/rand/distribution/internals/ArrayInt.ts +3 -13
  857. package/_src/util/rand/distribution/internals/UniformArrayIntDistributionInternal.ts +0 -3
  858. package/_src/util/rand/distribution/internals/UniformIntDistributionInternal.ts +0 -4
  859. package/_src/util/rand/generator/MersenneTwister.ts +6 -29
  860. package/_src/util/rand/generator/RandomGenerator.ts +0 -3
  861. package/_src/util/rand.ts +0 -2
  862. package/collection/Iterable/api/traverseConc.d.ts +2 -2
  863. package/collection/Iterable/api.d.ts +64 -64
  864. package/collection/Iterable/constructors.d.ts +1 -1
  865. package/collection/compat/Array/api.d.ts +6 -6
  866. package/collection/compat/Array/derivations.d.ts +11 -0
  867. package/collection/compat/Record/instances.d.ts +30 -6
  868. package/collection/immutable/Conc/api.d.ts +108 -105
  869. package/collection/immutable/Conc/definition.d.ts +2 -2
  870. package/collection/immutable/Conc/derivations.d.ts +6 -0
  871. package/collection/immutable/Dictionary/api.d.ts +12 -12
  872. package/collection/immutable/HashMap/api.d.ts +76 -70
  873. package/collection/immutable/HashSet/api.d.ts +45 -41
  874. package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +2 -2
  875. package/collection/immutable/ImmutableArray/api/slice.d.ts +2 -2
  876. package/collection/immutable/ImmutableArray/api/splitAt.d.ts +2 -2
  877. package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +3 -3
  878. package/collection/immutable/ImmutableArray/api.d.ts +206 -206
  879. package/collection/immutable/ImmutableArray/derivations.d.ts +6 -0
  880. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +64 -63
  881. package/collection/immutable/ImmutableNonEmptyArray/derivations.d.ts +6 -0
  882. package/collection/immutable/List/api/foldLeft.d.ts +2 -2
  883. package/collection/immutable/List/api.d.ts +24 -24
  884. package/collection/immutable/Queue/api.d.ts +16 -16
  885. package/collection/immutable/RoseTree/api.d.ts +14 -14
  886. package/collection/immutable/SortedMap/api.d.ts +41 -41
  887. package/collection/immutable/Vector/api.d.ts +121 -117
  888. package/collection/immutable/Vector/definition.d.ts +2 -2
  889. package/collection/immutable/Vector/internal.d.ts +2 -2
  890. package/collection/mutable/ListBuffer.d.ts +1 -1
  891. package/control/Eval/api.d.ts +12 -12
  892. package/control/Z/api.d.ts +68 -68
  893. package/control/Z/runtime.d.ts +10 -10
  894. package/data/Branded/derivations.d.ts +2 -2
  895. package/data/Cause/api/fold.d.ts +3 -3
  896. package/data/Cause/api.d.ts +20 -20
  897. package/data/Const/api.d.ts +3 -3
  898. package/data/Datum/api.d.ts +43 -41
  899. package/data/DatumEither/api.d.ts +48 -46
  900. package/data/Decoder/api.d.ts +2 -2
  901. package/data/Duration/api.d.ts +7 -7
  902. package/data/Either/api/align.d.ts +5 -1
  903. package/data/Either/api/alignWith.d.ts +2 -2
  904. package/data/Either/api.d.ts +40 -46
  905. package/data/Either/constructors.d.ts +6 -6
  906. package/data/Either/destructors.d.ts +2 -2
  907. package/data/EitherT/api.d.ts +6 -6
  908. package/data/Encoder/api.d.ts +73 -0
  909. package/data/Encoder/definition.d.ts +12 -0
  910. package/data/Encoder.d.ts +2 -0
  911. package/data/Environment/api.d.ts +14 -14
  912. package/data/EnvironmentPatch.d.ts +4 -4
  913. package/data/ExecutionStrategy.d.ts +1 -6
  914. package/data/Exit/api.d.ts +32 -32
  915. package/data/Exit/constructors.d.ts +2 -2
  916. package/data/FiberId/api.d.ts +2 -2
  917. package/data/Identity/api.d.ts +8 -8
  918. package/data/Interval.d.ts +11 -11
  919. package/data/Intervals.d.ts +11 -11
  920. package/data/Maybe/api.d.ts +36 -37
  921. package/data/Maybe/constructors.d.ts +2 -2
  922. package/data/Maybe/definition.d.ts +7 -3
  923. package/data/Maybe/destructors.d.ts +2 -2
  924. package/data/Predicate/api.d.ts +5 -5
  925. package/data/Refinement/api.d.ts +9 -9
  926. package/data/Struct/api.d.ts +13 -23
  927. package/data/Tag/constructors.d.ts +1 -2
  928. package/data/Tag/definition.d.ts +0 -1
  929. package/data/These/api.d.ts +18 -22
  930. package/data/These/destructors.d.ts +4 -4
  931. package/data/Trace/api.d.ts +2 -2
  932. package/data/function/api.d.ts +3 -3
  933. package/data/function/pipe.d.ts +7 -1
  934. package/data/string/api.d.ts +9 -49
  935. package/data.d.ts +1 -0
  936. package/global/api.d.ts +3 -3
  937. package/global.d.ts +4 -0
  938. package/internal/Stack.d.ts +1 -1
  939. package/optics/At/definition.d.ts +1 -1
  940. package/optics/Fold/definition.d.ts +2 -6
  941. package/optics/Getter/definition.d.ts +1 -1
  942. package/optics/Index/definition.d.ts +1 -1
  943. package/optics/Iso/api.d.ts +2 -2
  944. package/optics/Iso/definition.d.ts +2 -2
  945. package/optics/Lens/api.d.ts +10 -10
  946. package/optics/Lens/definition.d.ts +4 -4
  947. package/optics/Optional/api/compose.d.ts +2 -2
  948. package/optics/Optional/definition.d.ts +4 -8
  949. package/optics/Prism/api/compose.d.ts +2 -2
  950. package/optics/Prism/definition.d.ts +2 -2
  951. package/optics/Setter/definition.d.ts +2 -14
  952. package/optics/Traversal/api/compose.d.ts +2 -2
  953. package/optics/Traversal/definition.d.ts +4 -4
  954. package/package.json +1 -1
  955. package/typeclass/Alt.d.ts +1 -1
  956. package/typeclass/ApplicativeExcept.d.ts +2 -6
  957. package/typeclass/Apply.d.ts +5 -5
  958. package/typeclass/Chain.d.ts +4 -4
  959. package/typeclass/Filterable.d.ts +6 -6
  960. package/typeclass/FilterableWithIndex.d.ts +6 -6
  961. package/typeclass/Foldable.d.ts +4 -4
  962. package/typeclass/FoldableWithIndex.d.ts +4 -4
  963. package/typeclass/Functor.d.ts +2 -2
  964. package/typeclass/FunctorWithIndex.d.ts +1 -1
  965. package/typeclass/Guard/api.d.ts +7 -7
  966. package/typeclass/Has.d.ts +3 -3
  967. package/typeclass/Ord/api/contramap.d.ts +2 -2
  968. package/typeclass/Semialign.d.ts +14 -14
  969. package/typeclass/Semimonoidal.d.ts +1 -1
  970. package/typeclass/Traversable.d.ts +4 -6
  971. package/typeclass/TraversableWithIndex.d.ts +2 -2
  972. package/typeclass/Witherable.d.ts +3 -3
  973. package/typeclass/WitherableWithIndex.d.ts +5 -5
  974. package/types/extractions.d.ts +10 -6
  975. package/util/assert.d.ts +1 -1
@@ -10,6 +10,7 @@ import {
10
10
  SIZE,
11
11
  toBitmap,
12
12
  } from "@fncts/base/collection/immutable/HashMap/internal";
13
+ import { pipe } from "@fncts/base/data/function";
13
14
  import * as P from "@fncts/base/typeclass";
14
15
 
15
16
  /**
@@ -53,55 +54,66 @@ export function makeDefault<K, V>(): HashMap<K, V> {
53
54
  /**
54
55
  * Makes a new map from a Foldable of key-value pairs
55
56
  *
56
- * @tsplus fluent fncts.HashMapOps fromFoldable
57
+ * @tsplus pipeable fncts.HashMapOps fromFoldable
57
58
  */
58
59
  export function fromFoldable<F extends HKT, C, K, A>(config: P.HashEq<K>, S: P.Semigroup<A>, F: P.Foldable<F, C>) {
59
60
  return <K_, Q, W, X, I, S, R, E>(fka: HKT.Kind<F, C, K_, Q, W, X, I, S, R, E, readonly [K, A]>): HashMap<K, A> => {
60
- return F.foldLeft(fka, makeWith(config), (b, [k, a]) => {
61
- const oa = b.get(k);
62
- if (oa.isJust()) {
63
- return b.set(k, S.combine(oa.value, a));
64
- } else {
65
- return b.set(k, a);
66
- }
67
- });
61
+ return pipe(
62
+ fka,
63
+ F.foldLeft(makeWith(config), (b, [k, a]) => {
64
+ const oa = b.get(k);
65
+ if (oa.isJust()) {
66
+ return b.set(k, S.combine(oa.value, a));
67
+ } else {
68
+ return b.set(k, a);
69
+ }
70
+ }),
71
+ );
68
72
  };
69
73
  }
70
74
 
71
75
  /**
72
76
  * Lookup the value for `key` in `map` using custom hash.
73
77
  *
74
- * @tsplus fluent fncts.HashMap getHash
78
+ * @tsplus pipeable fncts.HashMap getHash
75
79
  */
76
- export function getHash_<K, V>(map: HashMap<K, V>, key: K, hash: number): Maybe<V> {
77
- return tryGetHash(map, key, hash);
80
+ export function getHash<K>(key: K, hash: number) {
81
+ return <V>(map: HashMap<K, V>): Maybe<V> => {
82
+ return tryGetHash(map, key, hash);
83
+ };
78
84
  }
79
85
 
80
86
  /**
81
87
  * Lookup the value for `key` in `map` using internal hash function.
82
88
  *
83
- * @tsplus fluent fncts.HashMap get
89
+ * @tsplus pipeable fncts.HashMap get
84
90
  */
85
- export function get_<K, V>(map: HashMap<K, V>, key: K): Maybe<V> {
86
- return tryGetHash(map, key, map.config.hash(key));
91
+ export function get<K>(key: K) {
92
+ return <V>(map: HashMap<K, V>): Maybe<V> => {
93
+ return tryGetHash(map, key, map.config.hash(key));
94
+ };
87
95
  }
88
96
 
89
97
  /**
90
98
  * Does an entry exist for `key` in `map`? Uses custom `hash`.
91
99
  *
92
- * @tsplus fluent fncts.HashMap hashHash
100
+ * @tsplus pipeable fncts.HashMap hashHash
93
101
  */
94
- export function hasHash_<K, V>(map: HashMap<K, V>, key: K, hash: number): boolean {
95
- return tryGetHash(map, key, hash).isJust();
102
+ export function hasHash<K>(key: K, hash: number) {
103
+ return <V>(map: HashMap<K, V>): boolean => {
104
+ return tryGetHash(map, key, hash).isJust();
105
+ };
96
106
  }
97
107
 
98
108
  /**
99
109
  * Does an entry exist for `key` in `map`? Uses internal hash function.
100
110
  *
101
- * @tsplus fluent fncts.HashMap has
111
+ * @tsplus pipeable fncts.HashMap has
102
112
  */
103
- export function has_<K, V>(map: HashMap<K, V>, key: K): boolean {
104
- return tryGetHash(map, key, map.config.hash(key)).isJust();
113
+ export function has<K>(key: K) {
114
+ return <V>(map: HashMap<K, V>): boolean => {
115
+ return tryGetHash(map, key, map.config.hash(key)).isJust();
116
+ };
105
117
  }
106
118
 
107
119
  /**
@@ -113,12 +125,14 @@ export function has_<K, V>(map: HashMap<K, V>, key: K): boolean {
113
125
  * `modify` will always either update or insert a value into the map.
114
126
  * Returns a map with the modified value. Does not alter `map`.
115
127
  *
116
- * @tsplus fluent fncts.HashMap modifyHash
128
+ * @tsplus pipeable fncts.HashMap modifyHash
117
129
  */
118
- export function modifyHash_<K, V>(map: HashMap<K, V>, key: K, hash: number, f: UpdateFn<V>): HashMap<K, V> {
119
- const size = { value: map.size };
120
- const newRoot = map.root.modify(map.editable ? map.edit : NaN, map.config.equals, 0, f, hash, key, size);
121
- return setTree(map, newRoot, size.value);
130
+ export function modifyHash<K, V>(key: K, hash: number, f: UpdateFn<V>) {
131
+ return (map: HashMap<K, V>): HashMap<K, V> => {
132
+ const size = { value: map.size };
133
+ const newRoot = map.root.modify(map.editable ? map.edit : NaN, map.config.equals, 0, f, hash, key, size);
134
+ return setTree(map, newRoot, size.value);
135
+ };
122
136
  }
123
137
 
124
138
  /**
@@ -130,41 +144,49 @@ export function modifyHash_<K, V>(map: HashMap<K, V>, key: K, hash: number, f: U
130
144
  * `modify` will always either update or insert a value into the map.
131
145
  * Returns a map with the modified value. Does not alter `map`.
132
146
  *
133
- * @tsplus fluent fncts.HashMap modify
147
+ * @tsplus pipeable fncts.HashMap modify
134
148
  */
135
- export function modify_<K, V>(map: HashMap<K, V>, key: K, f: UpdateFn<V>): HashMap<K, V> {
136
- return map.modifyHash(key, map.config.hash(key), f);
149
+ export function modify<K, V>(key: K, f: UpdateFn<V>) {
150
+ return (map: HashMap<K, V>): HashMap<K, V> => {
151
+ return map.modifyHash(key, map.config.hash(key), f);
152
+ };
137
153
  }
138
154
 
139
155
  /**
140
156
  * Store `value` for `key` in `map` using internal hash function.
141
157
  *
142
- * @tsplus fluent fncts.HashMap set
158
+ * @tsplus pipeable fncts.HashMap set
143
159
  */
144
- export function set_<K, V>(map: HashMap<K, V>, key: K, value: V): HashMap<K, V> {
145
- return map.modify(key, () => Just(value));
160
+ export function set<K, V>(key: K, value: V) {
161
+ return (map: HashMap<K, V>): HashMap<K, V> => {
162
+ return map.modify(key, () => Just(value));
163
+ };
146
164
  }
147
165
 
148
166
  /**
149
167
  * Remove the entry for `key` in `map` using internal hash.
150
168
  *
151
- * @tsplus fluent fncts.HashMap remove
169
+ * @tsplus pipeable fncts.HashMap remove
152
170
  */
153
- export function remove_<K, V>(map: HashMap<K, V>, key: K): HashMap<K, V> {
154
- return map.modify(key, () => Nothing());
171
+ export function remove<K>(key: K) {
172
+ return <V>(map: HashMap<K, V>): HashMap<K, V> => {
173
+ return map.modify(key, () => Nothing());
174
+ };
155
175
  }
156
176
 
157
177
  /**
158
178
  * Remove many keys
159
179
  *
160
- * @tsplus fluent fncts.HashMap removeMany
180
+ * @tsplus pipeable fncts.HashMap removeMany
161
181
  */
162
- export function removeMany_<K, V>(map: HashMap<K, V>, keys: Iterable<K>): HashMap<K, V> {
163
- return mutate_(map, (m) => {
164
- for (const k of keys) {
165
- m.remove(k);
166
- }
167
- });
182
+ export function removeMany<K>(keys: Iterable<K>) {
183
+ return <V>(map: HashMap<K, V>): HashMap<K, V> => {
184
+ return map.mutate((m) => {
185
+ for (const k of keys) {
186
+ m.remove(k);
187
+ }
188
+ });
189
+ };
168
190
  }
169
191
 
170
192
  /**
@@ -189,12 +211,14 @@ export function endMutation<K, V>(map: HashMap<K, V>): HashMap<K, V> {
189
211
  /**
190
212
  * Mutate `map` within the context of `f`.
191
213
  *
192
- * @tsplus fluent fncts.HashMap mutate
214
+ * @tsplus pipeable fncts.HashMap mutate
193
215
  */
194
- export function mutate_<K, V>(map: HashMap<K, V>, f: (map: HashMap<K, V>) => void): HashMap<K, V> {
195
- const transient = map.beginMutation;
196
- f(transient);
197
- return transient.endMutation;
216
+ export function mutate<K, V>(f: (map: HashMap<K, V>) => void) {
217
+ return (map: HashMap<K, V>): HashMap<K, V> => {
218
+ const transient = map.beginMutation;
219
+ f(transient);
220
+ return transient.endMutation;
221
+ };
198
222
  }
199
223
 
200
224
  /**
@@ -272,70 +296,84 @@ export function values<K, V>(map: HashMap<K, V>): IterableIterator<V> {
272
296
  /**
273
297
  * Update a value if exists
274
298
  *
275
- * @tsplus fluent fncts.HashMap update
299
+ * @tsplus pipeable fncts.HashMap update
276
300
  */
277
- export function update_<K, V>(map: HashMap<K, V>, key: K, f: (v: V) => V): HashMap<K, V> {
278
- return map.modify(key, (v) => v.map(f));
301
+ export function update<K, V>(key: K, f: (v: V) => V) {
302
+ return (map: HashMap<K, V>): HashMap<K, V> => {
303
+ return map.modify(key, (v) => v.map(f));
304
+ };
279
305
  }
280
306
 
281
307
  /**
282
308
  * Apply f to each element
283
309
  *
284
- * @tsplus fluent fncts.HashMap forEachWithIndex
310
+ * @tsplus pipeable fncts.HashMap forEachWithIndex
285
311
  */
286
- export function forEachWithIndex_<K, V>(map: HashMap<K, V>, f: (k: K, v: V, m: HashMap<K, V>) => void): void {
287
- map.foldLeftWithIndex(undefined as void, (key, _, value) => f(key, value, map));
312
+ export function forEachWithIndex<K, V>(f: (k: K, v: V, m: HashMap<K, V>) => void) {
313
+ return (map: HashMap<K, V>): void => {
314
+ map.foldLeftWithIndex(undefined as void, (key, _, value) => f(key, value, map));
315
+ };
288
316
  }
289
317
 
290
318
  /**
291
319
  * Apply f to each element
292
320
  *
293
- * @tsplus fluent fncts.HashMap forEach
321
+ * @tsplus pipeable fncts.HashMap forEach
294
322
  */
295
- export function forEach_<K, V>(map: HashMap<K, V>, f: (v: V, m: HashMap<K, V>) => void): void {
296
- return map.forEachWithIndex((_, v, m) => f(v, m));
323
+ export function forEach<K, V>(f: (v: V, m: HashMap<K, V>) => void) {
324
+ return (map: HashMap<K, V>): void => {
325
+ return map.forEachWithIndex((_, v, m) => f(v, m));
326
+ };
297
327
  }
298
328
 
299
329
  /**
300
330
  * Maps over the map entries
301
331
  *
302
- * @tsplus fluent fncts.HashMap mapWithIndex
332
+ * @tsplus pipeable fncts.HashMap mapWithIndex
303
333
  */
304
- export function mapWithIndex_<K, V, A>(fa: HashMap<K, V>, f: (k: K, v: V) => A): HashMap<K, A> {
305
- return fa.foldLeftWithIndex(makeWith<K, A>(fa.config), (k, z, v) => z.set(k, f(k, v)));
334
+ export function mapWithIndex<K, V, A>(f: (k: K, v: V) => A) {
335
+ return (fa: HashMap<K, V>): HashMap<K, A> => {
336
+ return fa.foldLeftWithIndex(makeWith<K, A>(fa.config), (k, z, v) => z.set(k, f(k, v)));
337
+ };
306
338
  }
307
339
 
308
340
  /**
309
341
  * Maps over the map entries
310
342
  *
311
- * @tsplus fluent fncts.HashMap map
343
+ * @tsplus pipeable fncts.HashMap map
312
344
  */
313
- export function map_<K, V, A>(fa: HashMap<K, V>, f: (v: V) => A): HashMap<K, A> {
314
- return fa.mapWithIndex((_, a) => f(a));
345
+ export function map<V, A>(f: (v: V) => A) {
346
+ return <K>(fa: HashMap<K, V>): HashMap<K, A> => {
347
+ return fa.mapWithIndex((_, a) => f(a));
348
+ };
315
349
  }
316
350
 
317
351
  /**
318
352
  * Chain over the map entries, the hash and equal of the 2 maps has to be the same
319
353
  *
320
- * @tsplus fluent fncts.HashMap flatMapWithIndex
354
+ * @tsplus pipeable fncts.HashMap flatMapWithIndex
321
355
  */
322
- export function flatMapWithIndex_<K, V, A>(ma: HashMap<K, V>, f: (k: K, v: V) => HashMap<K, A>): HashMap<K, A> {
323
- return ma.foldLeftWithIndex(makeWith<K, A>(ma.config), (k, z, v) =>
324
- z.mutate((m) => {
325
- f(k, v).forEachWithIndex((k1, a1) => {
326
- m.set(k1, a1);
327
- });
328
- }),
329
- );
356
+ export function flatMapWithIndex<K, V, A>(f: (k: K, v: V) => HashMap<K, A>) {
357
+ return (ma: HashMap<K, V>): HashMap<K, A> => {
358
+ return ma.foldLeftWithIndex(makeWith<K, A>(ma.config), (k, z, v) =>
359
+ z.mutate((m) => {
360
+ f(k, v).forEachWithIndex((k1, a1) => {
361
+ m.set(k1, a1);
362
+ });
363
+ }),
364
+ );
365
+ };
330
366
  }
331
367
 
332
368
  /**
333
369
  * Chain over the map entries, the hash and equal of the 2 maps has to be the same
334
370
  *
335
- * @tsplus fluent fncts.HashMap flatMap
371
+ * @tsplus pipeable fncts.HashMap flatMap
336
372
  */
337
- export function flatMap_<K, V, A>(ma: HashMap<K, V>, f: (v: V) => HashMap<K, A>): HashMap<K, A> {
338
- return ma.flatMapWithIndex((_, a) => f(a));
373
+ export function flatMap<K, V, A>(f: (v: V) => HashMap<K, A>) {
374
+ return (ma: HashMap<K, V>): HashMap<K, A> => {
375
+ return ma.flatMapWithIndex((_, a) => f(a));
376
+ };
339
377
  }
340
378
 
341
379
  /**
@@ -359,254 +397,330 @@ export function separate<K, A, B>(map: HashMap<K, Either<A, B>>): readonly [Hash
359
397
  /**
360
398
  * Filter out None and map
361
399
  *
362
- * @tsplus fluent fncts.HashMap filterMapWithIndex
400
+ * @tsplus pipeable fncts.HashMap filterMapWithIndex
363
401
  */
364
- export function filterMapWithIndex_<K, A, B>(map: HashMap<K, A>, f: (k: K, a: A) => Maybe<B>): HashMap<K, B> {
365
- return makeWith<K, B>(map.config).mutate((m) => {
366
- for (const [k, a] of map) {
367
- const o = f(k, a);
368
- if (o.isJust()) {
369
- m.set(k, o.value);
402
+ export function filterMapWithIndex<K, A, B>(f: (k: K, a: A) => Maybe<B>) {
403
+ return (map: HashMap<K, A>): HashMap<K, B> => {
404
+ return makeWith<K, B>(map.config).mutate((m) => {
405
+ for (const [k, a] of map) {
406
+ const o = f(k, a);
407
+ if (o.isJust()) {
408
+ m.set(k, o.value);
409
+ }
370
410
  }
371
- }
372
- });
411
+ });
412
+ };
373
413
  }
374
414
 
375
415
  /**
376
416
  * Filter out None and map
377
417
  *
378
- * @tsplus fluent fncts.HashMap filterMap
418
+ * @tsplus pipeable fncts.HashMap filterMap
379
419
  */
380
- export function filterMap_<K, A, B>(map: HashMap<K, A>, f: (a: A) => Maybe<B>): HashMap<K, B> {
381
- return map.filterMapWithIndex((_, a) => f(a));
420
+ export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
421
+ return <K>(map: HashMap<K, A>): HashMap<K, B> => {
422
+ return map.filterMapWithIndex((_, a) => f(a));
423
+ };
382
424
  }
383
425
 
384
426
  /**
385
427
  * Filter out by predicate
386
428
  *
387
- * @tsplus fluent fncts.HashMap filterWithIndex
429
+ * @tsplus pipeable fncts.HashMap filterWithIndex
388
430
  */
389
- export function filterWithIndex_<K, A, B extends A>(
390
- map: HashMap<K, A>,
431
+ export function filterWithIndex<K, A, B extends A>(
391
432
  refinement: RefinementWithIndex<K, A, B>,
392
- ): HashMap<K, B>;
393
- export function filterWithIndex_<K, A>(map: HashMap<K, A>, predicate: PredicateWithIndex<K, A>): HashMap<K, A>;
394
- export function filterWithIndex_<K, A>(map: HashMap<K, A>, predicate: PredicateWithIndex<K, A>): HashMap<K, A> {
395
- return makeWith<K, A>(map.config).mutate((m) => {
396
- for (const [k, a] of map) {
397
- if (predicate(k, a)) {
398
- m.set(k, a);
433
+ ): (map: HashMap<K, A>) => HashMap<K, B>;
434
+ export function filterWithIndex<K, A>(predicate: PredicateWithIndex<K, A>): (map: HashMap<K, A>) => HashMap<K, A>;
435
+ export function filterWithIndex<K, A>(predicate: PredicateWithIndex<K, A>) {
436
+ return (map: HashMap<K, A>): HashMap<K, A> => {
437
+ return makeWith<K, A>(map.config).mutate((m) => {
438
+ for (const [k, a] of map) {
439
+ if (predicate(k, a)) {
440
+ m.set(k, a);
441
+ }
399
442
  }
400
- }
401
- });
443
+ });
444
+ };
402
445
  }
403
446
 
404
447
  /**
405
448
  * Filter out by predicate
406
449
  *
407
- * @tsplus fluent fncts.HashMap filter
450
+ * @tsplus pipeable fncts.HashMap filter
408
451
  */
409
- export function filter_<K, A, B extends A>(map: HashMap<K, A>, refinement: Refinement<A, B>): HashMap<K, B>;
410
- export function filter_<K, A>(map: HashMap<K, A>, predicate: Predicate<A>): HashMap<K, A>;
411
- export function filter_<K, A>(map: HashMap<K, A>, predicate: Predicate<A>): HashMap<K, A> {
412
- return map.filterWithIndex((_, a) => predicate(a));
452
+ export function filter<A, B extends A>(refinement: Refinement<A, B>): <K>(map: HashMap<K, A>) => HashMap<K, B>;
453
+ export function filter<A>(predicate: Predicate<A>): <K>(map: HashMap<K, A>) => HashMap<K, A>;
454
+ export function filter<A>(predicate: Predicate<A>) {
455
+ return <K>(map: HashMap<K, A>): HashMap<K, A> => {
456
+ return map.filterWithIndex((_, a) => predicate(a));
457
+ };
413
458
  }
414
459
 
415
460
  /**
416
- * @tsplus fluent fncts.HashMap partitionMapWithIndex
461
+ * @tsplus pipeable fncts.HashMap partitionMapWithIndex
417
462
  */
418
- export function partitionMapWithIndex_<K, V, A, B>(
419
- map: HashMap<K, V>,
420
- f: (i: K, a: V) => Either<A, B>,
421
- ): readonly [HashMap<K, A>, HashMap<K, B>] {
422
- const left = makeWith<K, A>(map.config).beginMutation;
423
- const right = makeWith<K, B>(map.config).beginMutation;
424
-
425
- map.forEachWithIndex((k, v) => {
426
- f(k, v).match(
427
- (a) => {
428
- left.set(k, a);
429
- },
430
- (b) => {
431
- right.set(k, b);
432
- },
433
- );
434
- });
435
-
436
- return [left.endMutation, right.endMutation];
463
+ export function partitionMapWithIndex<K, V, A, B>(f: (i: K, a: V) => Either<A, B>) {
464
+ return (map: HashMap<K, V>): readonly [HashMap<K, A>, HashMap<K, B>] => {
465
+ const left = makeWith<K, A>(map.config).beginMutation;
466
+ const right = makeWith<K, B>(map.config).beginMutation;
467
+ map.forEachWithIndex((k, v) => {
468
+ f(k, v).match(
469
+ (a) => {
470
+ left.set(k, a);
471
+ },
472
+ (b) => {
473
+ right.set(k, b);
474
+ },
475
+ );
476
+ });
477
+ return [left.endMutation, right.endMutation];
478
+ };
437
479
  }
438
480
 
439
481
  /**
440
- * @tsplus fluent fncts.HashMap partitionMap
482
+ * @tsplus pipeable fncts.HashMap partitionMap
441
483
  */
442
- export function partitionMap_<K, V, A, B>(
443
- map: HashMap<K, V>,
444
- f: (a: V) => Either<A, B>,
445
- ): readonly [HashMap<K, A>, HashMap<K, B>] {
446
- return map.partitionMapWithIndex((_, a) => f(a));
484
+ export function partitionMap<V, A, B>(f: (a: V) => Either<A, B>) {
485
+ return <K>(map: HashMap<K, V>): readonly [HashMap<K, A>, HashMap<K, B>] => {
486
+ return map.partitionMapWithIndex((_, a) => f(a));
487
+ };
447
488
  }
448
489
 
449
490
  /**
450
- * @tsplus fluent fncts.HashMap partitionWithIndex
491
+ * @tsplus pipeable fncts.HashMap partitionWithIndex
451
492
  */
452
- export function partitionWithIndex_<K, V, B extends V>(
453
- map: HashMap<K, V>,
493
+ export function partitionWithIndex<K, V, B extends V>(
454
494
  refinement: RefinementWithIndex<K, V, B>,
455
- ): readonly [HashMap<K, V>, HashMap<K, B>];
456
- export function partitionWithIndex_<K, V>(
457
- map: HashMap<K, V>,
458
- predicate: PredicateWithIndex<K, V>,
459
- ): readonly [HashMap<K, V>, HashMap<K, V>];
460
- export function partitionWithIndex_<K, V>(
461
- map: HashMap<K, V>,
495
+ ): (map: HashMap<K, V>) => readonly [HashMap<K, V>, HashMap<K, B>];
496
+ export function partitionWithIndex<K, V>(
462
497
  predicate: PredicateWithIndex<K, V>,
463
- ): readonly [HashMap<K, V>, HashMap<K, V>] {
464
- const left = makeWith<K, V>(map.config).beginMutation;
465
- const right = makeWith<K, V>(map.config).beginMutation;
466
-
467
- map.forEachWithIndex((k, v) => {
468
- if (predicate(k, v)) {
469
- right.set(k, v);
470
- } else {
471
- left.set(k, v);
472
- }
473
- });
474
-
475
- return [left.endMutation, right.endMutation];
498
+ ): (map: HashMap<K, V>) => readonly [HashMap<K, V>, HashMap<K, V>];
499
+ export function partitionWithIndex<K, V>(predicate: PredicateWithIndex<K, V>) {
500
+ return (map: HashMap<K, V>): readonly [HashMap<K, V>, HashMap<K, V>] => {
501
+ const left = makeWith<K, V>(map.config).beginMutation;
502
+ const right = makeWith<K, V>(map.config).beginMutation;
503
+ map.forEachWithIndex((k, v) => {
504
+ if (predicate(k, v)) {
505
+ right.set(k, v);
506
+ } else {
507
+ left.set(k, v);
508
+ }
509
+ });
510
+ return [left.endMutation, right.endMutation];
511
+ };
476
512
  }
477
513
 
478
514
  /**
479
- * @tsplus fluent fncts.HashMap partition
515
+ * @tsplus pipeable fncts.HashMap partition
480
516
  */
481
- export function partition_<K, V, B extends V>(
482
- map: HashMap<K, V>,
517
+ export function partition<V, B extends V>(
483
518
  refinement: Refinement<V, B>,
484
- ): readonly [HashMap<K, V>, HashMap<K, B>];
485
- export function partition_<K, V>(map: HashMap<K, V>, predicate: Predicate<V>): readonly [HashMap<K, V>, HashMap<K, V>];
486
- export function partition_<K, V>(map: HashMap<K, V>, predicate: Predicate<V>): readonly [HashMap<K, V>, HashMap<K, V>] {
487
- return map.partitionWithIndex((_, a) => predicate(a));
519
+ ): <K>(map: HashMap<K, V>) => readonly [HashMap<K, V>, HashMap<K, B>];
520
+ export function partition<V>(
521
+ predicate: Predicate<V>,
522
+ ): <K>(map: HashMap<K, V>) => readonly [HashMap<K, V>, HashMap<K, V>];
523
+ export function partition<V>(predicate: Predicate<V>) {
524
+ return <K>(map: HashMap<K, V>): readonly [HashMap<K, V>, HashMap<K, V>] => {
525
+ return map.partitionWithIndex((_, a) => predicate(a));
526
+ };
488
527
  }
489
528
 
490
529
  /**
491
530
  * Reduce a state over the map entries
492
531
  *
493
- * @tsplus fluent fncts.HashMap foldLeftWithIndex
532
+ * @tsplus pipeable fncts.HashMap foldLeftWithIndex
494
533
  */
495
- export function foldLeftWithIndex_<K, V, Z>(map: HashMap<K, V>, z: Z, f: (k: K, z: Z, v: V) => Z): Z {
496
- const root = map.root;
497
- if (root._tag === "LeafNode") return root.value.isJust() ? f(root.key, z, root.value.value) : z;
498
- if (root._tag === "EmptyNode") {
499
- return z;
500
- }
501
- const toVisit = [root.children];
502
- let children;
503
- let acc = z;
504
- while ((children = toVisit.pop())) {
505
- for (let i = 0, len = children.length; i < len; ) {
506
- const child = children[i++];
507
- if (child && !isEmptyNode(child)) {
508
- if (child._tag === "LeafNode") {
509
- if (child.value.isJust()) {
510
- // eslint-disable-next-line no-param-reassign
511
- acc = f(child.key, acc, child.value.value);
534
+ export function foldLeftWithIndex<K, V, Z>(z: Z, f: (k: K, z: Z, v: V) => Z) {
535
+ return (map: HashMap<K, V>): Z => {
536
+ const root = map.root;
537
+ if (root._tag === "LeafNode") return root.value.isJust() ? f(root.key, z, root.value.value) : z;
538
+ if (root._tag === "EmptyNode") {
539
+ return z;
540
+ }
541
+ const toVisit = [root.children];
542
+ let children;
543
+ let acc = z;
544
+ while ((children = toVisit.pop())) {
545
+ for (let i = 0, len = children.length; i < len; ) {
546
+ const child = children[i++];
547
+ if (child && !isEmptyNode(child)) {
548
+ if (child._tag === "LeafNode") {
549
+ if (child.value.isJust()) {
550
+ // eslint-disable-next-line no-param-reassign
551
+ acc = f(child.key, acc, child.value.value);
552
+ }
553
+ } else {
554
+ toVisit.push(child.children);
512
555
  }
513
- } else {
514
- toVisit.push(child.children);
515
556
  }
516
557
  }
517
558
  }
518
- }
519
- return acc;
559
+ return acc;
560
+ };
520
561
  }
521
562
 
522
563
  /**
523
564
  * Reduce a state over the map entries
524
565
  *
525
- * @tsplus fluent fncts.HashMap foldLeft
566
+ * @tsplus pipeable fncts.HashMap foldLeft
526
567
  */
527
- export function foldLeft_<K, V, Z>(map: HashMap<K, V>, z: Z, f: (z: Z, v: V) => Z): Z {
528
- return map.foldLeftWithIndex(z, (_, b, a) => f(b, a));
568
+ export function foldLeft<V, Z>(z: Z, f: (z: Z, v: V) => Z) {
569
+ return <K>(map: HashMap<K, V>): Z => {
570
+ return map.foldLeftWithIndex(z, (_, b, a) => f(b, a));
571
+ };
529
572
  }
530
573
 
531
574
  /**
532
575
  * @tsplus getter fncts.HashMap traverseWithIndex
533
576
  */
534
- export const traverseWithIndex = P.TraversableWithIndex.makeTraverseWithIndex<HashMapF>()(
535
- () => (ta) => (G) => (f) =>
536
- ta.foldLeftWithIndex(G.pure(makeWith(ta.config)), (k, b, a) => G.zipWith(b, f(k, a), (map, b) => map.set(k, b))),
537
- );
577
+ export function _traverseWithIndex<K, A>(
578
+ self: HashMap<K, A>,
579
+ ): <G extends HKT, GC = HKT.None>(
580
+ G: P.Applicative<G, GC>,
581
+ ) => <K1, Q, W, X, I, S, R, E, B>(
582
+ f: (i: K, a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, B>,
583
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, HashMap<K, B>>;
584
+ export function _traverseWithIndex<K, A>(
585
+ self: HashMap<K, A>,
586
+ ): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: K, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, HashMap<K, B>> {
587
+ return (G) => (f) =>
588
+ self.foldLeftWithIndex(G.pure(HashMap.makeWith(self.config)), (k, b, a) =>
589
+ pipe(
590
+ b,
591
+ G.zipWith(f(k, a), (map, b) => map.set(k, b)),
592
+ ),
593
+ );
594
+ }
538
595
 
539
596
  /**
540
597
  * @tsplus getter fncts.HashMap traverse
541
598
  */
542
- export const traverse: P.Traversable<HashMapF>["traverse"] = (ta) => (G) => (f) =>
599
+ export function _traverse<K, A>(
600
+ self: HashMap<K, A>,
601
+ ): <G extends HKT, GC = HKT.None>(
602
+ G: P.Applicative<G, GC>,
603
+ ) => <K1, Q, W, X, I, S, R, E, B>(
604
+ f: (a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, B>,
605
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, HashMap<K, B>> {
606
+ return (G) => (f) => self.traverseWithIndex(G)((_, a) => f(a));
607
+ }
608
+
609
+ export const traverseWithIndex: P.TraversableWithIndex<HashMapF>["traverseWithIndex"] = (G) => (f) => (ta) =>
610
+ ta.traverseWithIndex(G)(f);
611
+
612
+ export const traverse: P.Traversable<HashMapF>["traverse"] = (G) => (f) => (ta) =>
543
613
  ta.traverseWithIndex(G)((_, a) => f(a));
544
614
 
545
615
  /**
546
- * @tsplus fluent fncts.HashMap unsafeGet
616
+ * @tsplus pipeable fncts.HashMap unsafeGet
547
617
  */
548
- export function unsafeGet_<K, V>(self: HashMap<K, V>, key: K): V | undefined {
549
- return self.getHash(key, self.config.hash(key)).value;
618
+ export function unsafeGet<K>(key: K) {
619
+ return <V>(self: HashMap<K, V>): V | undefined => {
620
+ return self.getHash(key, self.config.hash(key)).value;
621
+ };
550
622
  }
551
623
 
552
624
  /**
553
625
  * @tsplus getter fncts.HashMap witherWithIndex
554
626
  */
555
- export const witherWithIndex: P.WitherableWithIndex<HashMapF>["witherWithIndex"] = (wa) => (G) => (f) =>
556
- G.map(wa.traverseWithIndex(G)(f), compact);
627
+ export function _witherWithIndex<K, A>(
628
+ self: HashMap<K, A>,
629
+ ): <G extends HKT, GC = HKT.None>(
630
+ G: P.Applicative<G, GC>,
631
+ ) => <K1, Q, W, X, I, S, R, E, B>(
632
+ f: (i: K, a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, Maybe<B>>,
633
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, HashMap<K, B>> {
634
+ return (G) => (f) => self.traverseWithIndex(G)(f).pipe(G.map(compact));
635
+ }
557
636
 
558
637
  /**
559
638
  * @tsplus getter fncts.HashMap wither
560
639
  */
561
- export const wither: P.Witherable<HashMapF>["wither"] = (wa) => (G) => (f) => wa.witherWithIndex(G)((_, a) => f(a));
640
+ export function _wither<K, A>(
641
+ self: HashMap<K, A>,
642
+ ): <G extends HKT, GC = HKT.None>(
643
+ G: P.Applicative<G, GC>,
644
+ ) => <K1, Q, W, X, I, S, R, E, B>(
645
+ f: (a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, Maybe<B>>,
646
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, HashMap<K, B>> {
647
+ return (G) => (f) => self.witherWithIndex(G)((_, a) => f(a));
648
+ }
649
+
650
+ export const witherWithIndex: P.WitherableWithIndex<HashMapF>["witherWithIndex"] = (G) => (f) => (wa) =>
651
+ wa.witherWithIndex(G)(f);
652
+
653
+ export const wither: P.Witherable<HashMapF>["wither"] = (G) => (f) => (wa) => wa.witherWithIndex(G)((_, a) => f(a));
562
654
 
563
655
  /**
564
656
  * @tsplus getter fncts.HashMap wiltWithIndex
565
657
  */
566
- export const wiltWithIndex: P.WitherableWithIndex<HashMapF>["wiltWithIndex"] = (wa) => (G) => (f) =>
567
- G.map(wa.traverseWithIndex(G)(f), separate);
658
+ export function _wiltWithIndex<K, A>(
659
+ self: HashMap<K, A>,
660
+ ): <G extends HKT, GC = HKT.None>(
661
+ G: P.Applicative<G, GC>,
662
+ ) => <K1, Q, W, X, I, S, R, E, B, B2>(
663
+ f: (i: K, a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, Either<B, B2>>,
664
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, readonly [HashMap<K, B>, HashMap<K, B2>]> {
665
+ return (G) => (f) => self.traverseWithIndex(G)(f).pipe(G.map(separate));
666
+ }
568
667
 
569
668
  /**
570
669
  * @tsplus getter fncts.HashMap wilt
571
670
  */
572
- export const wilt: P.Witherable<HashMapF>["wilt"] = (wa) => (G) => (f) => wa.wiltWithIndex(G)((_, a) => f(a));
671
+ export function _wilt<K, A>(
672
+ self: HashMap<K, A>,
673
+ ): <G extends HKT, GC = HKT.None>(
674
+ G: P.Applicative<G, GC>,
675
+ ) => <K1, Q, W, X, I, S, R, E, B, B2>(
676
+ f: (a: A) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, Either<B, B2>>,
677
+ ) => HKT.Kind<G, GC, K1, Q, W, X, I, S, R, E, readonly [HashMap<K, B>, HashMap<K, B2>]> {
678
+ return (G) => (f) => self.wiltWithIndex(G)((_, a) => f(a));
679
+ }
680
+
681
+ export const wiltWithIndex: P.WitherableWithIndex<HashMapF>["wiltWithIndex"] = (G) => (f) => (wa) =>
682
+ wa.wiltWithIndex(G)(f);
683
+
684
+ export const wilt: P.Witherable<HashMapF>["wilt"] = (G) => (f) => (wa) => wa.wiltWithIndex(G)((_, a) => f(a));
573
685
 
574
686
  /**
575
- * @tsplus fluent fncts.HashMap unionWith
687
+ * @tsplus pipeable fncts.HashMap unionWith
576
688
  */
577
- export function unionWith_<K, A>(
578
- self: HashMap<K, A>,
579
- that: Iterable<readonly [K, A]>,
580
- f: (x: A, y: A) => A,
581
- ): HashMap<K, A> {
582
- return self.mutate((m) => {
583
- for (const [k, a] of that) {
584
- m.modify(k, (v) =>
585
- v.match(
586
- () => Just(a),
587
- (a0) => Just(f(a0, a)),
588
- ),
589
- );
590
- }
591
- });
689
+ export function unionWith<K, A>(that: Iterable<readonly [K, A]>, f: (x: A, y: A) => A) {
690
+ return (self: HashMap<K, A>): HashMap<K, A> => {
691
+ return self.mutate((m) => {
692
+ for (const [k, a] of that) {
693
+ m.modify(k, (v) =>
694
+ v.match(
695
+ () => Just(a),
696
+ (a0) => Just(f(a0, a)),
697
+ ),
698
+ );
699
+ }
700
+ });
701
+ };
592
702
  }
593
703
 
594
704
  /**
595
- * @tsplus fluent fncts.HashMap union
705
+ * @tsplus pipeable fncts.HashMap union
596
706
  */
597
- export function union_<K, A>(self: HashMap<K, A>, that: Iterable<readonly [K, A]>): HashMap<K, A> {
598
- return self.mutate((m) => {
599
- for (const [k, a] of that) {
600
- m.set(k, a);
601
- }
602
- });
707
+ export function union<K, A>(that: Iterable<readonly [K, A]>) {
708
+ return (self: HashMap<K, A>): HashMap<K, A> => {
709
+ return self.mutate((m) => {
710
+ for (const [k, a] of that) {
711
+ m.set(k, a);
712
+ }
713
+ });
714
+ };
603
715
  }
604
716
 
605
717
  /**
606
- * @tsplus fluent fncts.HashMap pop
718
+ * @tsplus pipeable fncts.HashMap pop
607
719
  */
608
- export function pop_<K, A>(map: HashMap<K, A>, k: K): Maybe<readonly [A, HashMap<K, A>]> {
609
- return map.get(k).map((a) => [a, map.remove(k)]);
720
+ export function pop<K>(k: K) {
721
+ return <A>(map: HashMap<K, A>): Maybe<readonly [A, HashMap<K, A>]> => {
722
+ return map.get(k).map((a) => [a, map.remove(k)]);
723
+ };
610
724
  }
611
725
 
612
726
  /*