@fncts/base 0.0.20 → 0.0.22

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 (1671) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +8 -19
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/Iterable/api.cjs +500 -610
  4. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  5. package/_cjs/collection/Iterable/constructors.cjs +7 -25
  6. package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
  7. package/_cjs/collection/Iterable/definition.cjs.map +1 -1
  8. package/_cjs/collection/Iterable.cjs +0 -6
  9. package/_cjs/collection/Iterable.cjs.map +1 -1
  10. package/_cjs/collection/compat/Array/api.cjs +17 -26
  11. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  12. package/_cjs/collection/compat/Array/definition.cjs.map +1 -1
  13. package/_cjs/collection/compat/Array.cjs +0 -17
  14. package/_cjs/collection/compat/Array.cjs.map +1 -1
  15. package/_cjs/collection/compat/ArrayLike/api.cjs +4 -13
  16. package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
  17. package/_cjs/collection/immutable/Conc/api/empty.cjs +0 -2
  18. package/_cjs/collection/immutable/Conc/api/empty.cjs.map +1 -1
  19. package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -9
  20. package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
  21. package/_cjs/collection/immutable/Conc/api/replicate.cjs +0 -4
  22. package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
  23. package/_cjs/collection/immutable/Conc/api.cjs +801 -1039
  24. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  25. package/_cjs/collection/immutable/Conc/constructors.cjs +0 -14
  26. package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
  27. package/_cjs/collection/immutable/Conc/definition.cjs +76 -273
  28. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  29. package/_cjs/collection/immutable/Conc.cjs +0 -25
  30. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  31. package/_cjs/collection/immutable/Dictionary/api.cjs +57 -70
  32. package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
  33. package/_cjs/collection/immutable/Dictionary/definition.cjs +0 -4
  34. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  35. package/_cjs/collection/immutable/Dictionary.cjs +28 -0
  36. package/_cjs/collection/immutable/Dictionary.cjs.map +1 -0
  37. package/_cjs/collection/immutable/HashMap/api.cjs +371 -432
  38. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  39. package/_cjs/collection/immutable/HashMap/definition.cjs +20 -43
  40. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  41. package/_cjs/collection/immutable/HashMap/internal.cjs +3 -88
  42. package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
  43. package/_cjs/collection/immutable/HashMap.cjs +0 -4
  44. package/_cjs/collection/immutable/HashMap.cjs.map +1 -1
  45. package/_cjs/collection/immutable/HashSet/api.cjs +283 -339
  46. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  47. package/_cjs/collection/immutable/HashSet/definition.cjs +18 -92
  48. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  49. package/_cjs/collection/immutable/HashSet.cjs +0 -4
  50. package/_cjs/collection/immutable/HashSet.cjs.map +1 -1
  51. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +6 -9
  52. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +1 -1
  53. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +6 -8
  54. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +1 -1
  55. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +6 -8
  56. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +1 -1
  57. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +14 -19
  58. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +1 -1
  59. package/_cjs/collection/immutable/ImmutableArray/api.cjs +939 -1138
  60. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  61. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +0 -18
  62. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +1 -1
  63. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +4 -21
  64. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  65. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +49 -63
  66. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  67. package/_cjs/collection/immutable/ImmutableArray.cjs +0 -29
  68. package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
  69. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +335 -420
  70. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  71. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +0 -24
  72. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +1 -1
  73. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +0 -9
  74. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  75. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +2 -19
  76. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +1 -1
  77. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +24 -33
  78. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  79. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs +0 -23
  80. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +1 -1
  81. package/_cjs/collection/immutable/List/api/foldLeft.cjs +12 -16
  82. package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
  83. package/_cjs/collection/immutable/List/api/unsafeTail.cjs +0 -6
  84. package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
  85. package/_cjs/collection/immutable/List/api.cjs +167 -239
  86. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  87. package/_cjs/collection/immutable/List/constructors.cjs +1 -19
  88. package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
  89. package/_cjs/collection/immutable/List/definition.cjs +2 -25
  90. package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
  91. package/_cjs/collection/immutable/List.cjs +0 -10
  92. package/_cjs/collection/immutable/List.cjs.map +1 -1
  93. package/_cjs/collection/immutable/Queue/api.cjs +87 -118
  94. package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
  95. package/_cjs/collection/immutable/Queue/constructors.cjs +0 -8
  96. package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
  97. package/_cjs/collection/immutable/Queue/definition.cjs +3 -13
  98. package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
  99. package/_cjs/collection/immutable/Queue/guards.cjs +2 -6
  100. package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
  101. package/_cjs/collection/immutable/Queue.cjs +0 -8
  102. package/_cjs/collection/immutable/Queue.cjs.map +1 -1
  103. package/_cjs/collection/immutable/RoseTree/api.cjs +76 -118
  104. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
  105. package/_cjs/collection/immutable/RoseTree/definition.cjs +4 -19
  106. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  107. package/_cjs/collection/immutable/RoseTree.cjs +0 -4
  108. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -1
  109. package/_cjs/collection/immutable/SortedMap/api.cjs +439 -536
  110. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  111. package/_cjs/collection/immutable/SortedMap/definition.cjs +4 -6
  112. package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
  113. package/_cjs/collection/immutable/SortedMap/internal.cjs +55 -226
  114. package/_cjs/collection/immutable/SortedMap/internal.cjs.map +1 -1
  115. package/_cjs/collection/immutable/SortedMap/iterator.cjs +16 -107
  116. package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
  117. package/_cjs/collection/immutable/SortedMap/node.cjs +0 -3
  118. package/_cjs/collection/immutable/SortedMap/node.cjs.map +1 -1
  119. package/_cjs/collection/immutable/SortedMap.cjs +0 -10
  120. package/_cjs/collection/immutable/SortedMap.cjs.map +1 -1
  121. package/_cjs/collection/immutable/Vector/api.cjs +751 -885
  122. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  123. package/_cjs/collection/immutable/Vector/definition.cjs +27 -50
  124. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  125. package/_cjs/collection/immutable/Vector/internal.cjs +79 -398
  126. package/_cjs/collection/immutable/Vector/internal.cjs.map +1 -1
  127. package/_cjs/collection/immutable/Vector.cjs +0 -4
  128. package/_cjs/collection/immutable/Vector.cjs.map +1 -1
  129. package/_cjs/collection/mutable/HashMap.cjs +10 -89
  130. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  131. package/_cjs/collection/mutable/HashSet.cjs +6 -67
  132. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  133. package/_cjs/collection/mutable/ListBuffer.cjs +3 -35
  134. package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
  135. package/_cjs/collection/mutable/internal.cjs +0 -8
  136. package/_cjs/collection/mutable/internal.cjs.map +1 -1
  137. package/_cjs/collection/weak/IterableWeakMap.cjs +6 -32
  138. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  139. package/_cjs/collection/weak/IterableWeakSet.cjs +6 -28
  140. package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
  141. package/_cjs/control/Eval/api/sequenceArray.cjs +0 -5
  142. package/_cjs/control/Eval/api/sequenceArray.cjs.map +1 -1
  143. package/_cjs/control/Eval/api.cjs +56 -76
  144. package/_cjs/control/Eval/api.cjs.map +1 -1
  145. package/_cjs/control/Eval/constructors.cjs +0 -9
  146. package/_cjs/control/Eval/constructors.cjs.map +1 -1
  147. package/_cjs/control/Eval/definition.cjs +5 -23
  148. package/_cjs/control/Eval/definition.cjs.map +1 -1
  149. package/_cjs/control/Eval/instance.cjs +6 -13
  150. package/_cjs/control/Eval/instance.cjs.map +1 -1
  151. package/_cjs/control/Eval/run.cjs +5 -28
  152. package/_cjs/control/Eval/run.cjs.map +1 -1
  153. package/_cjs/control/Eval.cjs +0 -10
  154. package/_cjs/control/Eval.cjs.map +1 -1
  155. package/_cjs/control/LazyValue.cjs +0 -6
  156. package/_cjs/control/LazyValue.cjs.map +1 -1
  157. package/_cjs/control/Z/api.cjs +241 -306
  158. package/_cjs/control/Z/api.cjs.map +1 -1
  159. package/_cjs/control/Z/definition.cjs +13 -84
  160. package/_cjs/control/Z/definition.cjs.map +1 -1
  161. package/_cjs/control/Z/instances.cjs +3 -8
  162. package/_cjs/control/Z/instances.cjs.map +1 -1
  163. package/_cjs/control/Z/runtime.cjs +206 -290
  164. package/_cjs/control/Z/runtime.cjs.map +1 -1
  165. package/_cjs/control/Z.cjs +0 -8
  166. package/_cjs/control/Z.cjs.map +1 -1
  167. package/_cjs/data/Branded/definition.cjs +0 -5
  168. package/_cjs/data/Branded/definition.cjs.map +1 -1
  169. package/_cjs/data/Branded.cjs +0 -15
  170. package/_cjs/data/Branded.cjs.map +1 -1
  171. package/_cjs/data/CaseClass.cjs +13 -45
  172. package/_cjs/data/CaseClass.cjs.map +1 -1
  173. package/_cjs/data/Cause/api/fold.cjs +31 -75
  174. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  175. package/_cjs/data/Cause/api/isEmpty.cjs +7 -33
  176. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  177. package/_cjs/data/Cause/api/linearize.cjs +9 -16
  178. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  179. package/_cjs/data/Cause/api/prettyPrint.cjs +1 -14
  180. package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
  181. package/_cjs/data/Cause/api/unified.cjs +14 -54
  182. package/_cjs/data/Cause/api/unified.cjs.map +1 -1
  183. package/_cjs/data/Cause/api.cjs +221 -543
  184. package/_cjs/data/Cause/api.cjs.map +1 -1
  185. package/_cjs/data/Cause/definition.cjs +63 -300
  186. package/_cjs/data/Cause/definition.cjs.map +1 -1
  187. package/_cjs/data/Cause.cjs +0 -14
  188. package/_cjs/data/Cause.cjs.map +1 -1
  189. package/_cjs/data/Const/api.cjs +8 -10
  190. package/_cjs/data/Const/api.cjs.map +1 -1
  191. package/_cjs/data/Const/definition.cjs +0 -3
  192. package/_cjs/data/Const/definition.cjs.map +1 -1
  193. package/_cjs/data/Const/instances.cjs +6 -14
  194. package/_cjs/data/Const/instances.cjs.map +1 -1
  195. package/_cjs/data/Const.cjs +0 -6
  196. package/_cjs/data/Const.cjs.map +1 -1
  197. package/_cjs/data/Datum/api.cjs +200 -279
  198. package/_cjs/data/Datum/api.cjs.map +1 -1
  199. package/_cjs/data/Datum/definition.cjs +10 -50
  200. package/_cjs/data/Datum/definition.cjs.map +1 -1
  201. package/_cjs/data/Datum/instances.cjs +0 -9
  202. package/_cjs/data/Datum/instances.cjs.map +1 -1
  203. package/_cjs/data/DatumEither/api.cjs +161 -224
  204. package/_cjs/data/DatumEither/api.cjs.map +1 -1
  205. package/_cjs/data/DatumEither/definition.cjs.map +1 -1
  206. package/_cjs/data/DecodeError/definition.cjs +15 -96
  207. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  208. package/_cjs/data/DecodeError.cjs +0 -4
  209. package/_cjs/data/DecodeError.cjs.map +1 -1
  210. package/_cjs/data/Decoder/api.cjs +431 -76
  211. package/_cjs/data/Decoder/api.cjs.map +1 -1
  212. package/_cjs/data/Decoder/definition.cjs +0 -6
  213. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  214. package/_cjs/data/Decoder.cjs +0 -4
  215. package/_cjs/data/Decoder.cjs.map +1 -1
  216. package/_cjs/data/Duration/api.cjs +24 -36
  217. package/_cjs/data/Duration/api.cjs.map +1 -1
  218. package/_cjs/data/Duration/definition.cjs +3 -17
  219. package/_cjs/data/Duration/definition.cjs.map +1 -1
  220. package/_cjs/data/Duration.cjs +0 -4
  221. package/_cjs/data/Duration.cjs.map +1 -1
  222. package/_cjs/data/Either/api/align.cjs +8 -8
  223. package/_cjs/data/Either/api/align.cjs.map +1 -1
  224. package/_cjs/data/Either/api/alignWith.cjs +8 -18
  225. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  226. package/_cjs/data/Either/api.cjs +171 -262
  227. package/_cjs/data/Either/api.cjs.map +1 -1
  228. package/_cjs/data/Either/constructors.cjs +11 -28
  229. package/_cjs/data/Either/constructors.cjs.map +1 -1
  230. package/_cjs/data/Either/definition.cjs +4 -23
  231. package/_cjs/data/Either/definition.cjs.map +1 -1
  232. package/_cjs/data/Either/destructors.cjs +12 -17
  233. package/_cjs/data/Either/destructors.cjs.map +1 -1
  234. package/_cjs/data/Either/instances.cjs +21 -74
  235. package/_cjs/data/Either/instances.cjs.map +1 -1
  236. package/_cjs/data/Either.cjs +0 -10
  237. package/_cjs/data/Either.cjs.map +1 -1
  238. package/_cjs/data/EitherT/api.cjs +8 -32
  239. package/_cjs/data/EitherT/api.cjs.map +1 -1
  240. package/_cjs/data/EitherT/definition.cjs.map +1 -1
  241. package/_cjs/data/Encoder/api.cjs +324 -0
  242. package/_cjs/data/Encoder/api.cjs.map +1 -0
  243. package/_cjs/data/Encoder/definition.cjs +21 -0
  244. package/_cjs/data/Encoder/definition.cjs.map +1 -0
  245. package/_cjs/data/Encoder.cjs +28 -0
  246. package/_cjs/data/Encoder.cjs.map +1 -0
  247. package/_cjs/data/Environment/api.cjs +47 -65
  248. package/_cjs/data/Environment/api.cjs.map +1 -1
  249. package/_cjs/data/Environment/definition.cjs +5 -21
  250. package/_cjs/data/Environment/definition.cjs.map +1 -1
  251. package/_cjs/data/Environment.cjs +0 -4
  252. package/_cjs/data/Environment.cjs.map +1 -1
  253. package/_cjs/data/EnvironmentPatch.cjs +31 -93
  254. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  255. package/_cjs/{typeclass → data}/Eq/definition.cjs +2 -4
  256. package/_cjs/data/Eq/definition.cjs.map +1 -0
  257. package/_cjs/{typeclass → data}/Eq/derivations.cjs +9 -18
  258. package/_cjs/data/Eq/derivations.cjs.map +1 -0
  259. package/_cjs/{typeclass → data}/Eq.cjs +0 -2
  260. package/_cjs/data/Eq.cjs.map +1 -0
  261. package/_cjs/{typeclass → data}/Equatable/api.cjs +2 -10
  262. package/_cjs/data/Equatable/api.cjs.map +1 -0
  263. package/_cjs/{typeclass → data}/Equatable/definition.cjs +0 -6
  264. package/_cjs/data/Equatable/definition.cjs.map +1 -0
  265. package/_cjs/{typeclass → data}/Equatable/fast-equals.cjs +1 -83
  266. package/_cjs/data/Equatable/fast-equals.cjs.map +1 -0
  267. package/_cjs/{typeclass → data}/Equatable.cjs +0 -6
  268. package/_cjs/data/Equatable.cjs.map +1 -0
  269. package/_cjs/data/ExecutionStrategy.cjs +20 -37
  270. package/_cjs/data/ExecutionStrategy.cjs.map +1 -1
  271. package/_cjs/data/Exit/api.cjs +143 -178
  272. package/_cjs/data/Exit/api.cjs.map +1 -1
  273. package/_cjs/data/Exit/constructors.cjs +4 -26
  274. package/_cjs/data/Exit/constructors.cjs.map +1 -1
  275. package/_cjs/data/Exit/definition.cjs +8 -48
  276. package/_cjs/data/Exit/definition.cjs.map +1 -1
  277. package/_cjs/data/Exit.cjs +0 -6
  278. package/_cjs/data/Exit.cjs.map +1 -1
  279. package/_cjs/data/FiberId/api.cjs +24 -38
  280. package/_cjs/data/FiberId/api.cjs.map +1 -1
  281. package/_cjs/data/FiberId/constructors.cjs +5 -19
  282. package/_cjs/data/FiberId/constructors.cjs.map +1 -1
  283. package/_cjs/data/FiberId/definition.cjs +7 -38
  284. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  285. package/_cjs/data/FiberId.cjs +0 -6
  286. package/_cjs/data/FiberId.cjs.map +1 -1
  287. package/_cjs/data/Guard/api.cjs +419 -0
  288. package/_cjs/data/Guard/api.cjs.map +1 -0
  289. package/_cjs/{typeclass → data}/Guard/definition.cjs +0 -6
  290. package/_cjs/data/Guard/definition.cjs.map +1 -0
  291. package/_cjs/{typeclass → data}/Guard.cjs +0 -4
  292. package/_cjs/data/Guard.cjs.map +1 -0
  293. package/_cjs/{typeclass → data}/Hash.cjs +0 -2
  294. package/_cjs/data/Hash.cjs.map +1 -0
  295. package/_cjs/{typeclass → data}/HashEq.cjs +14 -25
  296. package/_cjs/data/HashEq.cjs.map +1 -0
  297. package/_cjs/{typeclass → data}/Hashable/definition.cjs +0 -6
  298. package/_cjs/data/Hashable/definition.cjs.map +1 -0
  299. package/_cjs/{typeclass → data}/Hashable/hash.cjs +3 -65
  300. package/_cjs/data/Hashable/hash.cjs.map +1 -0
  301. package/_cjs/{typeclass → data}/Hashable.cjs +0 -4
  302. package/_cjs/data/Hashable.cjs.map +1 -0
  303. package/_cjs/data/Identity/api.cjs +26 -35
  304. package/_cjs/data/Identity/api.cjs.map +1 -1
  305. package/_cjs/data/Identity/definition.cjs +0 -4
  306. package/_cjs/data/Identity/definition.cjs.map +1 -1
  307. package/_cjs/data/Identity/instances.cjs +7 -12
  308. package/_cjs/data/Identity/instances.cjs.map +1 -1
  309. package/_cjs/data/Identity.cjs +0 -6
  310. package/_cjs/data/Identity.cjs.map +1 -1
  311. package/_cjs/data/Interval.cjs +46 -67
  312. package/_cjs/data/Interval.cjs.map +1 -1
  313. package/_cjs/data/Intervals.cjs +45 -76
  314. package/_cjs/data/Intervals.cjs.map +1 -1
  315. package/_cjs/data/Maybe/api.cjs +126 -171
  316. package/_cjs/data/Maybe/api.cjs.map +1 -1
  317. package/_cjs/data/Maybe/constructors.cjs +2 -26
  318. package/_cjs/data/Maybe/constructors.cjs.map +1 -1
  319. package/_cjs/data/Maybe/definition.cjs +10 -51
  320. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  321. package/_cjs/data/Maybe/destructors.cjs +7 -8
  322. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  323. package/_cjs/data/Maybe/instances.cjs +41 -35
  324. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  325. package/_cjs/data/Maybe.cjs +0 -10
  326. package/_cjs/data/Maybe.cjs.map +1 -1
  327. package/_cjs/data/Newtype.cjs +0 -7
  328. package/_cjs/data/Newtype.cjs.map +1 -1
  329. package/_cjs/data/Ord/api/contramap.cjs +18 -0
  330. package/_cjs/data/Ord/api/contramap.cjs.map +1 -0
  331. package/_cjs/{typeclass → data}/Ord/api/max.cjs +3 -4
  332. package/_cjs/data/Ord/api/max.cjs.map +1 -0
  333. package/_cjs/{typeclass → data}/Ord/api/min.cjs +3 -4
  334. package/_cjs/data/Ord/api/min.cjs.map +1 -0
  335. package/_cjs/{typeclass → data}/Ord/api.cjs +0 -6
  336. package/_cjs/data/Ord/api.cjs.map +1 -0
  337. package/_cjs/{typeclass → data}/Ord/definition.cjs +5 -12
  338. package/_cjs/data/Ord/definition.cjs.map +1 -0
  339. package/_cjs/{typeclass → data}/Ord/instances.cjs +13 -23
  340. package/_cjs/data/Ord/instances.cjs.map +1 -0
  341. package/_cjs/{typeclass → data}/Ord.cjs +0 -6
  342. package/_cjs/data/Ord.cjs.map +1 -0
  343. package/_cjs/{typeclass → data}/Ordering.cjs +0 -9
  344. package/_cjs/data/Ordering.cjs.map +1 -0
  345. package/_cjs/data/Predicate/api.cjs +10 -15
  346. package/_cjs/data/Predicate/api.cjs.map +1 -1
  347. package/_cjs/data/Predicate.cjs +0 -4
  348. package/_cjs/data/Predicate.cjs.map +1 -1
  349. package/_cjs/data/Refinement/api.cjs +15 -16
  350. package/_cjs/data/Refinement/api.cjs.map +1 -1
  351. package/_cjs/data/Refinement.cjs +0 -4
  352. package/_cjs/data/Refinement.cjs.map +1 -1
  353. package/_cjs/{typeclass → data}/Showable/definition.cjs +4 -11
  354. package/_cjs/data/Showable/definition.cjs.map +1 -0
  355. package/_cjs/{typeclass → data}/Showable/show.cjs +118 -271
  356. package/_cjs/data/Showable/show.cjs.map +1 -0
  357. package/_cjs/{typeclass → data}/Showable/styles.cjs +0 -6
  358. package/_cjs/data/Showable/styles.cjs.map +1 -0
  359. package/_cjs/{typeclass → data}/Showable/util.cjs +51 -113
  360. package/_cjs/data/Showable/util.cjs.map +1 -0
  361. package/_cjs/{typeclass → data}/Showable.cjs +0 -4
  362. package/_cjs/data/Showable.cjs.map +1 -0
  363. package/_cjs/data/Struct/api.cjs +65 -85
  364. package/_cjs/data/Struct/api.cjs.map +1 -1
  365. package/_cjs/data/Struct/definition.cjs +0 -4
  366. package/_cjs/data/Struct/definition.cjs.map +1 -1
  367. package/_cjs/data/Tag/constructors.cjs +1 -7
  368. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  369. package/_cjs/data/Tag/definition.cjs +3 -21
  370. package/_cjs/data/Tag/definition.cjs.map +1 -1
  371. package/_cjs/data/Tag.cjs +0 -4
  372. package/_cjs/data/Tag.cjs.map +1 -1
  373. package/_cjs/data/These/api.cjs +119 -226
  374. package/_cjs/data/These/api.cjs.map +1 -1
  375. package/_cjs/data/These/constructors.cjs +1 -13
  376. package/_cjs/data/These/constructors.cjs.map +1 -1
  377. package/_cjs/data/These/definition.cjs +3 -27
  378. package/_cjs/data/These/definition.cjs.map +1 -1
  379. package/_cjs/data/These/destructors.cjs +24 -52
  380. package/_cjs/data/These/destructors.cjs.map +1 -1
  381. package/_cjs/data/These/instances.cjs +2 -16
  382. package/_cjs/data/These/instances.cjs.map +1 -1
  383. package/_cjs/data/These.cjs +0 -10
  384. package/_cjs/data/These.cjs.map +1 -1
  385. package/_cjs/data/Trace/api.cjs +7 -14
  386. package/_cjs/data/Trace/api.cjs.map +1 -1
  387. package/_cjs/data/Trace/constructors.cjs +0 -8
  388. package/_cjs/data/Trace/constructors.cjs.map +1 -1
  389. package/_cjs/data/Trace/definition.cjs +0 -3
  390. package/_cjs/data/Trace/definition.cjs.map +1 -1
  391. package/_cjs/data/Trace.cjs +0 -6
  392. package/_cjs/data/Trace.cjs.map +1 -1
  393. package/_cjs/data/TraceElement/definition.cjs +0 -11
  394. package/_cjs/data/TraceElement/definition.cjs.map +1 -1
  395. package/_cjs/data/TraceElement.cjs +0 -2
  396. package/_cjs/data/TraceElement.cjs.map +1 -1
  397. package/_cjs/data/Zipped.cjs +2 -13
  398. package/_cjs/data/Zipped.cjs.map +1 -1
  399. package/_cjs/data/bigint/instances.cjs +2 -7
  400. package/_cjs/data/bigint/instances.cjs.map +1 -1
  401. package/_cjs/data/bigint.cjs +0 -4
  402. package/_cjs/data/bigint.cjs.map +1 -1
  403. package/_cjs/data/boolean/instances.cjs +2 -7
  404. package/_cjs/data/boolean/instances.cjs.map +1 -1
  405. package/_cjs/data/boolean.cjs +0 -4
  406. package/_cjs/data/boolean.cjs.map +1 -1
  407. package/_cjs/data/exceptions/ArrayIndexOutOfBoundsError.cjs +0 -3
  408. package/_cjs/data/exceptions/ArrayIndexOutOfBoundsError.cjs.map +1 -1
  409. package/_cjs/data/exceptions/IllegalArgumentError.cjs +0 -3
  410. package/_cjs/data/exceptions/IllegalArgumentError.cjs.map +1 -1
  411. package/_cjs/data/exceptions/IllegalStateError.cjs +0 -3
  412. package/_cjs/data/exceptions/IllegalStateError.cjs.map +1 -1
  413. package/_cjs/data/exceptions/IndexOutOfBoundsError.cjs +0 -3
  414. package/_cjs/data/exceptions/IndexOutOfBoundsError.cjs.map +1 -1
  415. package/_cjs/data/exceptions/InterruptedException.cjs +0 -6
  416. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  417. package/_cjs/data/exceptions/InvalidCapacityError.cjs +0 -4
  418. package/_cjs/data/exceptions/InvalidCapacityError.cjs.map +1 -1
  419. package/_cjs/data/exceptions/NoSuchElementError.cjs +0 -3
  420. package/_cjs/data/exceptions/NoSuchElementError.cjs.map +1 -1
  421. package/_cjs/data/exceptions.cjs +0 -16
  422. package/_cjs/data/exceptions.cjs.map +1 -1
  423. package/_cjs/data/function/api.cjs +6 -15
  424. package/_cjs/data/function/api.cjs.map +1 -1
  425. package/_cjs/data/function/pipe.cjs +8 -21
  426. package/_cjs/data/function/pipe.cjs.map +1 -1
  427. package/_cjs/data/function.cjs +0 -6
  428. package/_cjs/data/function.cjs.map +1 -1
  429. package/_cjs/data/number/api.cjs +0 -1
  430. package/_cjs/data/number/api.cjs.map +1 -1
  431. package/_cjs/data/number/instances.cjs +10 -19
  432. package/_cjs/data/number/instances.cjs.map +1 -1
  433. package/_cjs/data/number.cjs +0 -6
  434. package/_cjs/data/number.cjs.map +1 -1
  435. package/_cjs/data/object/instances.cjs +1 -16
  436. package/_cjs/data/object/instances.cjs.map +1 -1
  437. package/_cjs/data/object.cjs +0 -4
  438. package/_cjs/data/object.cjs.map +1 -1
  439. package/_cjs/data/string/api.cjs +54 -130
  440. package/_cjs/data/string/api.cjs.map +1 -1
  441. package/_cjs/data/string/instances.cjs +11 -24
  442. package/_cjs/data/string/instances.cjs.map +1 -1
  443. package/_cjs/data/string.cjs +0 -6
  444. package/_cjs/data/string.cjs.map +1 -1
  445. package/_cjs/global/api.cjs +4 -3
  446. package/_cjs/global/api.cjs.map +1 -1
  447. package/_cjs/internal/AtomicBoolean.cjs +0 -4
  448. package/_cjs/internal/AtomicBoolean.cjs.map +1 -1
  449. package/_cjs/internal/AtomicNumber.cjs +0 -7
  450. package/_cjs/internal/AtomicNumber.cjs.map +1 -1
  451. package/_cjs/internal/AtomicReference.cjs +0 -8
  452. package/_cjs/internal/AtomicReference.cjs.map +1 -1
  453. package/_cjs/internal/Stack.cjs +2 -15
  454. package/_cjs/internal/Stack.cjs.map +1 -1
  455. package/_cjs/json/EitherJson.cjs +1 -7
  456. package/_cjs/json/EitherJson.cjs.map +1 -1
  457. package/_cjs/json/MaybeJson.cjs +1 -7
  458. package/_cjs/json/MaybeJson.cjs.map +1 -1
  459. package/_cjs/json/TheseJson.cjs +1 -7
  460. package/_cjs/json/TheseJson.cjs.map +1 -1
  461. package/_cjs/optics/At/api.cjs +1 -6
  462. package/_cjs/optics/At/api.cjs.map +1 -1
  463. package/_cjs/optics/At/definition.cjs +2 -9
  464. package/_cjs/optics/At/definition.cjs.map +1 -1
  465. package/_cjs/optics/At.cjs +0 -4
  466. package/_cjs/optics/At.cjs.map +1 -1
  467. package/_cjs/optics/Fold/definition.cjs +3 -6
  468. package/_cjs/optics/Fold/definition.cjs.map +1 -1
  469. package/_cjs/optics/Fold.cjs +0 -2
  470. package/_cjs/optics/Fold.cjs.map +1 -1
  471. package/_cjs/optics/Getter/definition.cjs +2 -5
  472. package/_cjs/optics/Getter/definition.cjs.map +1 -1
  473. package/_cjs/optics/Getter.cjs +0 -2
  474. package/_cjs/optics/Getter.cjs.map +1 -1
  475. package/_cjs/optics/Index/api.cjs +4 -12
  476. package/_cjs/optics/Index/api.cjs.map +1 -1
  477. package/_cjs/optics/Index/definition.cjs +2 -4
  478. package/_cjs/optics/Index/definition.cjs.map +1 -1
  479. package/_cjs/optics/Index.cjs +0 -4
  480. package/_cjs/optics/Index.cjs.map +1 -1
  481. package/_cjs/optics/Iso/api.cjs +9 -12
  482. package/_cjs/optics/Iso/api.cjs.map +1 -1
  483. package/_cjs/optics/Iso/definition.cjs +13 -25
  484. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  485. package/_cjs/optics/Iso.cjs +0 -4
  486. package/_cjs/optics/Iso.cjs.map +1 -1
  487. package/_cjs/optics/Lens/api.cjs +53 -78
  488. package/_cjs/optics/Lens/api.cjs.map +1 -1
  489. package/_cjs/optics/Lens/definition.cjs +11 -23
  490. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  491. package/_cjs/optics/Lens.cjs +0 -4
  492. package/_cjs/optics/Lens.cjs.map +1 -1
  493. package/_cjs/optics/Optional/api/compose.cjs +9 -13
  494. package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
  495. package/_cjs/optics/Optional/definition.cjs +11 -27
  496. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  497. package/_cjs/optics/Optional.cjs +0 -4
  498. package/_cjs/optics/Optional.cjs.map +1 -1
  499. package/_cjs/optics/Prism/api/compose.cjs +9 -14
  500. package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
  501. package/_cjs/optics/Prism/api/fromNullable.cjs +2 -8
  502. package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
  503. package/_cjs/optics/Prism/api/just.cjs +2 -9
  504. package/_cjs/optics/Prism/api/just.cjs.map +1 -1
  505. package/_cjs/optics/Prism/definition.cjs +9 -21
  506. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  507. package/_cjs/optics/Prism.cjs +0 -8
  508. package/_cjs/optics/Prism.cjs.map +1 -1
  509. package/_cjs/optics/Setter/definition.cjs +8 -17
  510. package/_cjs/optics/Setter/definition.cjs.map +1 -1
  511. package/_cjs/optics/Setter.cjs +0 -2
  512. package/_cjs/optics/Setter.cjs.map +1 -1
  513. package/_cjs/optics/Traversal/api/compose.cjs +8 -10
  514. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  515. package/_cjs/optics/Traversal/api/fromTraversable.cjs +2 -6
  516. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  517. package/_cjs/optics/Traversal/definition.cjs +12 -28
  518. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  519. package/_cjs/optics/Traversal.cjs +0 -6
  520. package/_cjs/optics/Traversal.cjs.map +1 -1
  521. package/_cjs/typeclass/Align.cjs.map +1 -1
  522. package/_cjs/typeclass/Alt.cjs.map +1 -1
  523. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  524. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  525. package/_cjs/typeclass/ApplicativeExcept.cjs +5 -18
  526. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  527. package/_cjs/typeclass/Apply.cjs +15 -47
  528. package/_cjs/typeclass/Apply.cjs.map +1 -1
  529. package/_cjs/typeclass/Chain.cjs +4 -13
  530. package/_cjs/typeclass/Chain.cjs.map +1 -1
  531. package/_cjs/typeclass/Closure.cjs +2 -4
  532. package/_cjs/typeclass/Closure.cjs.map +1 -1
  533. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  534. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  535. package/_cjs/typeclass/Foldable.cjs +1 -3
  536. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  537. package/_cjs/typeclass/FoldableWithIndex.cjs +1 -3
  538. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  539. package/_cjs/typeclass/Functor.cjs +0 -2
  540. package/_cjs/typeclass/Functor.cjs.map +1 -1
  541. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  542. package/_cjs/typeclass/Has.cjs +8 -6
  543. package/_cjs/typeclass/Has.cjs.map +1 -1
  544. package/_cjs/typeclass/Monad.cjs.map +1 -1
  545. package/_cjs/typeclass/MonadExcept.cjs +1 -6
  546. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  547. package/_cjs/typeclass/Monoid.cjs +6 -23
  548. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  549. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  550. package/_cjs/typeclass/Semialign.cjs +7 -25
  551. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  552. package/_cjs/typeclass/Semigroup/api.cjs +6 -14
  553. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  554. package/_cjs/typeclass/Semigroup/definition.cjs +3 -6
  555. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  556. package/_cjs/typeclass/Semigroup/derivations.cjs +7 -18
  557. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
  558. package/_cjs/typeclass/Semigroup.cjs +0 -4
  559. package/_cjs/typeclass/Semigroup.cjs.map +1 -1
  560. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  561. package/_cjs/typeclass/Traversable.cjs +1 -7
  562. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  563. package/_cjs/typeclass/TraversableWithIndex.cjs +0 -1
  564. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  565. package/_cjs/typeclass/Witherable.cjs +2 -7
  566. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  567. package/_cjs/typeclass/WitherableWithIndex.cjs +2 -8
  568. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  569. package/_cjs/typeclass/builtin.cjs +0 -2
  570. package/_cjs/typeclass/builtin.cjs.map +1 -1
  571. package/_cjs/typeclass.cjs +95 -162
  572. package/_cjs/typeclass.cjs.map +1 -1
  573. package/_cjs/types.cjs +0 -6
  574. package/_cjs/types.cjs.map +1 -1
  575. package/_cjs/util/AnsiFormat.cjs +15 -57
  576. package/_cjs/util/AnsiFormat.cjs.map +1 -1
  577. package/_cjs/util/PCGRandom.cjs +16 -46
  578. package/_cjs/util/PCGRandom.cjs.map +1 -1
  579. package/_cjs/util/assert.cjs +0 -4
  580. package/_cjs/util/assert.cjs.map +1 -1
  581. package/_cjs/util/pattern.cjs +0 -4
  582. package/_cjs/util/pattern.cjs.map +1 -1
  583. package/_cjs/util/predicates.cjs +0 -32
  584. package/_cjs/util/predicates.cjs.map +1 -1
  585. package/_cjs/util/rand/Random.cjs +0 -21
  586. package/_cjs/util/rand/Random.cjs.map +1 -1
  587. package/_cjs/util/rand/distribution/UniformArrayIntDistribution.cjs +0 -5
  588. package/_cjs/util/rand/distribution/UniformArrayIntDistribution.cjs.map +1 -1
  589. package/_cjs/util/rand/distribution/UniformBigIntDistribution.cjs +4 -12
  590. package/_cjs/util/rand/distribution/UniformBigIntDistribution.cjs.map +1 -1
  591. package/_cjs/util/rand/distribution/UniformIntDistribution.cjs +0 -12
  592. package/_cjs/util/rand/distribution/UniformIntDistribution.cjs.map +1 -1
  593. package/_cjs/util/rand/distribution/internals/ArrayInt.cjs +6 -42
  594. package/_cjs/util/rand/distribution/internals/ArrayInt.cjs.map +1 -1
  595. package/_cjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.cjs +6 -10
  596. package/_cjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.cjs.map +1 -1
  597. package/_cjs/util/rand/distribution/internals/UniformIntDistributionInternal.cjs +8 -14
  598. package/_cjs/util/rand/distribution/internals/UniformIntDistributionInternal.cjs.map +1 -1
  599. package/_cjs/util/rand/generator/MersenneTwister.cjs +5 -25
  600. package/_cjs/util/rand/generator/MersenneTwister.cjs.map +1 -1
  601. package/_cjs/util/rand/generator/RandomGenerator.cjs +0 -4
  602. package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
  603. package/_cjs/util/rand.cjs +0 -9
  604. package/_cjs/util/rand.cjs.map +1 -1
  605. package/_mjs/collection/Iterable/api/traverseConc.mjs +5 -10
  606. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  607. package/_mjs/collection/Iterable/api.mjs +466 -551
  608. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  609. package/_mjs/collection/Iterable/constructors.mjs +5 -20
  610. package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
  611. package/_mjs/collection/Iterable/definition.mjs.map +1 -1
  612. package/_mjs/collection/Iterable.mjs.map +1 -1
  613. package/_mjs/collection/compat/Array/api.mjs +17 -21
  614. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  615. package/_mjs/collection/compat/Array/definition.mjs.map +1 -1
  616. package/_mjs/collection/compat/Array.mjs +0 -1
  617. package/_mjs/collection/compat/Array.mjs.map +1 -1
  618. package/_mjs/collection/compat/ArrayLike/api.mjs +3 -9
  619. package/_mjs/collection/compat/ArrayLike/api.mjs.map +1 -1
  620. package/_mjs/collection/immutable/Conc/api/empty.mjs +0 -1
  621. package/_mjs/collection/immutable/Conc/api/empty.mjs.map +1 -1
  622. package/_mjs/collection/immutable/Conc/api/makeBy.mjs +1 -5
  623. package/_mjs/collection/immutable/Conc/api/makeBy.mjs.map +1 -1
  624. package/_mjs/collection/immutable/Conc/api/replicate.mjs +0 -1
  625. package/_mjs/collection/immutable/Conc/api/replicate.mjs.map +1 -1
  626. package/_mjs/collection/immutable/Conc/api.mjs +733 -919
  627. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  628. package/_mjs/collection/immutable/Conc/constructors.mjs +0 -5
  629. package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
  630. package/_mjs/collection/immutable/Conc/definition.mjs +74 -242
  631. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  632. package/_mjs/collection/immutable/Conc.mjs +1 -2
  633. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  634. package/_mjs/collection/immutable/Dictionary/api.mjs +47 -50
  635. package/_mjs/collection/immutable/Dictionary/api.mjs.map +1 -1
  636. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  637. package/_mjs/collection/immutable/Dictionary.mjs +4 -0
  638. package/_mjs/collection/immutable/Dictionary.mjs.map +1 -0
  639. package/_mjs/collection/immutable/HashMap/api.mjs +328 -352
  640. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  641. package/_mjs/collection/immutable/HashMap/definition.mjs +17 -28
  642. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  643. package/_mjs/collection/immutable/HashMap/internal.mjs +4 -66
  644. package/_mjs/collection/immutable/HashMap/internal.mjs.map +1 -1
  645. package/_mjs/collection/immutable/HashMap.mjs.map +1 -1
  646. package/_mjs/collection/immutable/HashSet/api.mjs +249 -275
  647. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  648. package/_mjs/collection/immutable/HashSet/definition.mjs +14 -67
  649. package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
  650. package/_mjs/collection/immutable/HashSet.mjs.map +1 -1
  651. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs +5 -4
  652. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +1 -1
  653. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +5 -4
  654. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +1 -1
  655. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +5 -4
  656. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +1 -1
  657. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +13 -14
  658. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +1 -1
  659. package/_mjs/collection/immutable/ImmutableArray/api.mjs +826 -942
  660. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  661. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +0 -10
  662. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +1 -1
  663. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +4 -10
  664. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  665. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +50 -59
  666. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  667. package/_mjs/collection/immutable/ImmutableArray.mjs +2 -3
  668. package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
  669. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +303 -355
  670. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  671. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs +0 -12
  672. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +1 -1
  673. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -5
  674. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  675. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +2 -12
  676. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +1 -1
  677. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +25 -29
  678. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  679. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +0 -1
  680. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +1 -1
  681. package/_mjs/collection/immutable/List/api/foldLeft.mjs +11 -12
  682. package/_mjs/collection/immutable/List/api/foldLeft.mjs.map +1 -1
  683. package/_mjs/collection/immutable/List/api/unsafeTail.mjs +0 -2
  684. package/_mjs/collection/immutable/List/api/unsafeTail.mjs.map +1 -1
  685. package/_mjs/collection/immutable/List/api.mjs +155 -203
  686. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  687. package/_mjs/collection/immutable/List/constructors.mjs +1 -11
  688. package/_mjs/collection/immutable/List/constructors.mjs.map +1 -1
  689. package/_mjs/collection/immutable/List/definition.mjs +2 -18
  690. package/_mjs/collection/immutable/List/definition.mjs.map +1 -1
  691. package/_mjs/collection/immutable/List.mjs +2 -2
  692. package/_mjs/collection/immutable/List.mjs.map +1 -1
  693. package/_mjs/collection/immutable/Queue/api.mjs +78 -88
  694. package/_mjs/collection/immutable/Queue/api.mjs.map +1 -1
  695. package/_mjs/collection/immutable/Queue/constructors.mjs +0 -2
  696. package/_mjs/collection/immutable/Queue/constructors.mjs.map +1 -1
  697. package/_mjs/collection/immutable/Queue/definition.mjs +3 -9
  698. package/_mjs/collection/immutable/Queue/definition.mjs.map +1 -1
  699. package/_mjs/collection/immutable/Queue/guards.mjs +2 -3
  700. package/_mjs/collection/immutable/Queue/guards.mjs.map +1 -1
  701. package/_mjs/collection/immutable/Queue.mjs.map +1 -1
  702. package/_mjs/collection/immutable/RoseTree/api.mjs +76 -103
  703. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -1
  704. package/_mjs/collection/immutable/RoseTree/definition.mjs +4 -8
  705. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  706. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -1
  707. package/_mjs/collection/immutable/SortedMap/api.mjs +423 -493
  708. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  709. package/_mjs/collection/immutable/SortedMap/definition.mjs +2 -3
  710. package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
  711. package/_mjs/collection/immutable/SortedMap/internal.mjs +56 -222
  712. package/_mjs/collection/immutable/SortedMap/internal.mjs.map +1 -1
  713. package/_mjs/collection/immutable/SortedMap/iterator.mjs +16 -97
  714. package/_mjs/collection/immutable/SortedMap/iterator.mjs.map +1 -1
  715. package/_mjs/collection/immutable/SortedMap/node.mjs +0 -1
  716. package/_mjs/collection/immutable/SortedMap/node.mjs.map +1 -1
  717. package/_mjs/collection/immutable/SortedMap.mjs.map +1 -1
  718. package/_mjs/collection/immutable/Vector/api.mjs +682 -756
  719. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  720. package/_mjs/collection/immutable/Vector/definition.mjs +25 -35
  721. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  722. package/_mjs/collection/immutable/Vector/internal.mjs +79 -350
  723. package/_mjs/collection/immutable/Vector/internal.mjs.map +1 -1
  724. package/_mjs/collection/immutable/Vector.mjs.map +1 -1
  725. package/_mjs/collection/mutable/HashMap.mjs +9 -79
  726. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  727. package/_mjs/collection/mutable/HashSet.mjs +5 -59
  728. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  729. package/_mjs/collection/mutable/ListBuffer.mjs +2 -28
  730. package/_mjs/collection/mutable/ListBuffer.mjs.map +1 -1
  731. package/_mjs/collection/mutable/internal.mjs +0 -4
  732. package/_mjs/collection/mutable/internal.mjs.map +1 -1
  733. package/_mjs/collection/weak/IterableWeakMap.mjs +6 -28
  734. package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
  735. package/_mjs/collection/weak/IterableWeakSet.mjs +6 -26
  736. package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
  737. package/_mjs/control/Eval/api/sequenceArray.mjs +0 -1
  738. package/_mjs/control/Eval/api/sequenceArray.mjs.map +1 -1
  739. package/_mjs/control/Eval/api.mjs +41 -48
  740. package/_mjs/control/Eval/api.mjs.map +1 -1
  741. package/_mjs/control/Eval/constructors.mjs +0 -6
  742. package/_mjs/control/Eval/constructors.mjs.map +1 -1
  743. package/_mjs/control/Eval/definition.mjs +6 -15
  744. package/_mjs/control/Eval/definition.mjs.map +1 -1
  745. package/_mjs/control/Eval/instance.mjs +7 -9
  746. package/_mjs/control/Eval/instance.mjs.map +1 -1
  747. package/_mjs/control/Eval/run.mjs +5 -24
  748. package/_mjs/control/Eval/run.mjs.map +1 -1
  749. package/_mjs/control/Eval.mjs.map +1 -1
  750. package/_mjs/control/LazyValue.mjs +0 -3
  751. package/_mjs/control/LazyValue.mjs.map +1 -1
  752. package/_mjs/control/Z/api.mjs +196 -216
  753. package/_mjs/control/Z/api.mjs.map +1 -1
  754. package/_mjs/control/Z/definition.mjs +23 -51
  755. package/_mjs/control/Z/definition.mjs.map +1 -1
  756. package/_mjs/control/Z/instances.mjs +4 -5
  757. package/_mjs/control/Z/instances.mjs.map +1 -1
  758. package/_mjs/control/Z/runtime.mjs +200 -266
  759. package/_mjs/control/Z/runtime.mjs.map +1 -1
  760. package/_mjs/control/Z.mjs.map +1 -1
  761. package/_mjs/data/Branded/definition.mjs +0 -2
  762. package/_mjs/data/Branded/definition.mjs.map +1 -1
  763. package/_mjs/data/Branded.mjs +0 -1
  764. package/_mjs/data/Branded.mjs.map +1 -1
  765. package/_mjs/data/CaseClass.mjs +13 -32
  766. package/_mjs/data/CaseClass.mjs.map +1 -1
  767. package/_mjs/data/Cause/api/fold.mjs +30 -65
  768. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  769. package/_mjs/data/Cause/api/isEmpty.mjs +7 -29
  770. package/_mjs/data/Cause/api/isEmpty.mjs.map +1 -1
  771. package/_mjs/data/Cause/api/linearize.mjs +9 -10
  772. package/_mjs/data/Cause/api/linearize.mjs.map +1 -1
  773. package/_mjs/data/Cause/api/prettyPrint.mjs +1 -8
  774. package/_mjs/data/Cause/api/prettyPrint.mjs.map +1 -1
  775. package/_mjs/data/Cause/api/unified.mjs +14 -44
  776. package/_mjs/data/Cause/api/unified.mjs.map +1 -1
  777. package/_mjs/data/Cause/api.mjs +212 -490
  778. package/_mjs/data/Cause/api.mjs.map +1 -1
  779. package/_mjs/data/Cause/definition.mjs +63 -262
  780. package/_mjs/data/Cause/definition.mjs.map +1 -1
  781. package/_mjs/data/Cause.mjs +2 -2
  782. package/_mjs/data/Cause.mjs.map +1 -1
  783. package/_mjs/data/Const/api.mjs +6 -6
  784. package/_mjs/data/Const/api.mjs.map +1 -1
  785. package/_mjs/data/Const/definition.mjs +0 -1
  786. package/_mjs/data/Const/definition.mjs.map +1 -1
  787. package/_mjs/data/Const/instances.mjs +6 -8
  788. package/_mjs/data/Const/instances.mjs.map +1 -1
  789. package/_mjs/data/Const.mjs.map +1 -1
  790. package/_mjs/data/Datum/api.mjs +198 -250
  791. package/_mjs/data/Datum/api.mjs.map +1 -1
  792. package/_mjs/data/Datum/definition.mjs +10 -35
  793. package/_mjs/data/Datum/definition.mjs.map +1 -1
  794. package/_mjs/data/Datum/instances.mjs +0 -5
  795. package/_mjs/data/Datum/instances.mjs.map +1 -1
  796. package/_mjs/data/DatumEither/api.mjs +158 -191
  797. package/_mjs/data/DatumEither/api.mjs.map +1 -1
  798. package/_mjs/data/DatumEither/definition.mjs.map +1 -1
  799. package/_mjs/data/DecodeError/definition.mjs +15 -43
  800. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  801. package/_mjs/data/DecodeError.mjs.map +1 -1
  802. package/_mjs/data/Decoder/api.mjs +400 -53
  803. package/_mjs/data/Decoder/api.mjs.map +1 -1
  804. package/_mjs/data/Decoder/definition.mjs +0 -3
  805. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  806. package/_mjs/data/Decoder.mjs.map +1 -1
  807. package/_mjs/data/Duration/api.mjs +20 -21
  808. package/_mjs/data/Duration/api.mjs.map +1 -1
  809. package/_mjs/data/Duration/definition.mjs +3 -7
  810. package/_mjs/data/Duration/definition.mjs.map +1 -1
  811. package/_mjs/data/Duration.mjs.map +1 -1
  812. package/_mjs/data/Either/api/align.mjs +7 -2
  813. package/_mjs/data/Either/api/align.mjs.map +1 -1
  814. package/_mjs/data/Either/api/alignWith.mjs +7 -12
  815. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  816. package/_mjs/data/Either/api.mjs +139 -188
  817. package/_mjs/data/Either/api.mjs.map +1 -1
  818. package/_mjs/data/Either/constructors.mjs +7 -16
  819. package/_mjs/data/Either/constructors.mjs.map +1 -1
  820. package/_mjs/data/Either/definition.mjs +4 -15
  821. package/_mjs/data/Either/definition.mjs.map +1 -1
  822. package/_mjs/data/Either/destructors.mjs +11 -15
  823. package/_mjs/data/Either/destructors.mjs.map +1 -1
  824. package/_mjs/data/Either/instances.mjs +22 -56
  825. package/_mjs/data/Either/instances.mjs.map +1 -1
  826. package/_mjs/data/Either.mjs.map +1 -1
  827. package/_mjs/data/EitherT/api.mjs +8 -17
  828. package/_mjs/data/EitherT/api.mjs.map +1 -1
  829. package/_mjs/data/EitherT/definition.mjs.map +1 -1
  830. package/_mjs/data/Encoder/api.mjs +273 -0
  831. package/_mjs/data/Encoder/api.mjs.map +1 -0
  832. package/_mjs/data/Encoder/definition.mjs +13 -0
  833. package/_mjs/data/Encoder/definition.mjs.map +1 -0
  834. package/_mjs/data/Encoder.mjs +4 -0
  835. package/_mjs/data/Encoder.mjs.map +1 -0
  836. package/_mjs/data/Environment/api.mjs +47 -50
  837. package/_mjs/data/Environment/api.mjs.map +1 -1
  838. package/_mjs/data/Environment/definition.mjs +5 -10
  839. package/_mjs/data/Environment/definition.mjs.map +1 -1
  840. package/_mjs/data/Environment.mjs.map +1 -1
  841. package/_mjs/data/EnvironmentPatch.mjs +35 -68
  842. package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
  843. package/_mjs/{typeclass → data}/Eq/definition.mjs +1 -2
  844. package/_mjs/data/Eq/definition.mjs.map +1 -0
  845. package/_mjs/{typeclass → data}/Eq/derivations.mjs +9 -15
  846. package/_mjs/data/Eq/derivations.mjs.map +1 -0
  847. package/_mjs/{typeclass → data}/Eq.mjs +0 -0
  848. package/_mjs/data/Eq.mjs.map +1 -0
  849. package/_mjs/{typeclass → data}/Equatable/api.mjs +3 -6
  850. package/_mjs/data/Equatable/api.mjs.map +1 -0
  851. package/_mjs/{typeclass → data}/Equatable/definition.mjs +0 -1
  852. package/_mjs/data/Equatable/definition.mjs.map +1 -0
  853. package/_mjs/{typeclass → data}/Equatable/fast-equals.mjs +1 -63
  854. package/_mjs/data/Equatable/fast-equals.mjs.map +1 -0
  855. package/_mjs/{typeclass → data}/Equatable.mjs +0 -0
  856. package/_mjs/data/Equatable.mjs.map +1 -0
  857. package/_mjs/data/ExecutionStrategy.mjs +17 -30
  858. package/_mjs/data/ExecutionStrategy.mjs.map +1 -1
  859. package/_mjs/data/Exit/api.mjs +124 -135
  860. package/_mjs/data/Exit/api.mjs.map +1 -1
  861. package/_mjs/data/Exit/constructors.mjs +3 -14
  862. package/_mjs/data/Exit/constructors.mjs.map +1 -1
  863. package/_mjs/data/Exit/definition.mjs +8 -33
  864. package/_mjs/data/Exit/definition.mjs.map +1 -1
  865. package/_mjs/data/Exit.mjs.map +1 -1
  866. package/_mjs/data/FiberId/api.mjs +23 -31
  867. package/_mjs/data/FiberId/api.mjs.map +1 -1
  868. package/_mjs/data/FiberId/constructors.mjs +3 -9
  869. package/_mjs/data/FiberId/constructors.mjs.map +1 -1
  870. package/_mjs/data/FiberId/definition.mjs +7 -26
  871. package/_mjs/data/FiberId/definition.mjs.map +1 -1
  872. package/_mjs/data/FiberId.mjs.map +1 -1
  873. package/_mjs/data/Guard/api.mjs +369 -0
  874. package/_mjs/data/Guard/api.mjs.map +1 -0
  875. package/_mjs/{typeclass → data}/Guard/definition.mjs +0 -3
  876. package/_mjs/data/Guard/definition.mjs.map +1 -0
  877. package/_mjs/data/Guard.mjs +4 -0
  878. package/_mjs/data/Guard.mjs.map +1 -0
  879. package/_mjs/{typeclass → data}/Hash.mjs +0 -1
  880. package/_mjs/data/Hash.mjs.map +1 -0
  881. package/_mjs/data/HashEq.mjs +30 -0
  882. package/_mjs/data/HashEq.mjs.map +1 -0
  883. package/_mjs/{typeclass → data}/Hashable/definition.mjs +0 -1
  884. package/_mjs/data/Hashable/definition.mjs.map +1 -0
  885. package/_mjs/{typeclass → data}/Hashable/hash.mjs +4 -59
  886. package/_mjs/data/Hashable/hash.mjs.map +1 -0
  887. package/_mjs/{typeclass → data}/Hashable.mjs +0 -0
  888. package/_mjs/data/Hashable.mjs.map +1 -0
  889. package/_mjs/data/Identity/api.mjs +21 -20
  890. package/_mjs/data/Identity/api.mjs.map +1 -1
  891. package/_mjs/data/Identity/definition.mjs.map +1 -1
  892. package/_mjs/data/Identity/instances.mjs +8 -9
  893. package/_mjs/data/Identity/instances.mjs.map +1 -1
  894. package/_mjs/data/Identity.mjs.map +1 -1
  895. package/_mjs/data/Interval.mjs +41 -47
  896. package/_mjs/data/Interval.mjs.map +1 -1
  897. package/_mjs/data/Intervals.mjs +45 -60
  898. package/_mjs/data/Intervals.mjs.map +1 -1
  899. package/_mjs/data/Maybe/api.mjs +107 -128
  900. package/_mjs/data/Maybe/api.mjs.map +1 -1
  901. package/_mjs/data/Maybe/constructors.mjs +1 -18
  902. package/_mjs/data/Maybe/constructors.mjs.map +1 -1
  903. package/_mjs/data/Maybe/definition.mjs +10 -36
  904. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  905. package/_mjs/data/Maybe/destructors.mjs +6 -6
  906. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  907. package/_mjs/data/Maybe/instances.mjs +40 -21
  908. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  909. package/_mjs/data/Maybe.mjs.map +1 -1
  910. package/_mjs/data/Newtype.mjs +0 -1
  911. package/_mjs/data/Newtype.mjs.map +1 -1
  912. package/_mjs/data/Ord/api/contramap.mjs +12 -0
  913. package/_mjs/data/Ord/api/contramap.mjs.map +1 -0
  914. package/_mjs/data/Ord/api/max.mjs +8 -0
  915. package/_mjs/data/Ord/api/max.mjs.map +1 -0
  916. package/_mjs/data/Ord/api/min.mjs +8 -0
  917. package/_mjs/data/Ord/api/min.mjs.map +1 -0
  918. package/_mjs/{typeclass → data}/Ord/api.mjs +0 -0
  919. package/_mjs/data/Ord/api.mjs.map +1 -0
  920. package/_mjs/data/Ord/definition.mjs +12 -0
  921. package/_mjs/data/Ord/definition.mjs.map +1 -0
  922. package/_mjs/data/Ord/instances.mjs +34 -0
  923. package/_mjs/data/Ord/instances.mjs.map +1 -0
  924. package/_mjs/{typeclass → data}/Ord.mjs +0 -0
  925. package/_mjs/data/Ord.mjs.map +1 -0
  926. package/_mjs/{typeclass → data}/Ordering.mjs +0 -6
  927. package/_mjs/data/Ordering.mjs.map +1 -0
  928. package/_mjs/data/Predicate/api.mjs +10 -11
  929. package/_mjs/data/Predicate/api.mjs.map +1 -1
  930. package/_mjs/data/Predicate.mjs.map +1 -1
  931. package/_mjs/data/Refinement/api.mjs +15 -12
  932. package/_mjs/data/Refinement/api.mjs.map +1 -1
  933. package/_mjs/data/Refinement.mjs.map +1 -1
  934. package/_mjs/{typeclass → data}/Showable/definition.mjs +2 -3
  935. package/_mjs/data/Showable/definition.mjs.map +1 -0
  936. package/_mjs/{typeclass → data}/Showable/show.mjs +119 -245
  937. package/_mjs/data/Showable/show.mjs.map +1 -0
  938. package/_mjs/{typeclass → data}/Showable/styles.mjs +0 -0
  939. package/_mjs/data/Showable/styles.mjs.map +1 -0
  940. package/_mjs/{typeclass → data}/Showable/util.mjs +53 -93
  941. package/_mjs/data/Showable/util.mjs.map +1 -0
  942. package/_mjs/{typeclass → data}/Showable.mjs +0 -0
  943. package/_mjs/data/Showable.mjs.map +1 -0
  944. package/_mjs/data/Struct/api.mjs +59 -63
  945. package/_mjs/data/Struct/api.mjs.map +1 -1
  946. package/_mjs/data/Struct/definition.mjs.map +1 -1
  947. package/_mjs/data/Tag/constructors.mjs +1 -3
  948. package/_mjs/data/Tag/constructors.mjs.map +1 -1
  949. package/_mjs/data/Tag/definition.mjs +3 -11
  950. package/_mjs/data/Tag/definition.mjs.map +1 -1
  951. package/_mjs/data/Tag.mjs.map +1 -1
  952. package/_mjs/data/These/api.mjs +118 -209
  953. package/_mjs/data/These/api.mjs.map +1 -1
  954. package/_mjs/data/These/constructors.mjs +1 -7
  955. package/_mjs/data/These/constructors.mjs.map +1 -1
  956. package/_mjs/data/These/definition.mjs +4 -16
  957. package/_mjs/data/These/definition.mjs.map +1 -1
  958. package/_mjs/data/These/destructors.mjs +23 -41
  959. package/_mjs/data/These/destructors.mjs.map +1 -1
  960. package/_mjs/data/These/instances.mjs +2 -7
  961. package/_mjs/data/These/instances.mjs.map +1 -1
  962. package/_mjs/data/These.mjs.map +1 -1
  963. package/_mjs/data/Trace/api.mjs +6 -6
  964. package/_mjs/data/Trace/api.mjs.map +1 -1
  965. package/_mjs/data/Trace/constructors.mjs +0 -2
  966. package/_mjs/data/Trace/constructors.mjs.map +1 -1
  967. package/_mjs/data/Trace/definition.mjs +0 -1
  968. package/_mjs/data/Trace/definition.mjs.map +1 -1
  969. package/_mjs/data/Trace.mjs.map +1 -1
  970. package/_mjs/data/TraceElement/definition.mjs +0 -9
  971. package/_mjs/data/TraceElement/definition.mjs.map +1 -1
  972. package/_mjs/data/TraceElement.mjs.map +1 -1
  973. package/_mjs/data/Zipped.mjs +2 -7
  974. package/_mjs/data/Zipped.mjs.map +1 -1
  975. package/_mjs/data/bigint/instances.mjs +2 -2
  976. package/_mjs/data/bigint/instances.mjs.map +1 -1
  977. package/_mjs/data/bigint.mjs.map +1 -1
  978. package/_mjs/data/boolean/instances.mjs +2 -2
  979. package/_mjs/data/boolean/instances.mjs.map +1 -1
  980. package/_mjs/data/boolean.mjs.map +1 -1
  981. package/_mjs/data/exceptions/ArrayIndexOutOfBoundsError.mjs +0 -1
  982. package/_mjs/data/exceptions/ArrayIndexOutOfBoundsError.mjs.map +1 -1
  983. package/_mjs/data/exceptions/IllegalArgumentError.mjs +0 -1
  984. package/_mjs/data/exceptions/IllegalArgumentError.mjs.map +1 -1
  985. package/_mjs/data/exceptions/IllegalStateError.mjs +0 -1
  986. package/_mjs/data/exceptions/IllegalStateError.mjs.map +1 -1
  987. package/_mjs/data/exceptions/IndexOutOfBoundsError.mjs +0 -1
  988. package/_mjs/data/exceptions/IndexOutOfBoundsError.mjs.map +1 -1
  989. package/_mjs/data/exceptions/InterruptedException.mjs +0 -1
  990. package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
  991. package/_mjs/data/exceptions/InvalidCapacityError.mjs +0 -1
  992. package/_mjs/data/exceptions/InvalidCapacityError.mjs.map +1 -1
  993. package/_mjs/data/exceptions/NoSuchElementError.mjs +0 -1
  994. package/_mjs/data/exceptions/NoSuchElementError.mjs.map +1 -1
  995. package/_mjs/data/exceptions.mjs.map +1 -1
  996. package/_mjs/data/function/api.mjs +5 -8
  997. package/_mjs/data/function/api.mjs.map +1 -1
  998. package/_mjs/data/function/pipe.mjs +7 -20
  999. package/_mjs/data/function/pipe.mjs.map +1 -1
  1000. package/_mjs/data/function.mjs.map +1 -1
  1001. package/_mjs/data/number/api.mjs.map +1 -1
  1002. package/_mjs/data/number/instances.mjs +10 -13
  1003. package/_mjs/data/number/instances.mjs.map +1 -1
  1004. package/_mjs/data/number.mjs.map +1 -1
  1005. package/_mjs/data/object/instances.mjs +1 -9
  1006. package/_mjs/data/object/instances.mjs.map +1 -1
  1007. package/_mjs/data/object.mjs.map +1 -1
  1008. package/_mjs/data/string/api.mjs +45 -83
  1009. package/_mjs/data/string/api.mjs.map +1 -1
  1010. package/_mjs/data/string/instances.mjs +11 -15
  1011. package/_mjs/data/string/instances.mjs.map +1 -1
  1012. package/_mjs/data/string.mjs.map +1 -1
  1013. package/_mjs/global/api.mjs +4 -2
  1014. package/_mjs/global/api.mjs.map +1 -1
  1015. package/_mjs/internal/AtomicBoolean.mjs +0 -1
  1016. package/_mjs/internal/AtomicBoolean.mjs.map +1 -1
  1017. package/_mjs/internal/AtomicNumber.mjs +0 -4
  1018. package/_mjs/internal/AtomicNumber.mjs.map +1 -1
  1019. package/_mjs/internal/AtomicReference.mjs +0 -6
  1020. package/_mjs/internal/AtomicReference.mjs.map +1 -1
  1021. package/_mjs/internal/Stack.mjs +1 -10
  1022. package/_mjs/internal/Stack.mjs.map +1 -1
  1023. package/_mjs/json/EitherJson.mjs +1 -2
  1024. package/_mjs/json/EitherJson.mjs.map +1 -1
  1025. package/_mjs/json/MaybeJson.mjs +1 -2
  1026. package/_mjs/json/MaybeJson.mjs.map +1 -1
  1027. package/_mjs/json/TheseJson.mjs +1 -2
  1028. package/_mjs/json/TheseJson.mjs.map +1 -1
  1029. package/_mjs/optics/At/api.mjs +1 -2
  1030. package/_mjs/optics/At/api.mjs.map +1 -1
  1031. package/_mjs/optics/At/definition.mjs +2 -3
  1032. package/_mjs/optics/At/definition.mjs.map +1 -1
  1033. package/_mjs/optics/At.mjs.map +1 -1
  1034. package/_mjs/optics/Fold/definition.mjs +2 -4
  1035. package/_mjs/optics/Fold/definition.mjs.map +1 -1
  1036. package/_mjs/optics/Fold.mjs.map +1 -1
  1037. package/_mjs/optics/Getter/definition.mjs +1 -3
  1038. package/_mjs/optics/Getter/definition.mjs.map +1 -1
  1039. package/_mjs/optics/Getter.mjs.map +1 -1
  1040. package/_mjs/optics/Index/api.mjs +4 -6
  1041. package/_mjs/optics/Index/api.mjs.map +1 -1
  1042. package/_mjs/optics/Index/definition.mjs +1 -2
  1043. package/_mjs/optics/Index/definition.mjs.map +1 -1
  1044. package/_mjs/optics/Index.mjs.map +1 -1
  1045. package/_mjs/optics/Iso/api.mjs +8 -7
  1046. package/_mjs/optics/Iso/api.mjs.map +1 -1
  1047. package/_mjs/optics/Iso/definition.mjs +10 -12
  1048. package/_mjs/optics/Iso/definition.mjs.map +1 -1
  1049. package/_mjs/optics/Iso.mjs.map +1 -1
  1050. package/_mjs/optics/Lens/api.mjs +48 -60
  1051. package/_mjs/optics/Lens/api.mjs.map +1 -1
  1052. package/_mjs/optics/Lens/definition.mjs +8 -10
  1053. package/_mjs/optics/Lens/definition.mjs.map +1 -1
  1054. package/_mjs/optics/Lens.mjs.map +1 -1
  1055. package/_mjs/optics/Optional/api/compose.mjs +8 -7
  1056. package/_mjs/optics/Optional/api/compose.mjs.map +1 -1
  1057. package/_mjs/optics/Optional/definition.mjs +8 -14
  1058. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  1059. package/_mjs/optics/Optional.mjs +2 -2
  1060. package/_mjs/optics/Optional.mjs.map +1 -1
  1061. package/_mjs/optics/Prism/api/compose.mjs +8 -7
  1062. package/_mjs/optics/Prism/api/compose.mjs.map +1 -1
  1063. package/_mjs/optics/Prism/api/fromNullable.mjs +2 -3
  1064. package/_mjs/optics/Prism/api/fromNullable.mjs.map +1 -1
  1065. package/_mjs/optics/Prism/api/just.mjs +2 -3
  1066. package/_mjs/optics/Prism/api/just.mjs.map +1 -1
  1067. package/_mjs/optics/Prism/definition.mjs +6 -9
  1068. package/_mjs/optics/Prism/definition.mjs.map +1 -1
  1069. package/_mjs/optics/Prism.mjs +2 -2
  1070. package/_mjs/optics/Prism.mjs.map +1 -1
  1071. package/_mjs/optics/Setter/definition.mjs +5 -13
  1072. package/_mjs/optics/Setter/definition.mjs.map +1 -1
  1073. package/_mjs/optics/Setter.mjs.map +1 -1
  1074. package/_mjs/optics/Traversal/api/compose.mjs +7 -6
  1075. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  1076. package/_mjs/optics/Traversal/api/fromTraversable.mjs +2 -3
  1077. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  1078. package/_mjs/optics/Traversal/definition.mjs +9 -12
  1079. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  1080. package/_mjs/optics/Traversal.mjs +2 -2
  1081. package/_mjs/optics/Traversal.mjs.map +1 -1
  1082. package/_mjs/typeclass/Align.mjs.map +1 -1
  1083. package/_mjs/typeclass/Alt.mjs.map +1 -1
  1084. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  1085. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  1086. package/_mjs/typeclass/ApplicativeExcept.mjs +6 -10
  1087. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  1088. package/_mjs/typeclass/Apply.mjs +14 -35
  1089. package/_mjs/typeclass/Apply.mjs.map +1 -1
  1090. package/_mjs/typeclass/Chain.mjs +5 -7
  1091. package/_mjs/typeclass/Chain.mjs.map +1 -1
  1092. package/_mjs/typeclass/Closure.mjs +1 -2
  1093. package/_mjs/typeclass/Closure.mjs.map +1 -1
  1094. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  1095. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  1096. package/_mjs/typeclass/Foldable.mjs +1 -2
  1097. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  1098. package/_mjs/typeclass/FoldableWithIndex.mjs +1 -2
  1099. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  1100. package/_mjs/typeclass/Functor.mjs +0 -1
  1101. package/_mjs/typeclass/Functor.mjs.map +1 -1
  1102. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  1103. package/_mjs/typeclass/Has.mjs +8 -5
  1104. package/_mjs/typeclass/Has.mjs.map +1 -1
  1105. package/_mjs/typeclass/Monad.mjs.map +1 -1
  1106. package/_mjs/typeclass/MonadExcept.mjs +1 -1
  1107. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  1108. package/_mjs/typeclass/Monoid.mjs +6 -15
  1109. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  1110. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  1111. package/_mjs/typeclass/Semialign.mjs +7 -14
  1112. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  1113. package/_mjs/typeclass/Semigroup/api.mjs +6 -8
  1114. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  1115. package/_mjs/typeclass/Semigroup/definition.mjs +2 -3
  1116. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  1117. package/_mjs/typeclass/Semigroup/derivations.mjs +7 -14
  1118. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -1
  1119. package/_mjs/typeclass/Semigroup.mjs.map +1 -1
  1120. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  1121. package/_mjs/typeclass/Traversable.mjs +1 -3
  1122. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  1123. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  1124. package/_mjs/typeclass/Witherable.mjs +2 -2
  1125. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  1126. package/_mjs/typeclass/WitherableWithIndex.mjs +2 -1
  1127. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  1128. package/_mjs/typeclass/builtin.mjs.map +1 -1
  1129. package/_mjs/typeclass.mjs +9 -8
  1130. package/_mjs/typeclass.mjs.map +1 -1
  1131. package/_mjs/types.mjs.map +1 -1
  1132. package/_mjs/util/AnsiFormat.mjs +15 -42
  1133. package/_mjs/util/AnsiFormat.mjs.map +1 -1
  1134. package/_mjs/util/PCGRandom.mjs +16 -43
  1135. package/_mjs/util/PCGRandom.mjs.map +1 -1
  1136. package/_mjs/util/assert.mjs +0 -1
  1137. package/_mjs/util/assert.mjs.map +1 -1
  1138. package/_mjs/util/pattern.mjs.map +1 -1
  1139. package/_mjs/util/predicates.mjs +0 -1
  1140. package/_mjs/util/predicates.mjs.map +1 -1
  1141. package/_mjs/util/rand/Random.mjs +0 -17
  1142. package/_mjs/util/rand/Random.mjs.map +1 -1
  1143. package/_mjs/util/rand/distribution/UniformArrayIntDistribution.mjs +0 -4
  1144. package/_mjs/util/rand/distribution/UniformArrayIntDistribution.mjs.map +1 -1
  1145. package/_mjs/util/rand/distribution/UniformBigIntDistribution.mjs +4 -12
  1146. package/_mjs/util/rand/distribution/UniformBigIntDistribution.mjs.map +1 -1
  1147. package/_mjs/util/rand/distribution/UniformIntDistribution.mjs +0 -9
  1148. package/_mjs/util/rand/distribution/UniformIntDistribution.mjs.map +1 -1
  1149. package/_mjs/util/rand/distribution/internals/ArrayInt.mjs +6 -36
  1150. package/_mjs/util/rand/distribution/internals/ArrayInt.mjs.map +1 -1
  1151. package/_mjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.mjs +6 -9
  1152. package/_mjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.mjs.map +1 -1
  1153. package/_mjs/util/rand/distribution/internals/UniformIntDistributionInternal.mjs +8 -13
  1154. package/_mjs/util/rand/distribution/internals/UniformIntDistributionInternal.mjs.map +1 -1
  1155. package/_mjs/util/rand/generator/MersenneTwister.mjs +5 -23
  1156. package/_mjs/util/rand/generator/MersenneTwister.mjs.map +1 -1
  1157. package/_mjs/util/rand/generator/RandomGenerator.mjs +0 -4
  1158. package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
  1159. package/_mjs/util/rand.mjs.map +1 -1
  1160. package/_src/collection/Iterable/api/traverseConc.ts +3 -3
  1161. package/_src/collection/Iterable/api.ts +458 -414
  1162. package/_src/collection/Iterable/constructors.ts +3 -1
  1163. package/_src/collection/compat/Array/api.ts +17 -14
  1164. package/_src/collection/compat/Array.ts +0 -1
  1165. package/_src/collection/compat/ArrayLike/api.ts +2 -2
  1166. package/_src/collection/compat.ts +0 -1
  1167. package/_src/collection/immutable/Conc/api.ts +716 -607
  1168. package/_src/collection/immutable/Conc/definition.ts +62 -70
  1169. package/_src/collection/immutable/Conc.ts +0 -1
  1170. package/_src/collection/immutable/Dictionary/api.ts +44 -32
  1171. package/_src/collection/immutable/Dictionary.ts +4 -0
  1172. package/_src/collection/immutable/HashMap/api.ts +371 -263
  1173. package/_src/collection/immutable/HashMap/definition.ts +17 -3
  1174. package/_src/collection/immutable/HashMap/internal.ts +5 -9
  1175. package/_src/collection/immutable/HashSet/api.ts +237 -190
  1176. package/_src/collection/immutable/HashSet/definition.ts +23 -9
  1177. package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +5 -3
  1178. package/_src/collection/immutable/ImmutableArray/api/slice.ts +5 -3
  1179. package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +5 -3
  1180. package/_src/collection/immutable/ImmutableArray/api/splitWhere.ts +13 -14
  1181. package/_src/collection/immutable/ImmutableArray/api.ts +873 -723
  1182. package/_src/collection/immutable/ImmutableArray/instances.ts +54 -73
  1183. package/_src/collection/immutable/ImmutableArray.ts +0 -1
  1184. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +311 -273
  1185. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +19 -4
  1186. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -1
  1187. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +22 -23
  1188. package/_src/collection/immutable/ImmutableNonEmptyArray.ts +0 -1
  1189. package/_src/collection/immutable/List/api/foldLeft.ts +11 -9
  1190. package/_src/collection/immutable/List/api.ts +156 -132
  1191. package/_src/collection/immutable/List/constructors.ts +1 -1
  1192. package/_src/collection/immutable/List.ts +0 -1
  1193. package/_src/collection/immutable/Queue/api.ts +77 -61
  1194. package/_src/collection/immutable/Queue/definition.ts +0 -1
  1195. package/_src/collection/immutable/Queue/guards.ts +2 -2
  1196. package/_src/collection/immutable/RoseTree/api.ts +38 -32
  1197. package/_src/collection/immutable/RoseTree/definition.ts +2 -0
  1198. package/_src/collection/immutable/SortedMap/api.ts +412 -381
  1199. package/_src/collection/immutable/SortedMap/definition.ts +5 -0
  1200. package/_src/collection/immutable/Vector/api.ts +640 -514
  1201. package/_src/collection/immutable/Vector/definition.ts +11 -12
  1202. package/_src/collection/immutable/Vector/internal.ts +37 -38
  1203. package/_src/collection/immutable.ts +1 -0
  1204. package/_src/collection/mutable/HashMap.ts +8 -11
  1205. package/_src/collection/mutable/HashSet.ts +7 -8
  1206. package/_src/collection/mutable/ListBuffer.ts +1 -1
  1207. package/_src/collection/mutable/internal.ts +0 -2
  1208. package/_src/collection/weak/IterableWeakMap.ts +11 -7
  1209. package/_src/collection/weak/IterableWeakSet.ts +10 -5
  1210. package/_src/control/Eval/api.ts +35 -19
  1211. package/_src/control/Eval/instance.ts +5 -5
  1212. package/_src/control/Z/api.ts +191 -208
  1213. package/_src/control/Z/instances.ts +4 -5
  1214. package/_src/control/Z/runtime.ts +190 -189
  1215. package/_src/data/Branded/definition.ts +11 -12
  1216. package/_src/data/Branded.ts +0 -1
  1217. package/_src/data/CaseClass.ts +4 -1
  1218. package/_src/data/Cause/api/fold.ts +13 -14
  1219. package/_src/data/Cause/api/linearize.ts +4 -4
  1220. package/_src/data/Cause/api/unified.ts +1 -1
  1221. package/_src/data/Cause/api.ts +126 -108
  1222. package/_src/data/Cause/definition.ts +2 -2
  1223. package/_src/data/Cause.ts +0 -1
  1224. package/_src/data/Const/api.ts +6 -4
  1225. package/_src/data/Const/instances.ts +3 -3
  1226. package/_src/data/Datum/api.ts +228 -198
  1227. package/_src/data/Datum/definition.ts +2 -5
  1228. package/_src/data/DatumEither/api.ts +208 -193
  1229. package/_src/data/DecodeError/definition.ts +4 -2
  1230. package/_src/data/Decoder/api.ts +498 -11
  1231. package/_src/data/Duration/api.ts +24 -15
  1232. package/_src/data/Either/api/align.ts +7 -2
  1233. package/_src/data/Either/api/alignWith.ts +13 -15
  1234. package/_src/data/Either/api.ts +141 -119
  1235. package/_src/data/Either/constructors.ts +12 -10
  1236. package/_src/data/Either/destructors.ts +11 -9
  1237. package/_src/data/Either/instances.ts +27 -23
  1238. package/_src/data/EitherT/api.ts +43 -49
  1239. package/_src/data/Encoder/api.ts +375 -0
  1240. package/_src/data/Encoder/definition.ts +16 -0
  1241. package/_src/data/Encoder.ts +4 -0
  1242. package/_src/data/Environment/api.ts +53 -45
  1243. package/_src/data/Environment/definition.ts +1 -4
  1244. package/_src/data/EnvironmentPatch.ts +10 -9
  1245. package/_src/{typeclass → data}/Eq/definition.ts +2 -2
  1246. package/_src/{typeclass → data}/Eq/derivations.ts +6 -6
  1247. package/_src/{typeclass → data}/Eq.ts +0 -0
  1248. package/_src/{typeclass → data}/Equatable/api.ts +2 -2
  1249. package/_src/{typeclass → data}/Equatable/definition.ts +0 -0
  1250. package/_src/{typeclass → data}/Equatable/fast-equals.ts +8 -61
  1251. package/_src/{typeclass → data}/Equatable.ts +0 -0
  1252. package/_src/data/ExecutionStrategy.ts +14 -24
  1253. package/_src/data/Exit/api.ts +106 -75
  1254. package/_src/data/Exit/constructors.ts +2 -2
  1255. package/_src/data/FiberId/api.ts +21 -19
  1256. package/_src/data/FiberId/constructors.ts +4 -5
  1257. package/_src/data/FiberId/definition.ts +4 -1
  1258. package/_src/data/Guard/api.ts +457 -0
  1259. package/_src/{typeclass → data}/Guard/definition.ts +3 -1
  1260. package/_src/data/Guard.ts +4 -0
  1261. package/_src/{typeclass → data}/Hash.ts +0 -0
  1262. package/_src/{typeclass → data}/HashEq.ts +4 -6
  1263. package/_src/{typeclass → data}/Hashable/definition.ts +0 -0
  1264. package/_src/{typeclass → data}/Hashable/hash.ts +1 -2
  1265. package/_src/{typeclass → data}/Hashable.ts +0 -0
  1266. package/_src/data/Identity/api.ts +20 -12
  1267. package/_src/data/Identity/instances.ts +4 -7
  1268. package/_src/data/Interval.ts +41 -31
  1269. package/_src/data/Intervals.ts +31 -23
  1270. package/_src/data/Maybe/api.ts +112 -79
  1271. package/_src/data/Maybe/constructors.ts +3 -3
  1272. package/_src/data/Maybe/definition.ts +11 -1
  1273. package/_src/data/Maybe/destructors.ts +6 -4
  1274. package/_src/data/Maybe/instances.ts +31 -21
  1275. package/_src/data/Ord/api/contramap.ts +11 -0
  1276. package/_src/data/Ord/api/max.ts +7 -0
  1277. package/_src/data/Ord/api/min.ts +7 -0
  1278. package/_src/{typeclass → data}/Ord/api.ts +0 -0
  1279. package/_src/{typeclass → data}/Ord/definition.ts +2 -6
  1280. package/_src/{typeclass → data}/Ord/instances.ts +6 -8
  1281. package/_src/{typeclass → data}/Ord.ts +0 -0
  1282. package/_src/{typeclass → data}/Ordering.ts +2 -0
  1283. package/_src/data/Predicate/api.ts +14 -8
  1284. package/_src/data/Refinement/api.ts +19 -13
  1285. package/_src/{typeclass → data}/Showable/definition.ts +4 -4
  1286. package/_src/{typeclass → data}/Showable/show.ts +23 -38
  1287. package/_src/{typeclass → data}/Showable/styles.ts +0 -8
  1288. package/_src/{typeclass → data}/Showable/util.ts +22 -57
  1289. package/_src/{typeclass → data}/Showable.ts +0 -0
  1290. package/_src/data/Struct/api.ts +75 -55
  1291. package/_src/data/Tag/constructors.ts +1 -2
  1292. package/_src/data/Tag/definition.ts +0 -1
  1293. package/_src/data/These/api.ts +114 -114
  1294. package/_src/data/These/destructors.ts +23 -24
  1295. package/_src/data/Trace/api.ts +5 -3
  1296. package/_src/data/Zipped.ts +3 -4
  1297. package/_src/data/bigint/instances.ts +1 -0
  1298. package/_src/data/boolean/instances.ts +1 -0
  1299. package/_src/data/function/api.ts +6 -7
  1300. package/_src/data/function/pipe.ts +9 -1
  1301. package/_src/data/number/instances.ts +5 -5
  1302. package/_src/data/object/instances.ts +0 -11
  1303. package/_src/data/string/api.ts +40 -62
  1304. package/_src/data/string/instances.ts +4 -4
  1305. package/_src/data.ts +10 -0
  1306. package/_src/global/api.ts +7 -12
  1307. package/_src/global.ts +28 -12
  1308. package/_src/internal/AtomicBoolean.ts +0 -1
  1309. package/_src/internal/AtomicNumber.ts +0 -7
  1310. package/_src/internal/AtomicReference.ts +0 -4
  1311. package/_src/internal/Stack.ts +1 -7
  1312. package/_src/optics/At/definition.ts +5 -3
  1313. package/_src/optics/Fold/definition.ts +3 -10
  1314. package/_src/optics/Getter/definition.ts +1 -2
  1315. package/_src/optics/Index/definition.ts +1 -1
  1316. package/_src/optics/Iso/api.ts +8 -6
  1317. package/_src/optics/Iso/definition.ts +3 -3
  1318. package/_src/optics/Lens/api.ts +44 -42
  1319. package/_src/optics/Lens/definition.ts +5 -5
  1320. package/_src/optics/Optional/api/compose.ts +9 -9
  1321. package/_src/optics/Optional/definition.ts +9 -16
  1322. package/_src/optics/Optional.ts +0 -1
  1323. package/_src/optics/Prism/api/compose.ts +9 -6
  1324. package/_src/optics/Prism/definition.ts +3 -3
  1325. package/_src/optics/Prism.ts +0 -1
  1326. package/_src/optics/Setter/definition.ts +3 -23
  1327. package/_src/optics/Traversal/api/compose.ts +7 -8
  1328. package/_src/optics/Traversal/api/fromTraversable.ts +1 -1
  1329. package/_src/optics/Traversal/definition.ts +10 -15
  1330. package/_src/optics/Traversal.ts +0 -1
  1331. package/_src/typeclass/Align.ts +0 -3
  1332. package/_src/typeclass/Alt.ts +2 -1
  1333. package/_src/typeclass/Applicative.ts +0 -1
  1334. package/_src/typeclass/ApplicativeExcept.ts +15 -10
  1335. package/_src/typeclass/Apply.ts +34 -36
  1336. package/_src/typeclass/Chain.ts +9 -12
  1337. package/_src/typeclass/Closure.ts +2 -2
  1338. package/_src/typeclass/Filterable.ts +19 -13
  1339. package/_src/typeclass/FilterableWithIndex.ts +19 -13
  1340. package/_src/typeclass/Foldable.ts +7 -10
  1341. package/_src/typeclass/FoldableWithIndex.ts +7 -10
  1342. package/_src/typeclass/Functor.ts +6 -4
  1343. package/_src/typeclass/FunctorWithIndex.ts +3 -2
  1344. package/_src/typeclass/Has.ts +6 -4
  1345. package/_src/typeclass/MonadExcept.ts +1 -1
  1346. package/_src/typeclass/Monoid.ts +2 -2
  1347. package/_src/typeclass/Semialign.ts +43 -32
  1348. package/_src/typeclass/Semigroup/api.ts +0 -2
  1349. package/_src/typeclass/Semigroup/definition.ts +2 -2
  1350. package/_src/typeclass/Semigroup/derivations.ts +5 -5
  1351. package/_src/typeclass/Semimonoidal.ts +3 -2
  1352. package/_src/typeclass/Traversable.ts +13 -18
  1353. package/_src/typeclass/TraversableWithIndex.ts +5 -7
  1354. package/_src/typeclass/Witherable.ts +21 -13
  1355. package/_src/typeclass/WitherableWithIndex.ts +26 -17
  1356. package/_src/typeclass/builtin/Symbol.ts +0 -1
  1357. package/_src/typeclass.ts +9 -8
  1358. package/_src/types/extractions.ts +12 -3
  1359. package/_src/types/utility.ts +3 -5
  1360. package/_src/util/AnsiFormat.ts +0 -25
  1361. package/_src/util/PCGRandom.ts +4 -9
  1362. package/_src/util/assert.ts +1 -2
  1363. package/_src/util/pattern.ts +91 -12
  1364. package/_src/util/predicates.ts +3 -1
  1365. package/_src/util/rand/Random.ts +12 -16
  1366. package/_src/util/rand/distribution/Distribution.ts +0 -1
  1367. package/_src/util/rand/distribution/UniformArrayIntDistribution.ts +0 -3
  1368. package/_src/util/rand/distribution/UniformBigIntDistribution.ts +0 -5
  1369. package/_src/util/rand/distribution/UniformIntDistribution.ts +0 -7
  1370. package/_src/util/rand/distribution/internals/ArrayInt.ts +3 -13
  1371. package/_src/util/rand/distribution/internals/UniformArrayIntDistributionInternal.ts +0 -3
  1372. package/_src/util/rand/distribution/internals/UniformIntDistributionInternal.ts +0 -4
  1373. package/_src/util/rand/generator/MersenneTwister.ts +6 -29
  1374. package/_src/util/rand/generator/RandomGenerator.ts +0 -3
  1375. package/_src/util/rand.ts +0 -2
  1376. package/collection/Iterable/api/traverseConc.d.ts +2 -2
  1377. package/collection/Iterable/api.d.ts +71 -66
  1378. package/collection/Iterable/constructors.d.ts +1 -1
  1379. package/collection/compat/Array/api.d.ts +6 -6
  1380. package/collection/compat/Array.d.ts +0 -1
  1381. package/collection/compat/ArrayLike/api.d.ts +2 -2
  1382. package/collection/compat.d.ts +0 -1
  1383. package/collection/immutable/Conc/api.d.ts +108 -105
  1384. package/collection/immutable/Conc/definition.d.ts +4 -4
  1385. package/collection/immutable/Conc.d.ts +0 -1
  1386. package/collection/immutable/Dictionary/api.d.ts +12 -12
  1387. package/collection/immutable/Dictionary.d.ts +2 -0
  1388. package/collection/immutable/HashMap/api.d.ts +91 -85
  1389. package/collection/immutable/HashMap/definition.d.ts +13 -4
  1390. package/collection/immutable/HashSet/api.d.ts +66 -51
  1391. package/collection/immutable/HashSet/definition.d.ts +15 -6
  1392. package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +2 -2
  1393. package/collection/immutable/ImmutableArray/api/slice.d.ts +2 -2
  1394. package/collection/immutable/ImmutableArray/api/splitAt.d.ts +2 -2
  1395. package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +3 -3
  1396. package/collection/immutable/ImmutableArray/api.d.ts +206 -206
  1397. package/collection/immutable/ImmutableArray/definition.d.ts +2 -2
  1398. package/collection/immutable/ImmutableArray.d.ts +0 -1
  1399. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +64 -63
  1400. package/collection/immutable/ImmutableNonEmptyArray.d.ts +0 -1
  1401. package/collection/immutable/List/api/foldLeft.d.ts +2 -2
  1402. package/collection/immutable/List/api.d.ts +28 -26
  1403. package/collection/immutable/List/constructors.d.ts +1 -1
  1404. package/collection/immutable/Queue/api.d.ts +23 -23
  1405. package/collection/immutable/Queue/guards.d.ts +1 -1
  1406. package/collection/immutable/RoseTree/api.d.ts +14 -14
  1407. package/collection/immutable/RoseTree/definition.d.ts +2 -2
  1408. package/collection/immutable/SortedMap/api.d.ts +47 -46
  1409. package/collection/immutable/SortedMap/definition.d.ts +3 -0
  1410. package/collection/immutable/Vector/api.d.ts +136 -132
  1411. package/collection/immutable/Vector/definition.d.ts +4 -4
  1412. package/collection/immutable/Vector/internal.d.ts +2 -2
  1413. package/collection/immutable.d.ts +1 -0
  1414. package/collection/mutable/HashMap.d.ts +2 -2
  1415. package/collection/mutable/HashSet.d.ts +2 -2
  1416. package/collection/mutable/ListBuffer.d.ts +1 -1
  1417. package/control/Eval/api.d.ts +12 -12
  1418. package/control/Z/api.d.ts +68 -68
  1419. package/control/Z/runtime.d.ts +10 -10
  1420. package/data/Branded.d.ts +0 -1
  1421. package/data/CaseClass.d.ts +2 -2
  1422. package/data/Cause/api/fold.d.ts +3 -3
  1423. package/data/Cause/api.d.ts +20 -20
  1424. package/data/Const/api.d.ts +3 -3
  1425. package/data/Datum/api.d.ts +44 -43
  1426. package/data/Datum/definition.d.ts +2 -2
  1427. package/data/DatumEither/api.d.ts +48 -46
  1428. package/data/DecodeError/definition.d.ts +2 -1
  1429. package/data/Decoder/api.d.ts +154 -6
  1430. package/data/Duration/api.d.ts +12 -7
  1431. package/data/Duration/definition.d.ts +2 -2
  1432. package/data/Either/api/align.d.ts +5 -1
  1433. package/data/Either/api/alignWith.d.ts +2 -2
  1434. package/data/Either/api.d.ts +40 -46
  1435. package/data/Either/constructors.d.ts +6 -6
  1436. package/data/Either/destructors.d.ts +2 -2
  1437. package/data/Either/instances.d.ts +1 -1
  1438. package/data/EitherT/api.d.ts +6 -6
  1439. package/data/Encoder/api.d.ts +214 -0
  1440. package/data/Encoder/definition.d.ts +16 -0
  1441. package/data/Encoder.d.ts +2 -0
  1442. package/data/Environment/api.d.ts +14 -14
  1443. package/data/Environment/definition.d.ts +2 -2
  1444. package/data/EnvironmentPatch.d.ts +4 -4
  1445. package/{typeclass → data}/Eq/definition.d.ts +3 -3
  1446. package/{typeclass → data}/Eq/derivations.d.ts +3 -3
  1447. package/{typeclass → data}/Eq.d.ts +0 -0
  1448. package/{typeclass → data}/Equatable/api.d.ts +2 -2
  1449. package/{typeclass → data}/Equatable/definition.d.ts +1 -1
  1450. package/{typeclass → data}/Equatable/fast-equals.d.ts +0 -0
  1451. package/{typeclass → data}/Equatable.d.ts +0 -0
  1452. package/data/ExecutionStrategy.d.ts +1 -6
  1453. package/data/Exit/api.d.ts +34 -34
  1454. package/data/Exit/constructors.d.ts +2 -2
  1455. package/data/Exit/definition.d.ts +1 -1
  1456. package/data/FiberId/api.d.ts +2 -2
  1457. package/data/FiberId/constructors.d.ts +1 -2
  1458. package/data/FiberId/definition.d.ts +7 -5
  1459. package/data/Guard/api.d.ts +242 -0
  1460. package/{typeclass → data}/Guard/definition.d.ts +4 -2
  1461. package/{typeclass → data}/Guard.d.ts +0 -0
  1462. package/{typeclass → data}/Hash.d.ts +1 -1
  1463. package/{typeclass → data}/HashEq.d.ts +6 -7
  1464. package/{typeclass → data}/Hashable/definition.d.ts +1 -1
  1465. package/{typeclass → data}/Hashable/hash.d.ts +11 -11
  1466. package/{typeclass → data}/Hashable.d.ts +0 -0
  1467. package/data/Identity/api.d.ts +8 -8
  1468. package/data/Interval.d.ts +13 -12
  1469. package/data/Intervals.d.ts +11 -11
  1470. package/data/Maybe/api.d.ts +36 -37
  1471. package/data/Maybe/constructors.d.ts +2 -2
  1472. package/data/Maybe/definition.d.ts +9 -5
  1473. package/data/Maybe/destructors.d.ts +2 -2
  1474. package/data/Maybe/instances.d.ts +7 -1
  1475. package/data/Ord/api/contramap.d.ts +6 -0
  1476. package/data/Ord/api/max.d.ts +7 -0
  1477. package/data/Ord/api/min.d.ts +7 -0
  1478. package/{typeclass → data}/Ord/api.d.ts +0 -0
  1479. package/data/Ord/definition.d.ts +19 -0
  1480. package/{typeclass → data}/Ord/instances.d.ts +3 -3
  1481. package/{typeclass → data}/Ord.d.ts +0 -0
  1482. package/{typeclass → data}/Ordering.d.ts +5 -5
  1483. package/data/Predicate/api.d.ts +5 -5
  1484. package/data/Refinement/api.d.ts +9 -9
  1485. package/data/Showable/definition.d.ts +17 -0
  1486. package/{typeclass → data}/Showable/show.d.ts +1 -1
  1487. package/{typeclass → data}/Showable/styles.d.ts +0 -0
  1488. package/{typeclass → data}/Showable/util.d.ts +0 -0
  1489. package/{typeclass → data}/Showable.d.ts +0 -0
  1490. package/data/Struct/api.d.ts +13 -23
  1491. package/data/Tag/constructors.d.ts +1 -2
  1492. package/data/Tag/definition.d.ts +2 -3
  1493. package/data/These/api.d.ts +18 -22
  1494. package/data/These/destructors.d.ts +4 -4
  1495. package/data/These/instances.d.ts +1 -1
  1496. package/data/Trace/api.d.ts +2 -2
  1497. package/data/bigint/instances.d.ts +1 -0
  1498. package/data/boolean/instances.d.ts +1 -0
  1499. package/data/function/api.d.ts +3 -3
  1500. package/data/function/pipe.d.ts +7 -1
  1501. package/data/number/instances.d.ts +1 -1
  1502. package/data/object/instances.d.ts +0 -6
  1503. package/data/string/api.d.ts +9 -49
  1504. package/data.d.ts +10 -0
  1505. package/global/api.d.ts +3 -3
  1506. package/global.d.ts +28 -12
  1507. package/internal/Stack.d.ts +1 -1
  1508. package/optics/At/definition.d.ts +1 -1
  1509. package/optics/Fold/definition.d.ts +2 -6
  1510. package/optics/Getter/definition.d.ts +1 -1
  1511. package/optics/Index/definition.d.ts +1 -1
  1512. package/optics/Iso/api.d.ts +2 -2
  1513. package/optics/Iso/definition.d.ts +2 -2
  1514. package/optics/Lens/api.d.ts +10 -10
  1515. package/optics/Lens/definition.d.ts +4 -4
  1516. package/optics/Optional/api/compose.d.ts +2 -2
  1517. package/optics/Optional/definition.d.ts +4 -8
  1518. package/optics/Prism/api/compose.d.ts +2 -2
  1519. package/optics/Prism/definition.d.ts +2 -2
  1520. package/optics/Setter/definition.d.ts +2 -14
  1521. package/optics/Traversal/api/compose.d.ts +2 -2
  1522. package/optics/Traversal/definition.d.ts +4 -4
  1523. package/package.json +2 -2
  1524. package/typeclass/Alt.d.ts +1 -1
  1525. package/typeclass/ApplicativeExcept.d.ts +2 -6
  1526. package/typeclass/Apply.d.ts +7 -7
  1527. package/typeclass/Chain.d.ts +4 -4
  1528. package/typeclass/Closure.d.ts +2 -2
  1529. package/typeclass/Filterable.d.ts +6 -6
  1530. package/typeclass/FilterableWithIndex.d.ts +6 -6
  1531. package/typeclass/Foldable.d.ts +4 -4
  1532. package/typeclass/FoldableWithIndex.d.ts +4 -4
  1533. package/typeclass/Functor.d.ts +2 -2
  1534. package/typeclass/FunctorWithIndex.d.ts +1 -1
  1535. package/typeclass/Has.d.ts +3 -3
  1536. package/typeclass/Semialign.d.ts +14 -14
  1537. package/typeclass/Semigroup/api.d.ts +1 -1
  1538. package/typeclass/Semigroup/definition.d.ts +2 -2
  1539. package/typeclass/Semimonoidal.d.ts +1 -1
  1540. package/typeclass/Traversable.d.ts +4 -6
  1541. package/typeclass/TraversableWithIndex.d.ts +2 -2
  1542. package/typeclass/Witherable.d.ts +3 -3
  1543. package/typeclass/WitherableWithIndex.d.ts +5 -5
  1544. package/typeclass.d.ts +8 -8
  1545. package/types/extractions.d.ts +10 -6
  1546. package/util/assert.d.ts +1 -1
  1547. package/_cjs/collection/compat/Array/derivations.cjs +0 -96
  1548. package/_cjs/collection/compat/Array/derivations.cjs.map +0 -1
  1549. package/_cjs/collection/compat/Record/instances.cjs +0 -128
  1550. package/_cjs/collection/compat/Record/instances.cjs.map +0 -1
  1551. package/_cjs/collection/compat/Record.cjs +0 -19
  1552. package/_cjs/collection/compat/Record.cjs.map +0 -1
  1553. package/_cjs/collection/immutable/Conc/derivations.cjs +0 -45
  1554. package/_cjs/collection/immutable/Conc/derivations.cjs.map +0 -1
  1555. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs +0 -41
  1556. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs.map +0 -1
  1557. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs +0 -62
  1558. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs.map +0 -1
  1559. package/_cjs/data/Branded/derivations.cjs +0 -58
  1560. package/_cjs/data/Branded/derivations.cjs.map +0 -1
  1561. package/_cjs/typeclass/Eq/definition.cjs.map +0 -1
  1562. package/_cjs/typeclass/Eq/derivations.cjs.map +0 -1
  1563. package/_cjs/typeclass/Eq.cjs.map +0 -1
  1564. package/_cjs/typeclass/Equatable/api.cjs.map +0 -1
  1565. package/_cjs/typeclass/Equatable/definition.cjs.map +0 -1
  1566. package/_cjs/typeclass/Equatable/fast-equals.cjs.map +0 -1
  1567. package/_cjs/typeclass/Equatable.cjs.map +0 -1
  1568. package/_cjs/typeclass/Guard/api.cjs +0 -40
  1569. package/_cjs/typeclass/Guard/api.cjs.map +0 -1
  1570. package/_cjs/typeclass/Guard/definition.cjs.map +0 -1
  1571. package/_cjs/typeclass/Guard/derivations.cjs +0 -85
  1572. package/_cjs/typeclass/Guard/derivations.cjs.map +0 -1
  1573. package/_cjs/typeclass/Guard.cjs.map +0 -1
  1574. package/_cjs/typeclass/Hash.cjs.map +0 -1
  1575. package/_cjs/typeclass/HashEq.cjs.map +0 -1
  1576. package/_cjs/typeclass/Hashable/definition.cjs.map +0 -1
  1577. package/_cjs/typeclass/Hashable/hash.cjs.map +0 -1
  1578. package/_cjs/typeclass/Hashable.cjs.map +0 -1
  1579. package/_cjs/typeclass/Ord/api/contramap.cjs +0 -17
  1580. package/_cjs/typeclass/Ord/api/contramap.cjs.map +0 -1
  1581. package/_cjs/typeclass/Ord/api/max.cjs.map +0 -1
  1582. package/_cjs/typeclass/Ord/api/min.cjs.map +0 -1
  1583. package/_cjs/typeclass/Ord/api.cjs.map +0 -1
  1584. package/_cjs/typeclass/Ord/definition.cjs.map +0 -1
  1585. package/_cjs/typeclass/Ord/instances.cjs.map +0 -1
  1586. package/_cjs/typeclass/Ord.cjs.map +0 -1
  1587. package/_cjs/typeclass/Ordering.cjs.map +0 -1
  1588. package/_cjs/typeclass/Showable/definition.cjs.map +0 -1
  1589. package/_cjs/typeclass/Showable/show.cjs.map +0 -1
  1590. package/_cjs/typeclass/Showable/styles.cjs.map +0 -1
  1591. package/_cjs/typeclass/Showable/util.cjs.map +0 -1
  1592. package/_cjs/typeclass/Showable.cjs.map +0 -1
  1593. package/_mjs/collection/compat/Array/derivations.mjs +0 -70
  1594. package/_mjs/collection/compat/Array/derivations.mjs.map +0 -1
  1595. package/_mjs/collection/compat/Record/instances.mjs +0 -105
  1596. package/_mjs/collection/compat/Record/instances.mjs.map +0 -1
  1597. package/_mjs/collection/compat/Record.mjs +0 -3
  1598. package/_mjs/collection/compat/Record.mjs.map +0 -1
  1599. package/_mjs/collection/immutable/Conc/derivations.mjs +0 -27
  1600. package/_mjs/collection/immutable/Conc/derivations.mjs.map +0 -1
  1601. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs +0 -25
  1602. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs.map +0 -1
  1603. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs +0 -39
  1604. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs.map +0 -1
  1605. package/_mjs/data/Branded/derivations.mjs +0 -40
  1606. package/_mjs/data/Branded/derivations.mjs.map +0 -1
  1607. package/_mjs/typeclass/Eq/definition.mjs.map +0 -1
  1608. package/_mjs/typeclass/Eq/derivations.mjs.map +0 -1
  1609. package/_mjs/typeclass/Eq.mjs.map +0 -1
  1610. package/_mjs/typeclass/Equatable/api.mjs.map +0 -1
  1611. package/_mjs/typeclass/Equatable/definition.mjs.map +0 -1
  1612. package/_mjs/typeclass/Equatable/fast-equals.mjs.map +0 -1
  1613. package/_mjs/typeclass/Equatable.mjs.map +0 -1
  1614. package/_mjs/typeclass/Guard/api.mjs +0 -24
  1615. package/_mjs/typeclass/Guard/api.mjs.map +0 -1
  1616. package/_mjs/typeclass/Guard/definition.mjs.map +0 -1
  1617. package/_mjs/typeclass/Guard/derivations.mjs +0 -67
  1618. package/_mjs/typeclass/Guard/derivations.mjs.map +0 -1
  1619. package/_mjs/typeclass/Guard.mjs +0 -4
  1620. package/_mjs/typeclass/Guard.mjs.map +0 -1
  1621. package/_mjs/typeclass/Hash.mjs.map +0 -1
  1622. package/_mjs/typeclass/HashEq.mjs +0 -33
  1623. package/_mjs/typeclass/HashEq.mjs.map +0 -1
  1624. package/_mjs/typeclass/Hashable/definition.mjs.map +0 -1
  1625. package/_mjs/typeclass/Hashable/hash.mjs.map +0 -1
  1626. package/_mjs/typeclass/Hashable.mjs.map +0 -1
  1627. package/_mjs/typeclass/Ord/api/contramap.mjs +0 -10
  1628. package/_mjs/typeclass/Ord/api/contramap.mjs.map +0 -1
  1629. package/_mjs/typeclass/Ord/api/max.mjs +0 -8
  1630. package/_mjs/typeclass/Ord/api/max.mjs.map +0 -1
  1631. package/_mjs/typeclass/Ord/api/min.mjs +0 -8
  1632. package/_mjs/typeclass/Ord/api/min.mjs.map +0 -1
  1633. package/_mjs/typeclass/Ord/api.mjs.map +0 -1
  1634. package/_mjs/typeclass/Ord/definition.mjs +0 -13
  1635. package/_mjs/typeclass/Ord/definition.mjs.map +0 -1
  1636. package/_mjs/typeclass/Ord/instances.mjs +0 -37
  1637. package/_mjs/typeclass/Ord/instances.mjs.map +0 -1
  1638. package/_mjs/typeclass/Ord.mjs.map +0 -1
  1639. package/_mjs/typeclass/Ordering.mjs.map +0 -1
  1640. package/_mjs/typeclass/Showable/definition.mjs.map +0 -1
  1641. package/_mjs/typeclass/Showable/show.mjs.map +0 -1
  1642. package/_mjs/typeclass/Showable/styles.mjs.map +0 -1
  1643. package/_mjs/typeclass/Showable/util.mjs.map +0 -1
  1644. package/_mjs/typeclass/Showable.mjs.map +0 -1
  1645. package/_src/collection/compat/Array/derivations.ts +0 -85
  1646. package/_src/collection/compat/Record/instances.ts +0 -102
  1647. package/_src/collection/compat/Record.ts +0 -3
  1648. package/_src/collection/immutable/Conc/derivations.ts +0 -28
  1649. package/_src/collection/immutable/ImmutableArray/derivations.ts +0 -28
  1650. package/_src/collection/immutable/ImmutableNonEmptyArray/derivations.ts +0 -44
  1651. package/_src/data/Branded/derivations.ts +0 -58
  1652. package/_src/typeclass/Guard/api.ts +0 -32
  1653. package/_src/typeclass/Guard/derivations.ts +0 -81
  1654. package/_src/typeclass/Guard.ts +0 -4
  1655. package/_src/typeclass/Ord/api/contramap.ts +0 -11
  1656. package/_src/typeclass/Ord/api/max.ts +0 -9
  1657. package/_src/typeclass/Ord/api/min.ts +0 -9
  1658. package/collection/compat/Array/derivations.d.ts +0 -24
  1659. package/collection/compat/Record/instances.d.ts +0 -22
  1660. package/collection/compat/Record.d.ts +0 -1
  1661. package/collection/immutable/Conc/derivations.d.ts +0 -14
  1662. package/collection/immutable/ImmutableArray/derivations.d.ts +0 -14
  1663. package/collection/immutable/ImmutableNonEmptyArray/derivations.d.ts +0 -14
  1664. package/data/Branded/derivations.d.ts +0 -24
  1665. package/typeclass/Guard/api.d.ts +0 -20
  1666. package/typeclass/Guard/derivations.d.ts +0 -36
  1667. package/typeclass/Ord/api/contramap.d.ts +0 -6
  1668. package/typeclass/Ord/api/max.d.ts +0 -7
  1669. package/typeclass/Ord/api/min.d.ts +0 -7
  1670. package/typeclass/Ord/definition.d.ts +0 -19
  1671. package/typeclass/Showable/definition.d.ts +0 -17
@@ -2,90 +2,96 @@ import type { ImmutableArrayF } from "@fncts/base/collection/immutable/Immutable
2
2
  import type { Monoid } from "@fncts/base/typeclass";
3
3
 
4
4
  import { EitherTag } from "@fncts/base/data/Either";
5
- import { identity, tuple } from "@fncts/base/data/function";
5
+ import { identity, pipe, tuple } from "@fncts/base/data/function";
6
6
  import * as P from "@fncts/base/typeclass";
7
7
 
8
8
  /**
9
- * @tsplus fluent fncts.ImmutableArray alignWith
9
+ * @tsplus pipeable fncts.ImmutableArray alignWith
10
10
  */
11
- export function alignWith_<A, B, C>(
12
- self: ImmutableArray<A>,
13
- fb: ImmutableArray<B>,
14
- f: (_: These<A, B>) => C,
15
- ): ImmutableArray<C> {
16
- const selfArray = self._array;
17
- const thatArray = fb._array;
18
- const minlen = Math.min(selfArray.length, thatArray.length);
19
- const maxlen = Math.max(selfArray.length, thatArray.length);
20
- const ret = Array<C>(maxlen);
21
- for (let i = 0; i < minlen; i++) {
22
- ret[i] = f(These.both(selfArray[i]!, thatArray[i]!));
23
- }
24
- if (minlen === maxlen) {
25
- return ret.asImmutableArray;
26
- } else if (selfArray.length > thatArray.length) {
27
- for (let i = minlen; i < maxlen; i++) {
28
- ret[i] = f(These.left(selfArray[i]!));
11
+ export function alignWith<A, B, C>(fb: ImmutableArray<B>, f: (_: These<A, B>) => C) {
12
+ return (self: ImmutableArray<A>): ImmutableArray<C> => {
13
+ const selfArray = self._array;
14
+ const thatArray = fb._array;
15
+ const minlen = Math.min(selfArray.length, thatArray.length);
16
+ const maxlen = Math.max(selfArray.length, thatArray.length);
17
+ const ret = Array<C>(maxlen);
18
+ for (let i = 0; i < minlen; i++) {
19
+ ret[i] = f(These.both(selfArray[i]!, thatArray[i]!));
29
20
  }
30
- } else {
31
- for (let i = minlen; i < maxlen; i++) {
32
- ret[i] = f(These.right(thatArray[i]!));
21
+ if (minlen === maxlen) {
22
+ return ret.asImmutableArray;
23
+ } else if (selfArray.length > thatArray.length) {
24
+ for (let i = minlen; i < maxlen; i++) {
25
+ ret[i] = f(These.left(selfArray[i]!));
26
+ }
27
+ } else {
28
+ for (let i = minlen; i < maxlen; i++) {
29
+ ret[i] = f(These.right(thatArray[i]!));
30
+ }
33
31
  }
34
- }
35
- return ret.asImmutableArray;
32
+ return ret.asImmutableArray;
33
+ };
36
34
  }
37
35
 
38
36
  /**
39
- * @tsplus fluent fncts.ImmutableArray align
37
+ * @tsplus pipeable fncts.ImmutableArray align
40
38
  */
41
- export function align_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<These<A, B>> {
42
- return self.alignWith(fb, identity);
39
+ export function align<B>(fb: ImmutableArray<B>) {
40
+ return <A>(self: ImmutableArray<A>): ImmutableArray<These<A, B>> => {
41
+ return self.alignWith(fb, identity);
42
+ };
43
43
  }
44
44
 
45
45
  /**
46
- * @tsplus fluent fncts.ImmutableArray alt
46
+ * @tsplus pipeable fncts.ImmutableArray alt
47
47
  */
48
- export function alt_<A, B>(self: ImmutableArray<A>, that: Lazy<ImmutableArray<B>>): ImmutableArray<A | B> {
49
- return self.concat(that());
48
+ export function alt<B>(that: Lazy<ImmutableArray<B>>) {
49
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A | B> => {
50
+ return self.concat(that());
51
+ };
50
52
  }
51
53
 
52
54
  /**
53
- * @tsplus fluent fncts.ImmutableArray ap
55
+ * @tsplus pipeable fncts.ImmutableArray ap
54
56
  */
55
- export function ap_<A, B>(self: ImmutableArray<(a: A) => B>, fa: ImmutableArray<A>): ImmutableArray<B> {
56
- return self.flatMap((f) => fa.map(f));
57
+ export function ap<A>(fa: ImmutableArray<A>) {
58
+ return <B>(self: ImmutableArray<(a: A) => B>): ImmutableArray<B> => {
59
+ return self.flatMap((f) => fa.map(f));
60
+ };
57
61
  }
58
62
 
59
63
  /**
60
- * @tsplus fluent fncts.ImmutableArray append
64
+ * @tsplus pipeable fncts.ImmutableArray append
61
65
  */
62
- export function append_<A, B>(self: ImmutableArray<A>, last: B): ImmutableArray<A | B> {
63
- const selfArray = self._array;
64
- const len = selfArray.length;
65
- const r = Array<A | B>(len + 1);
66
- r[len] = last;
67
- for (let i = 0; i < len; i++) {
68
- r[i] = selfArray[i]!;
69
- }
70
- return r.asImmutableArray;
66
+ export function append<B>(last: B) {
67
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A | B> => {
68
+ const selfArray = self._array;
69
+ const len = selfArray.length;
70
+ const r = Array<A | B>(len + 1);
71
+ r[len] = last;
72
+ for (let i = 0; i < len; i++) {
73
+ r[i] = selfArray[i]!;
74
+ }
75
+ return r.asImmutableArray;
76
+ };
71
77
  }
72
78
 
73
79
  /**
74
- * @tsplus fluent fncts.ImmutableArray crossWith
80
+ * @tsplus pipeable fncts.ImmutableArray crossWith
75
81
  */
76
- export function crossWith_<A, B, C>(
77
- self: ImmutableArray<A>,
78
- fb: ImmutableArray<B>,
79
- f: (a: A, b: B) => C,
80
- ): ImmutableArray<C> {
81
- return self.flatMap((a) => fb.map((b) => f(a, b)));
82
+ export function crossWith<A, B, C>(fb: ImmutableArray<B>, f: (a: A, b: B) => C) {
83
+ return (self: ImmutableArray<A>): ImmutableArray<C> => {
84
+ return self.flatMap((a) => fb.map((b) => f(a, b)));
85
+ };
82
86
  }
83
87
 
84
88
  /**
85
- * @tsplus fluent fncts.ImmutableArray cross
89
+ * @tsplus pipeable fncts.ImmutableArray cross
86
90
  */
87
- export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<Zipped.Make<A, B>> {
88
- return self.crossWith(fb, (a, b) => Zipped(a, b));
91
+ export function cross<B>(fb: ImmutableArray<B>) {
92
+ return <A>(self: ImmutableArray<A>): ImmutableArray<Zipped.Make<A, B>> => {
93
+ return self.crossWith(fb, (a, b) => Zipped(a, b));
94
+ };
89
95
  }
90
96
 
91
97
  /**
@@ -137,40 +143,41 @@ export function chainRecBreadthFirst<A, B>(a: A, f: (a: A) => ImmutableArray<Eit
137
143
  }
138
144
 
139
145
  /**
140
- * @tsplus fluent fncts.ImmutableArray flatMapWithIndex
146
+ * @tsplus pipeable fncts.ImmutableArray flatMapWithIndex
141
147
  */
142
- export function flatMapWithIndex_<A, B>(
143
- self: ImmutableArray<A>,
144
- f: (i: number, a: A) => ImmutableArray<B>,
145
- ): ImmutableArray<B> {
146
- let outLen = 0;
147
- const selfArray = self._array;
148
- const len = selfArray.length;
149
- const temp = Array<Array<B>>(len);
150
- for (let i = 0; i < len; i++) {
151
- const e = selfArray[i]!;
152
- const arr = f(i, e)._array;
153
- outLen += arr.length;
154
- temp[i] = arr! as Array<B>;
155
- }
156
- const out = Array<B>(outLen);
157
- let start = 0;
158
- for (let i = 0; i < len; i++) {
159
- const arr = temp[i]!;
160
- const l = arr.length;
161
- for (let j = 0; j < l; j++) {
162
- out[j + start] = arr[j]!;
148
+ export function flatMapWithIndex<A, B>(f: (i: number, a: A) => ImmutableArray<B>) {
149
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
150
+ let outLen = 0;
151
+ const selfArray = self._array;
152
+ const len = selfArray.length;
153
+ const temp = Array<Array<B>>(len);
154
+ for (let i = 0; i < len; i++) {
155
+ const e = selfArray[i]!;
156
+ const arr = f(i, e)._array;
157
+ outLen += arr.length;
158
+ temp[i] = arr! as Array<B>;
163
159
  }
164
- start += l;
165
- }
166
- return out.asImmutableArray;
160
+ const out = Array<B>(outLen);
161
+ let start = 0;
162
+ for (let i = 0; i < len; i++) {
163
+ const arr = temp[i]!;
164
+ const l = arr.length;
165
+ for (let j = 0; j < l; j++) {
166
+ out[j + start] = arr[j]!;
167
+ }
168
+ start += l;
169
+ }
170
+ return out.asImmutableArray;
171
+ };
167
172
  }
168
173
 
169
174
  /**
170
- * @tsplus fluent fncts.ImmutableArray flatMap
175
+ * @tsplus pipeable fncts.ImmutableArray flatMap
171
176
  */
172
- export function flatMap_<A, B>(self: ImmutableArray<A>, f: (a: A) => ImmutableArray<B>): ImmutableArray<B> {
173
- return self.flatMapWithIndex((_, a) => f(a));
177
+ export function flatMap<A, B>(f: (a: A) => ImmutableArray<B>) {
178
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
179
+ return self.flatMapWithIndex((_, a) => f(a));
180
+ };
174
181
  }
175
182
 
176
183
  /**
@@ -185,38 +192,37 @@ export function flatten<A>(self: ImmutableArray<ImmutableArray<A>>): ImmutableAr
185
192
  * often used for "chopping" up the input `Array`. Typically chop is called with some function
186
193
  * that will consume an initial prefix of the `Array` and produce a value and the rest of the `Array`.
187
194
  *
188
- * @tsplus fluent fncts.ImmutableArray chop
189
- */
190
- export function chop_<A, B>(
191
- as: ImmutableArray<A>,
192
- f: (as: ImmutableNonEmptyArray<A>) => readonly [B, ImmutableArray<A>],
193
- ): ImmutableArray<B> {
194
- const result: Array<B> = [];
195
- let cs: ImmutableArray<A> = as;
196
- while (cs.isNonEmpty()) {
197
- const [b, c] = f(cs);
198
- result.push(b);
199
- cs = c;
200
- }
201
- return result.asImmutableArray;
195
+ * @tsplus pipeable fncts.ImmutableArray chop
196
+ */
197
+ export function chop<A, B>(f: (as: ImmutableNonEmptyArray<A>) => readonly [B, ImmutableArray<A>]) {
198
+ return (as: ImmutableArray<A>): ImmutableArray<B> => {
199
+ const result: Array<B> = [];
200
+ let cs: ImmutableArray<A> = as;
201
+ while (cs.isNonEmpty()) {
202
+ const [b, c] = f(cs);
203
+ result.push(b);
204
+ cs = c;
205
+ }
206
+ return result.asImmutableArray;
207
+ };
202
208
  }
203
209
 
204
- export const chop = Pipeable(chop_);
205
-
206
210
  /**
207
- * @tsplus fluent fncts.ImmutableArray collectWhile
211
+ * @tsplus pipeable fncts.ImmutableArray collectWhile
208
212
  */
209
- export function collectWhile_<A, B>(as: ImmutableArray<A>, f: (a: A) => Maybe<B>): ImmutableArray<B> {
210
- const result: Array<B> = [];
211
- for (let i = 0; i < as.length; i++) {
212
- const o = f(as._array[i]!);
213
- if (o.isJust()) {
214
- result.push(o.value);
215
- } else {
216
- break;
213
+ export function collectWhile<A, B>(f: (a: A) => Maybe<B>) {
214
+ return (as: ImmutableArray<A>): ImmutableArray<B> => {
215
+ const result: Array<B> = [];
216
+ for (let i = 0; i < as.length; i++) {
217
+ const o = f(as._array[i]!);
218
+ if (o.isJust()) {
219
+ result.push(o.value);
220
+ } else {
221
+ break;
222
+ }
217
223
  }
218
- }
219
- return result.asImmutableArray;
224
+ return result.asImmutableArray;
225
+ };
220
226
  }
221
227
 
222
228
  function comprehensionLoop<A, R>(
@@ -266,72 +272,82 @@ export function comprehension<A, R>(
266
272
  }
267
273
 
268
274
  /**
269
- * @tsplus fluent fncts.ImmutableArray concat
270
- * @tsplus operator fncts.ImmutableArray +
275
+ * @tsplus pipeable fncts.ImmutableArray concat
276
+ * @tsplus pipeable-operator fncts.ImmutableArray +
271
277
  */
272
- export function concat_<A, B>(self: ImmutableArray<A>, that: ImmutableArray<B>): ImmutableArray<A | B> {
273
- const lenx = self._array.length;
274
- if (lenx === 0) {
275
- return that;
276
- }
277
- const leny = that._array.length;
278
- if (leny === 0) {
279
- return self;
280
- }
281
- const r = Array<A | B>(lenx + leny);
282
- for (let i = 0; i < lenx; i++) {
283
- r[i] = self._array[i]!;
284
- }
285
- for (let i = 0; i < leny; i++) {
286
- r[i + lenx] = that._array[i]!;
287
- }
288
- return r.asImmutableArray;
278
+ export function concat<B>(that: ImmutableArray<B>) {
279
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A | B> => {
280
+ const lenx = self._array.length;
281
+ if (lenx === 0) {
282
+ return that;
283
+ }
284
+ const leny = that._array.length;
285
+ if (leny === 0) {
286
+ return self;
287
+ }
288
+ const r = Array<A | B>(lenx + leny);
289
+ for (let i = 0; i < lenx; i++) {
290
+ r[i] = self._array[i]!;
291
+ }
292
+ for (let i = 0; i < leny; i++) {
293
+ r[i + lenx] = that._array[i]!;
294
+ }
295
+ return r.asImmutableArray;
296
+ };
289
297
  }
290
298
 
291
299
  /**
292
- * @tsplus fluent fncts.ImmutableArray deleteAt
300
+ * @tsplus pipeable fncts.ImmutableArray deleteAt
293
301
  */
294
- export function deleteAt_<A>(as: ImmutableArray<A>, i: number): Maybe<ImmutableArray<A>> {
295
- return as.isOutOfBound(i) ? Nothing() : Just(as.unsafeDeleteAt(i));
302
+ export function deleteAt(i: number) {
303
+ return <A>(as: ImmutableArray<A>): Maybe<ImmutableArray<A>> => {
304
+ return as.isOutOfBound(i) ? Nothing() : Just(as.unsafeDeleteAt(i));
305
+ };
296
306
  }
297
307
 
298
308
  /**
299
- * @tsplus fluent fncts.ImmutableArray difference
309
+ * @tsplus pipeable fncts.ImmutableArray difference
300
310
  */
301
- export function difference_<A>(
302
- self: ImmutableArray<A>,
303
- ys: ImmutableArray<A>,
304
- /** @tsplus auto */ E: P.Eq<A>,
305
- ): ImmutableArray<A> {
306
- return self.filter((a) => !ys.elem(a, E));
311
+ export function difference<A>(ys: ImmutableArray<A>, /** @tsplus auto */ E: P.Eq<A>) {
312
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
313
+ return self.filter((a) => !ys.elem(a, E));
314
+ };
307
315
  }
308
316
 
309
317
  /**
310
- * @tsplus fluent fncts.ImmutableArray drop
318
+ * @tsplus pipeable fncts.ImmutableArray drop
311
319
  */
312
- export function drop_<A>(self: ImmutableArray<A>, n: number): ImmutableArray<A> {
313
- return self.slice(n);
320
+ export function drop(n: number) {
321
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A> => {
322
+ return self.slice(n);
323
+ };
314
324
  }
315
325
 
316
326
  /**
317
- * @tsplus fluent fncts.ImmutableArray dropLast
327
+ * @tsplus pipeable fncts.ImmutableArray dropLast
318
328
  */
319
- export function dropLast_<A>(self: ImmutableArray<A>, n: number): ImmutableArray<A> {
320
- return self.slice(0, self.length - n);
329
+ export function dropLast(n: number) {
330
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A> => {
331
+ return self.slice(0, self.length - n);
332
+ };
321
333
  }
322
334
 
323
335
  /**
324
- * @tsplus fluent fncts.ImmutableArray dropWhile
336
+ * @tsplus pipeable fncts.ImmutableArray dropWhile
325
337
  */
326
- export function dropWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A> {
327
- return self.slice(self.spanIndexLeft(p));
338
+ export function dropWhile<A>(p: Predicate<A>) {
339
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
340
+ return self.slice(self.spanIndexLeft(p));
341
+ };
328
342
  }
329
343
 
330
344
  /**
331
- * @tsplus fluent fncts.ImmutableArray dropLastWhile
345
+ * @tsplus pipeable fncts.ImmutableArray dropLastWhile
332
346
  */
333
- export function dropLastWhile_<A>(as: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A> {
334
- return as.slice(0, as.spanIndexRight(p) + 1);
347
+ export function dropLastWhile<A>(p: Predicate<A>) {
348
+ return (as: ImmutableArray<A>): ImmutableArray<A> => {
349
+ return as.slice(0, as.spanIndexRight(p) + 1);
350
+ };
335
351
  }
336
352
 
337
353
  /**
@@ -339,334 +355,383 @@ export function dropLastWhile_<A>(as: ImmutableArray<A>, p: Predicate<A>): Immut
339
355
  * argument which returns the function to use to search for a value of type `A` in
340
356
  * an array of type `ImmutableArray<A>`.
341
357
  *
342
- * @tsplus fluent fncts.ImmutableArray elem
343
- */
344
- export function elem_<A>(as: ImmutableArray<A>, a: A, /** @tsplus auto */ E: P.Eq<A>): boolean {
345
- const predicate = (element: A) => E.equals(element, a);
346
- const len = as.length;
347
- for (let i = 0; i < len; i++) {
348
- if (predicate(as._array[i]!)) {
349
- return true;
358
+ * @tsplus pipeable fncts.ImmutableArray elem
359
+ */
360
+ export function elem<A>(a: A, /** @tsplus auto */ E: P.Eq<A>) {
361
+ return (as: ImmutableArray<A>): boolean => {
362
+ const predicate = (element: A) => E.equals(a)(element);
363
+ const len = as.length;
364
+ for (let i = 0; i < len; i++) {
365
+ if (predicate(as._array[i]!)) {
366
+ return true;
367
+ }
350
368
  }
351
- }
352
- return false;
369
+ return false;
370
+ };
353
371
  }
354
372
 
355
373
  /**
356
- * @tsplus fluent fncts.ImmutableArray every
374
+ * @tsplus pipeable fncts.ImmutableArray every
357
375
  */
358
- export function every_<A, B extends A>(self: ImmutableArray<A>, p: Refinement<A, B>): self is ImmutableArray<B>;
359
- export function every_<A>(self: ImmutableArray<A>, p: Predicate<A>): boolean;
360
- export function every_<A>(self: ImmutableArray<A>, p: Predicate<A>): boolean {
361
- return self.everyWithIndex((_, a) => p(a));
376
+ export function every<A, B extends A>(p: Refinement<A, B>): (self: ImmutableArray<A>) => self is ImmutableArray<B>;
377
+ export function every<A>(p: Predicate<A>): (self: ImmutableArray<A>) => boolean;
378
+ export function every<A>(p: Predicate<A>) {
379
+ return (self: ImmutableArray<A>): boolean => {
380
+ return self.everyWithIndex((_, a) => p(a));
381
+ };
362
382
  }
363
383
 
364
384
  /**
365
- * @tsplus fluent fncts.ImmutableArray everyWithIndex
385
+ * @tsplus pipeable fncts.ImmutableArray everyWithIndex
366
386
  */
367
- export function everyWithIndex_<A, B extends A>(
368
- self: ImmutableArray<A>,
387
+ export function everyWithIndex<A, B extends A>(
369
388
  p: RefinementWithIndex<number, A, B>,
370
- ): self is ImmutableArray<B>;
371
- export function everyWithIndex_<A>(self: ImmutableArray<A>, p: PredicateWithIndex<number, A>): boolean;
372
- export function everyWithIndex_<A>(self: ImmutableArray<A>, p: PredicateWithIndex<number, A>): boolean {
373
- let result = true;
374
- let i = 0;
375
- while (result && i < self.length) {
376
- result = p(i, self._array[i]!);
377
- i++;
378
- }
379
- return result;
389
+ ): (self: ImmutableArray<A>) => self is ImmutableArray<B>;
390
+ export function everyWithIndex<A>(p: PredicateWithIndex<number, A>): (self: ImmutableArray<A>) => boolean;
391
+ export function everyWithIndex<A>(p: PredicateWithIndex<number, A>) {
392
+ return (self: ImmutableArray<A>): boolean => {
393
+ let result = true;
394
+ let i = 0;
395
+ while (result && i < self.length) {
396
+ result = p(i, self._array[i]!);
397
+ i++;
398
+ }
399
+ return result;
400
+ };
380
401
  }
381
402
 
382
403
  /**
383
- * @tsplus fluent fncts.ImmutableArray exists
404
+ * @tsplus pipeable fncts.ImmutableArray some
384
405
  */
385
- export function exists_<A>(self: ImmutableArray<A>, p: Predicate<A>): self is ImmutableNonEmptyArray<A> {
386
- let result = false;
387
- let i = 0;
388
- while (!result && i < self.length) {
389
- result = p(self._array[i]!);
390
- i++;
391
- }
392
- return result;
406
+ export function some<A>(p: Predicate<A>) {
407
+ return (self: ImmutableArray<A>): self is ImmutableNonEmptyArray<A> => {
408
+ let result = false;
409
+ let i = 0;
410
+ while (!result && i < self.length) {
411
+ result = p(self._array[i]!);
412
+ i++;
413
+ }
414
+ return result;
415
+ };
393
416
  }
394
417
 
395
418
  /**
396
- * @tsplus fluent fncts.ImmutableArray filter
419
+ * @tsplus pipeable fncts.ImmutableArray filter
397
420
  */
398
- export function filter_<A, B extends A>(self: ImmutableArray<A>, p: Refinement<A, B>): ImmutableArray<B>;
399
- export function filter_<A>(self: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A>;
400
- export function filter_<A>(self: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A> {
401
- return self.filterWithIndex((_, a) => p(a));
421
+ export function filter<A, B extends A>(p: Refinement<A, B>): (self: ImmutableArray<A>) => ImmutableArray<B>;
422
+ export function filter<A>(p: Predicate<A>): (self: ImmutableArray<A>) => ImmutableArray<A>;
423
+ export function filter<A>(p: Predicate<A>) {
424
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
425
+ return self.filterWithIndex((_, a) => p(a));
426
+ };
402
427
  }
403
428
 
404
429
  /**
405
- * @tsplus fluent fncts.ImmutableArray filterWithIndex
430
+ * @tsplus pipeable fncts.ImmutableArray filterWithIndex
406
431
  */
407
- export function filterWithIndex_<A, B extends A>(
408
- self: ImmutableArray<A>,
432
+ export function filterWithIndex<A, B extends A>(
409
433
  p: RefinementWithIndex<number, A, B>,
410
- ): ImmutableArray<B>;
411
- export function filterWithIndex_<A>(self: ImmutableArray<A>, p: PredicateWithIndex<number, A>): ImmutableArray<A>;
412
- export function filterWithIndex_<A>(self: ImmutableArray<A>, p: PredicateWithIndex<number, A>): ImmutableArray<A> {
413
- const result: Array<A> = [];
414
- for (let i = 0; i < self.length; i++) {
415
- const a = self._array[i]!;
416
- if (p(i, a)) {
417
- result.push(a);
434
+ ): (self: ImmutableArray<A>) => ImmutableArray<B>;
435
+ export function filterWithIndex<A>(p: PredicateWithIndex<number, A>): (self: ImmutableArray<A>) => ImmutableArray<A>;
436
+ export function filterWithIndex<A>(p: PredicateWithIndex<number, A>) {
437
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
438
+ const result: Array<A> = [];
439
+ for (let i = 0; i < self.length; i++) {
440
+ const a = self._array[i]!;
441
+ if (p(i, a)) {
442
+ result.push(a);
443
+ }
418
444
  }
419
- }
420
- return result.asImmutableArray;
445
+ return result.asImmutableArray;
446
+ };
421
447
  }
422
448
 
423
449
  /**
424
- * @tsplus fluent fncts.ImmutableArray filterMapWithIndex
450
+ * @tsplus pipeable fncts.ImmutableArray filterMapWithIndex
425
451
  */
426
- export function filterMapWithIndex_<A, B>(fa: ImmutableArray<A>, f: (i: number, a: A) => Maybe<B>): ImmutableArray<B> {
427
- const result = [];
428
- for (let i = 0; i < fa.length; i++) {
429
- const maybeB = f(i, fa[i]!);
430
- if (maybeB.isJust()) {
431
- result.push(maybeB.value);
452
+ export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
453
+ return (fa: ImmutableArray<A>): ImmutableArray<B> => {
454
+ const result = [];
455
+ for (let i = 0; i < fa.length; i++) {
456
+ const maybeB = f(i, fa[i]!);
457
+ if (maybeB.isJust()) {
458
+ result.push(maybeB.value);
459
+ }
432
460
  }
433
- }
434
- return result.asImmutableArray;
461
+ return result.asImmutableArray;
462
+ };
435
463
  }
436
464
 
437
465
  /**
438
- * @tsplus fluent fncts.ImmutableArray filterMap
466
+ * @tsplus pipeable fncts.ImmutableArray filterMap
439
467
  */
440
- export function filterMap_<A, B>(self: ImmutableArray<A>, f: (a: A) => Maybe<B>): ImmutableArray<B> {
441
- return self.filterMapWithIndex((_, a) => f(a));
468
+ export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
469
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
470
+ return self.filterMapWithIndex((_, a) => f(a));
471
+ };
442
472
  }
443
473
 
444
474
  /**
445
- * @tsplus fluent fncts.ImmutableArray find
475
+ * @tsplus pipeable fncts.ImmutableArray find
446
476
  */
447
- export function find_<A, B extends A>(self: ImmutableArray<A>, p: Refinement<A, B>): Maybe<B>;
448
- export function find_<A>(self: ImmutableArray<A>, p: Predicate<A>): Maybe<A>;
449
- export function find_<A>(self: ImmutableArray<A>, p: Predicate<A>): Maybe<A> {
450
- return self.findWithIndex((_, a) => p(a));
477
+ export function find<A, B extends A>(p: Refinement<A, B>): (self: ImmutableArray<A>) => Maybe<B>;
478
+ export function find<A>(p: Predicate<A>): (self: ImmutableArray<A>) => Maybe<A>;
479
+ export function find<A>(p: Predicate<A>) {
480
+ return (self: ImmutableArray<A>): Maybe<A> => {
481
+ return self.findWithIndex((_, a) => p(a));
482
+ };
451
483
  }
452
484
 
453
485
  /**
454
- * @tsplus fluent fncts.ImmutableArray findIndex
486
+ * @tsplus pipeable fncts.ImmutableArray findIndex
455
487
  */
456
- export function findIndex_<A>(as: ImmutableArray<A>, predicate: Predicate<A>): Maybe<number> {
457
- return as.findMapWithIndex((i, a) => (predicate(a) ? Just(i) : Nothing()));
488
+ export function findIndex<A>(predicate: Predicate<A>) {
489
+ return (as: ImmutableArray<A>): Maybe<number> => {
490
+ return as.findMapWithIndex((i, a) => (predicate(a) ? Just(i) : Nothing()));
491
+ };
458
492
  }
459
493
 
460
494
  /**
461
- * @tsplus fluent fncts.ImmutableArray findWithIndex
495
+ * @tsplus pipeable fncts.ImmutableArray findWithIndex
462
496
  */
463
- export function findWithIndex_<A, B extends A>(as: ImmutableArray<A>, p: RefinementWithIndex<number, A, B>): Maybe<B>;
464
- export function findWithIndex_<A>(as: ImmutableArray<A>, p: PredicateWithIndex<number, A>): Maybe<A>;
465
- export function findWithIndex_<A>(as: ImmutableArray<A>, p: PredicateWithIndex<number, A>): Maybe<A> {
466
- const len = as.length;
467
- for (let i = 0; i < len; i++) {
468
- if (p(i, as._array[i]!)) {
469
- return Just(as._array[i]!);
497
+ export function findWithIndex<A, B extends A>(
498
+ p: RefinementWithIndex<number, A, B>,
499
+ ): (as: ImmutableArray<A>) => Maybe<B>;
500
+ export function findWithIndex<A>(p: PredicateWithIndex<number, A>): (as: ImmutableArray<A>) => Maybe<A>;
501
+ export function findWithIndex<A>(p: PredicateWithIndex<number, A>) {
502
+ return (as: ImmutableArray<A>): Maybe<A> => {
503
+ const len = as.length;
504
+ for (let i = 0; i < len; i++) {
505
+ if (p(i, as._array[i]!)) {
506
+ return Just(as._array[i]!);
507
+ }
470
508
  }
471
- }
472
- return Nothing();
509
+ return Nothing();
510
+ };
473
511
  }
474
512
 
475
513
  /**
476
- * @tsplus fluent fncts.ImmutableArray findMap
514
+ * @tsplus pipeable fncts.ImmutableArray findMap
477
515
  */
478
- export function findMap_<A, B>(as: ImmutableArray<A>, f: (a: A) => Maybe<B>): Maybe<B> {
479
- return as.findMapWithIndex((_, a) => f(a));
516
+ export function findMap<A, B>(f: (a: A) => Maybe<B>) {
517
+ return (as: ImmutableArray<A>): Maybe<B> => {
518
+ return as.findMapWithIndex((_, a) => f(a));
519
+ };
480
520
  }
481
521
 
482
522
  /**
483
- * @tsplus fluent fncts.ImmutableArray findMapWithIndex
523
+ * @tsplus pipeable fncts.ImmutableArray findMapWithIndex
484
524
  */
485
- export function findMapWithIndex_<A, B>(as: ImmutableArray<A>, f: (index: number, a: A) => Maybe<B>): Maybe<B> {
486
- const len = as.length;
487
- for (let i = 0; i < len; i++) {
488
- const v = f(i, as._array[i]!);
489
- if (v.isJust()) {
490
- return v;
525
+ export function findMapWithIndex<A, B>(f: (index: number, a: A) => Maybe<B>) {
526
+ return (as: ImmutableArray<A>): Maybe<B> => {
527
+ const len = as.length;
528
+ for (let i = 0; i < len; i++) {
529
+ const v = f(i, as._array[i]!);
530
+ if (v.isJust()) {
531
+ return v;
532
+ }
491
533
  }
492
- }
493
- return Nothing();
534
+ return Nothing();
535
+ };
494
536
  }
495
537
 
496
538
  /**
497
- * @tsplus fluent fncts.ImmutableArray findLast
539
+ * @tsplus pipeable fncts.ImmutableArray findLast
498
540
  */
499
- export function findLast_<A, B extends A>(as: ImmutableArray<A>, p: Refinement<A, B>): Maybe<B>;
500
- export function findLast_<A>(as: ImmutableArray<A>, p: Predicate<A>): Maybe<A>;
501
- export function findLast_<A>(as: ImmutableArray<A>, p: Predicate<A>): Maybe<A> {
502
- const len = as.length;
503
- for (let i = len - 1; i >= 0; i--) {
504
- if (p(as._array[i]!)) {
505
- return Just(as._array[i]!);
541
+ export function findLast<A, B extends A>(p: Refinement<A, B>): (as: ImmutableArray<A>) => Maybe<B>;
542
+ export function findLast<A>(p: Predicate<A>): (as: ImmutableArray<A>) => Maybe<A>;
543
+ export function findLast<A>(p: Predicate<A>) {
544
+ return (as: ImmutableArray<A>): Maybe<A> => {
545
+ const len = as.length;
546
+ for (let i = len - 1; i >= 0; i--) {
547
+ if (p(as._array[i]!)) {
548
+ return Just(as._array[i]!);
549
+ }
506
550
  }
507
- }
508
- return Nothing();
551
+ return Nothing();
552
+ };
509
553
  }
510
554
 
511
555
  /**
512
- * @tsplus fluent fncts.ImmutableArray findLastIndex
556
+ * @tsplus pipeable fncts.ImmutableArray findLastIndex
513
557
  */
514
- export function findLastIndex_<A>(self: ImmutableArray<A>, p: Predicate<A>): Maybe<number> {
515
- return self.findLastMapWithIndex((i, a) => (p(a) ? Just(i) : Nothing()));
558
+ export function findLastIndex<A>(p: Predicate<A>) {
559
+ return (self: ImmutableArray<A>): Maybe<number> => {
560
+ return self.findLastMapWithIndex((i, a) => (p(a) ? Just(i) : Nothing()));
561
+ };
516
562
  }
517
563
 
518
564
  /**
519
- * @tsplus fluent fncts.ImmutableArray findLastMap
565
+ * @tsplus pipeable fncts.ImmutableArray findLastMap
520
566
  */
521
- export function findLastMap_<A, B>(as: ImmutableArray<A>, f: (a: A) => Maybe<B>): Maybe<B> {
522
- return as.findLastMapWithIndex((_, a) => f(a));
567
+ export function findLastMap<A, B>(f: (a: A) => Maybe<B>) {
568
+ return (as: ImmutableArray<A>): Maybe<B> => {
569
+ return as.findLastMapWithIndex((_, a) => f(a));
570
+ };
523
571
  }
524
572
 
525
573
  /**
526
- * @tsplus fluent fncts.ImmutableArray findLastMapWithIndex
574
+ * @tsplus pipeable fncts.ImmutableArray findLastMapWithIndex
527
575
  */
528
- export function findLastMapWithIndex_<A, B>(as: ImmutableArray<A>, f: (i: number, a: A) => Maybe<B>): Maybe<B> {
529
- const len = as.length;
530
- for (let i = len - 1; i >= 0; i--) {
531
- const v = f(i, as._array[i]!);
532
- if (v.isJust()) {
533
- return v;
576
+ export function findLastMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
577
+ return (as: ImmutableArray<A>): Maybe<B> => {
578
+ const len = as.length;
579
+ for (let i = len - 1; i >= 0; i--) {
580
+ const v = f(i, as._array[i]!);
581
+ if (v.isJust()) {
582
+ return v;
583
+ }
534
584
  }
535
- }
536
- return Nothing();
585
+ return Nothing();
586
+ };
537
587
  }
538
588
 
539
589
  /**
540
- * @tsplus fluent fncts.ImmutableArray foldLeftWithIndex
541
- * @tsplus fluent fncts.MutableArray foldLeftWithIndex
590
+ * @tsplus pipeable fncts.ImmutableArray foldLeftWithIndex
591
+ * @tsplus pipeable fncts.MutableArray foldLeftWithIndex
542
592
  */
543
- export function foldLeftWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i: number, b: B, a: A) => B): B {
544
- const len = self.length;
545
- let r = b;
546
- for (let i = 0; i < len; i++) {
547
- r = f(i, r, self._array[i]!);
548
- }
549
- return r;
593
+ export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
594
+ return (self: ImmutableArray<A>): B => {
595
+ const len = self.length;
596
+ let r = b;
597
+ for (let i = 0; i < len; i++) {
598
+ r = f(i, r, self._array[i]!);
599
+ }
600
+ return r;
601
+ };
550
602
  }
551
603
 
552
604
  /**
553
- * @tsplus fluent fncts.ImmutableArray foldLeft
554
- * @tsplus fluent fncts.MutableArray foldLeft
605
+ * @tsplus pipeable fncts.ImmutableArray foldLeft
606
+ * @tsplus pipeable fncts.MutableArray foldLeft
555
607
  */
556
- export function foldLeft_<A, B>(self: ImmutableArray<A>, b: B, f: (b: B, a: A) => B): B {
557
- return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
608
+ export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
609
+ return (self: ImmutableArray<A>): B => {
610
+ return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
611
+ };
558
612
  }
559
613
 
560
614
  /**
561
- * @tsplus fluent fncts.ImmutableArray foldLeftWhile
562
- * @tsplus fluent fncts.MutableArray foldLeftWhile
615
+ * @tsplus pipeable fncts.ImmutableArray foldLeftWhile
616
+ * @tsplus pipeable fncts.MutableArray foldLeftWhile
563
617
  */
564
- export function foldLeftWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicate<B>, f: (b: B, a: A) => B): B {
565
- return self.foldLeftWithIndexWhile(b, p, (_, b, a) => f(b, a));
618
+ export function foldLeftWhile<A, B>(b: B, p: Predicate<B>, f: (b: B, a: A) => B) {
619
+ return (self: ImmutableArray<A>): B => {
620
+ return self.foldLeftWithIndexWhile(b, p, (_, b, a) => f(b, a));
621
+ };
566
622
  }
567
623
 
568
624
  /**
569
- * @tsplus fluent fncts.ImmutableArray foldLeftWithIndexWhile
570
- * @tsplus fluent fncts.MutableArray foldLeftWithIndexWhile
625
+ * @tsplus pipeable fncts.ImmutableArray foldLeftWithIndexWhile
626
+ * @tsplus pipeable fncts.MutableArray foldLeftWithIndexWhile
571
627
  */
572
- export function foldLeftWithIndexWhile_<A, B>(
573
- self: ImmutableArray<A>,
574
- b: B,
575
- p: Predicate<B>,
576
- f: (i: number, b: B, a: A) => B,
577
- ): B {
578
- let out = b;
579
- let cont = p(out);
580
- for (let i = 0; cont && i < self.length; i++) {
581
- out = f(i, out, self._array[i]!);
582
- cont = p(out);
583
- }
584
- return out;
628
+ export function foldLeftWithIndexWhile<A, B>(b: B, p: Predicate<B>, f: (i: number, b: B, a: A) => B) {
629
+ return (self: ImmutableArray<A>): B => {
630
+ let out = b;
631
+ let cont = p(out);
632
+ for (let i = 0; cont && i < self.length; i++) {
633
+ out = f(i, out, self._array[i]!);
634
+ cont = p(out);
635
+ }
636
+ return out;
637
+ };
585
638
  }
586
639
 
587
640
  /**
588
- * @tsplus fluent fncts.ImmutableArray fold
641
+ * @tsplus pipeable fncts.ImmutableArray fold
589
642
  */
590
- export function fold<M>(self: ImmutableArray<M>, /** @tsplus auto */ M: Monoid<M>): M {
591
- return self.foldLeft(M.nat, M.combine);
643
+ export function fold<M>(/** @tsplus auto */ M: Monoid<M>) {
644
+ return (self: ImmutableArray<M>): M => {
645
+ return self.foldLeft(M.nat, (b, a) => M.combine(a)(b));
646
+ };
592
647
  }
593
648
 
594
649
  /**
595
- * @tsplus fluent fncts.ImmutableArray foldMapWithIndex
650
+ * @tsplus pipeable fncts.ImmutableArray foldMapWithIndex
596
651
  */
597
- export function foldMapWithIndex_<A, M>(
598
- self: ImmutableArray<A>,
599
- f: (i: number, a: A) => M,
600
- /** @tsplus auto */ M: Monoid<M>,
601
- ): M {
602
- return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
652
+ export function foldMapWithIndex<A, M>(f: (i: number, a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
653
+ return (self: ImmutableArray<A>): M => {
654
+ return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(f(i, a))(b));
655
+ };
603
656
  }
604
657
 
605
658
  /**
606
- * @tsplus fluent fncts.ImmutableArray foldMap
659
+ * @tsplus pipeable fncts.ImmutableArray foldMap
607
660
  */
608
- export function foldMap_<A, M>(self: ImmutableArray<A>, f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>): M {
609
- return self.foldMapWithIndex((_, a) => f(a), M);
661
+ export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
662
+ return (self: ImmutableArray<A>): M => {
663
+ return self.foldMapWithIndex((_, a) => f(a), M);
664
+ };
610
665
  }
611
666
 
612
667
  /**
613
- * @tsplus fluent fncts.ImmutableArray foldRightWithIndex
668
+ * @tsplus pipeable fncts.ImmutableArray foldRightWithIndex
614
669
  */
615
- export function foldRightWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i: number, a: A, b: B) => B): B {
616
- let r = b;
617
- for (let i = self.length - 1; i >= 0; i--) {
618
- r = f(i, self._array[i]!, r);
619
- }
620
- return r;
670
+ export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B) {
671
+ return (self: ImmutableArray<A>): B => {
672
+ let r = b;
673
+ for (let i = self.length - 1; i >= 0; i--) {
674
+ r = f(i, self._array[i]!, r);
675
+ }
676
+ return r;
677
+ };
621
678
  }
622
679
 
623
680
  /**
624
- * @tsplus fluent fncts.ImmutableArray foldRight
681
+ * @tsplus pipeable fncts.ImmutableArray foldRight
625
682
  */
626
- export function foldRight_<A, B>(self: ImmutableArray<A>, b: B, f: (a: A, b: B) => B): B {
627
- return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
683
+ export function foldRight<A, B>(b: B, f: (a: A, b: B) => B) {
684
+ return (self: ImmutableArray<A>): B => {
685
+ return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
686
+ };
628
687
  }
629
688
 
630
689
  /**
631
- * @tsplus fluent fncts.ImmutableArray foldRighWhile
690
+ * @tsplus pipeable fncts.ImmutableArray foldRighWhile
632
691
  */
633
- export function foldRightWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicate<B>, f: (a: A, b: B) => B): B {
634
- return self.foldRightWithIndexWhile(b, p, (_, a, b) => f(a, b));
692
+ export function foldRightWhile<A, B>(b: B, p: Predicate<B>, f: (a: A, b: B) => B) {
693
+ return (self: ImmutableArray<A>): B => {
694
+ return self.foldRightWithIndexWhile(b, p, (_, a, b) => f(a, b));
695
+ };
635
696
  }
636
697
 
637
698
  /**
638
- * @tsplus fluent fncts.ImmutableArray foldRightWithIndexWhile
699
+ * @tsplus pipeable fncts.ImmutableArray foldRightWithIndexWhile
639
700
  */
640
- export function foldRightWithIndexWhile_<A, B>(
641
- self: ImmutableArray<A>,
642
- b: B,
643
- predicate: Predicate<B>,
644
- f: (i: number, a: A, b: B) => B,
645
- ): B {
646
- let out = b;
647
- let cont = predicate(out);
648
- for (let i = self.length - 1; cont && i >= 0; i--) {
649
- out = f(i, self._array[i]!, out);
650
- cont = predicate(out);
651
- }
652
- return out;
701
+ export function foldRightWithIndexWhile<A, B>(b: B, predicate: Predicate<B>, f: (i: number, a: A, b: B) => B) {
702
+ return (self: ImmutableArray<A>): B => {
703
+ let out = b;
704
+ let cont = predicate(out);
705
+ for (let i = self.length - 1; cont && i >= 0; i--) {
706
+ out = f(i, self._array[i]!, out);
707
+ cont = predicate(out);
708
+ }
709
+ return out;
710
+ };
653
711
  }
654
712
 
655
713
  /**
656
- * @tsplus fluent fncts.ImmutableArray forEach
714
+ * @tsplus pipeable fncts.ImmutableArray forEach
657
715
  */
658
- export function forEach_<A, B>(self: ImmutableArray<A>, f: (a: A) => B): void {
659
- return self.forEach(f);
716
+ export function forEach<A, B>(f: (a: A) => B) {
717
+ return (self: ImmutableArray<A>): void => {
718
+ return self.forEach(f);
719
+ };
660
720
  }
661
721
 
662
722
  /**
663
- * @tsplus fluent fncts.ImmutableArray get
664
- * @tsplus fluent fncts.MutableArray get
723
+ * @tsplus pipeable fncts.ImmutableArray get
724
+ * @tsplus pipeable fncts.MutableArray get
665
725
  */
666
- export function get_<A>(self: ImmutableArray<A>, i: number): Maybe<A> {
667
- return self.isOutOfBound(i) ? Nothing() : Just(self._array[i]!);
726
+ export function get(i: number) {
727
+ return <A>(self: ImmutableArray<A>): Maybe<A> => {
728
+ return self.isOutOfBound(i) ? Nothing() : Just(self._array[i]!);
729
+ };
668
730
  }
669
731
 
732
+ /**
733
+ * @tsplus pipeable fncts.ImmutableArray group
734
+ */
670
735
  export function group<A>(E: P.Eq<A>): (self: ImmutableArray<A>) => ImmutableArray<ImmutableNonEmptyArray<A>> {
671
736
  return chop((self) => {
672
737
  const h = self._array[0]!;
@@ -674,7 +739,7 @@ export function group<A>(E: P.Eq<A>): (self: ImmutableArray<A>) => ImmutableArra
674
739
  let i = 1;
675
740
  for (; i < self.length; i++) {
676
741
  const a = self._array[i]!;
677
- if (E.equals(a, h)) {
742
+ if (E.equals(h)(a)) {
678
743
  out.push(a);
679
744
  } else {
680
745
  break;
@@ -685,30 +750,22 @@ export function group<A>(E: P.Eq<A>): (self: ImmutableArray<A>) => ImmutableArra
685
750
  }
686
751
 
687
752
  /**
688
- * @tsplus fluent fncts.ImmutableArray group
753
+ * @tsplus pipeable fncts.ImmutableArray groupBy
689
754
  */
690
- export function chopSelf<A>(self: ImmutableArray<A>, E: P.Eq<A>): ImmutableArray<ImmutableNonEmptyArray<A>> {
691
- return group(E)(self);
692
- }
693
-
694
- /**
695
- * @tsplus fluent fncts.ImmutableArray groupBy
696
- */
697
- export function groupBy_<A>(
698
- self: ImmutableArray<A>,
699
- f: (a: A) => string,
700
- ): Readonly<Record<string, ImmutableNonEmptyArray<A>>> {
701
- const out: Record<string, NonEmptyArray<A>> = {};
702
- for (let i = 0; i < self.length; i++) {
703
- const a = self._array[i]!;
704
- const k = f(a);
705
- if (Object.prototype.hasOwnProperty.call(out, k)) {
706
- out[k]!.push(a);
707
- } else {
708
- out[k] = [a];
755
+ export function groupBy<A>(f: (a: A) => string) {
756
+ return (self: ImmutableArray<A>): Readonly<Record<string, ImmutableNonEmptyArray<A>>> => {
757
+ const out: Record<string, NonEmptyArray<A>> = {};
758
+ for (let i = 0; i < self.length; i++) {
759
+ const a = self._array[i]!;
760
+ const k = f(a);
761
+ if (Object.prototype.hasOwnProperty.call(out, k)) {
762
+ out[k]!.push(a);
763
+ } else {
764
+ out[k] = [a];
765
+ }
709
766
  }
710
- }
711
- return Dictionary.get(out).map(ImmutableNonEmptyArray.from).toRecord;
767
+ return Dictionary.get(out).map(ImmutableNonEmptyArray.from).toRecord;
768
+ };
712
769
  }
713
770
 
714
771
  /**
@@ -727,26 +784,31 @@ export function init<A>(self: ImmutableArray<A>): Maybe<ImmutableArray<A>> {
727
784
  }
728
785
 
729
786
  /**
730
- * @tsplus fluent fncts.ImmutableArray insertAt
787
+ * @tsplus pipeable fncts.ImmutableArray insertAt
731
788
  */
732
- export function insertAt_<A>(self: ImmutableArray<A>, i: number, a: A): Maybe<ImmutableNonEmptyArray<A>> {
733
- return self.isOutOfBound(i) ? Nothing() : Just(self.unsafeInsertAt(i, a));
789
+ export function insertAt<A>(i: number, a: A) {
790
+ return (self: ImmutableArray<A>): Maybe<ImmutableNonEmptyArray<A>> => {
791
+ return self.isOutOfBound(i) ? Nothing() : Just(self.unsafeInsertAt(i, a));
792
+ };
734
793
  }
735
794
 
736
795
  /**
737
- * @tsplus fluent fncts.ImmutableArray intersection
796
+ * @tsplus pipeable fncts.ImmutableArray intersection
738
797
  */
739
- export function intersection_<A>(
740
- self: ImmutableArray<A>,
741
- that: ImmutableArray<A>,
742
- /** @tsplus auto */ E: P.Eq<A>,
743
- ): ImmutableArray<A> {
744
- return self.filter((a) => that.elem(a, E));
798
+ export function intersection<A>(that: ImmutableArray<A>, /** @tsplus auto */ E: P.Eq<A>) {
799
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
800
+ return self.filter((a) => that.elem(a, E));
801
+ };
745
802
  }
746
803
 
747
- export function intersperse_<A>(self: ImmutableArray<A>, a: A): ImmutableArray<A> {
748
- const len = self.length;
749
- return len === 0 ? self : self.slice(1, len).prependAll(a).prepend(self[0]!);
804
+ /**
805
+ * @tsplus pipeable fncts.ImmutableArray intersperse
806
+ */
807
+ export function intersperse<A>(a: A) {
808
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
809
+ const len = self.length;
810
+ return len === 0 ? self : self.slice(1, len).prependAll(a).prepend(self[0]!);
811
+ };
750
812
  }
751
813
 
752
814
  /**
@@ -757,17 +819,21 @@ export function isEmpty<A>(self: ImmutableArray<A>): boolean {
757
819
  }
758
820
 
759
821
  /**
760
- * @tsplus fluent fncts.ImmutableArray isOutOfBound
822
+ * @tsplus pipeable fncts.ImmutableArray isOutOfBound
761
823
  */
762
- export function isOutOfBound_<A>(self: ImmutableArray<A>, i: number): boolean {
763
- return i < 0 || i >= self.length;
824
+ export function isOutOfBound(i: number) {
825
+ return <A>(self: ImmutableArray<A>): boolean => {
826
+ return i < 0 || i >= self.length;
827
+ };
764
828
  }
765
829
 
766
830
  /**
767
- * @tsplus fluent fncts.ImmutableArray join
831
+ * @tsplus pipeable fncts.ImmutableArray join
768
832
  */
769
- export function join(self: ImmutableArray<string>, separator: string): string {
770
- return self._array.join(separator);
833
+ export function join(separator: string) {
834
+ return (self: ImmutableArray<string>): string => {
835
+ return self._array.join(separator);
836
+ };
771
837
  }
772
838
 
773
839
  /**
@@ -800,56 +866,62 @@ export function lefts<E, A>(self: ImmutableArray<Either<E, A>>): ImmutableArray<
800
866
  }
801
867
 
802
868
  /**
803
- * @tsplus fluent fncts.ImmutableArray map
869
+ * @tsplus pipeable fncts.ImmutableArray map
804
870
  */
805
- export function map_<A, B>(self: ImmutableArray<A>, f: (a: A) => B): ImmutableArray<B> {
806
- return self.mapWithIndex((_, a) => f(a));
871
+ export function map<A, B>(f: (a: A) => B) {
872
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
873
+ return self.mapWithIndex((_, a) => f(a));
874
+ };
807
875
  }
808
876
 
809
877
  /**
810
- * @tsplus fluent fncts.ImmutableArray mapAccum
878
+ * @tsplus pipeable fncts.ImmutableArray mapAccum
811
879
  */
812
- export function mapAccum_<A, S, B>(
813
- self: ImmutableArray<A>,
814
- s: S,
815
- f: (s: S, a: A) => readonly [B, S],
816
- ): readonly [ImmutableArray<B>, S] {
817
- const bs = Array<B>(self.length);
818
- let state = s;
819
- for (let i = 0; i < self.length; i++) {
820
- const result = f(state, self._array[i]!);
821
- bs[i] = result[0];
822
- state = result[1];
823
- }
824
- return [bs.asImmutableArray, state];
880
+ export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
881
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<B>, S] => {
882
+ const bs = Array<B>(self.length);
883
+ let state = s;
884
+ for (let i = 0; i < self.length; i++) {
885
+ const result = f(state, self._array[i]!);
886
+ bs[i] = result[0];
887
+ state = result[1];
888
+ }
889
+ return [bs.asImmutableArray, state];
890
+ };
825
891
  }
826
892
 
827
893
  /**
828
- * @tsplus fluent fncts.ImmutableArray mapWithIndex
894
+ * @tsplus pipeable fncts.ImmutableArray mapWithIndex
829
895
  */
830
- export function mapWithIndex_<A, B>(self: ImmutableArray<A>, f: (i: number, a: A) => B): ImmutableArray<B> {
831
- const len = self._array.length;
832
- const bs = Array<B>(len);
833
- for (let i = 0; i < len; i++) {
834
- bs[i] = f(i, self._array[i]!);
835
- }
836
- return bs.asImmutableArray;
896
+ export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
897
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
898
+ const len = self._array.length;
899
+ const bs = Array<B>(len);
900
+ for (let i = 0; i < len; i++) {
901
+ bs[i] = f(i, self._array[i]!);
902
+ }
903
+ return bs.asImmutableArray;
904
+ };
837
905
  }
838
906
 
839
907
  /**
840
- * @tsplus fluent fncts.ImmutableArray modifyAt
908
+ * @tsplus pipeable fncts.ImmutableArray modifyAt
841
909
  */
842
- export function modifyAt_<A>(self: ImmutableArray<A>, i: number, f: (a: A) => A): Maybe<ImmutableArray<A>> {
843
- return self.isOutOfBound(i) ? Nothing() : Just(self.unsafeModifyAt(i, f));
910
+ export function modifyAt<A>(i: number, f: (a: A) => A) {
911
+ return (self: ImmutableArray<A>): Maybe<ImmutableArray<A>> => {
912
+ return self.isOutOfBound(i) ? Nothing() : Just(self.unsafeModifyAt(i, f));
913
+ };
844
914
  }
845
915
 
846
916
  /**
847
- * @tsplus fluent fncts.ImmutableArray mutate
917
+ * @tsplus pipeable fncts.ImmutableArray mutate
848
918
  */
849
- export function mutate_<A>(self: ImmutableArray<A>, f: (self: Array<A>) => void): ImmutableArray<A> {
850
- const mut = mutableClone(self);
851
- f(mut);
852
- return mut.asImmutableArray;
919
+ export function mutate<A>(f: (self: Array<A>) => void) {
920
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
921
+ const mut = mutableClone(self);
922
+ f(mut);
923
+ return mut.asImmutableArray;
924
+ };
853
925
  }
854
926
 
855
927
  /**
@@ -860,108 +932,103 @@ export function mutableClone<A>(self: ImmutableArray<A>): Array<A> {
860
932
  }
861
933
 
862
934
  /**
863
- * @tsplus fluent fncts.ImmutableArray partitionWithIndex
935
+ * @tsplus pipeable fncts.ImmutableArray partitionWithIndex
864
936
  */
865
- export function partitionWithIndex_<A, B extends A>(
866
- self: ImmutableArray<A>,
937
+ export function partitionWithIndex<A, B extends A>(
867
938
  p: RefinementWithIndex<number, A, B>,
868
- ): readonly [ImmutableArray<A>, ImmutableArray<B>];
869
- export function partitionWithIndex_<A>(
870
- self: ImmutableArray<A>,
939
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<B>];
940
+ export function partitionWithIndex<A>(
871
941
  p: PredicateWithIndex<number, A>,
872
- ): readonly [ImmutableArray<A>, ImmutableArray<A>];
873
- export function partitionWithIndex_<A>(
874
- self: ImmutableArray<A>,
875
- p: PredicateWithIndex<number, A>,
876
- ): readonly [ImmutableArray<A>, ImmutableArray<A>] {
877
- const left: Array<A> = [];
878
- const right: Array<A> = [];
879
- for (let i = 0; i < self.length; i++) {
880
- const a = self._array[i]!;
881
- if (p(i, a)) {
882
- right.push(a);
883
- } else {
884
- left.push(a);
942
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<A>];
943
+ export function partitionWithIndex<A>(p: PredicateWithIndex<number, A>) {
944
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<A>, ImmutableArray<A>] => {
945
+ const left: Array<A> = [];
946
+ const right: Array<A> = [];
947
+ for (let i = 0; i < self.length; i++) {
948
+ const a = self._array[i]!;
949
+ if (p(i, a)) {
950
+ right.push(a);
951
+ } else {
952
+ left.push(a);
953
+ }
885
954
  }
886
- }
887
- return [left.asImmutableArray, right.asImmutableArray];
955
+ return [left.asImmutableArray, right.asImmutableArray];
956
+ };
888
957
  }
889
958
 
890
959
  /**
891
- * @tsplus fluent fncts.ImmutableArray partition
960
+ * @tsplus pipeable fncts.ImmutableArray partition
892
961
  */
893
- export function partition_<A, B extends A>(
894
- self: ImmutableArray<A>,
962
+ export function partition<A, B extends A>(
895
963
  p: Refinement<A, B>,
896
- ): readonly [ImmutableArray<A>, ImmutableArray<B>];
897
- export function partition_<A>(
898
- self: ImmutableArray<A>,
899
- p: Predicate<A>,
900
- ): readonly [ImmutableArray<A>, ImmutableArray<A>];
901
- export function partition_<A>(
902
- self: ImmutableArray<A>,
964
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<B>];
965
+ export function partition<A>(
903
966
  p: Predicate<A>,
904
- ): readonly [ImmutableArray<A>, ImmutableArray<A>] {
905
- return self.partitionWithIndex((_, a) => p(a));
906
- }
907
-
908
- /**
909
- * @tsplus fluent fncts.ImmutableArray partitionMapWithIndex
910
- */
911
- export function partitionMapWithIndex_<A, B, C>(
912
- self: ImmutableArray<A>,
913
- f: (i: number, a: A) => Either<B, C>,
914
- ): readonly [ImmutableArray<B>, ImmutableArray<C>] {
915
- const left = [] as Array<B>;
916
- const right = [] as Array<C>;
917
- for (let i = 0; i < self.length; i++) {
918
- const ea = f(i, self._array[i]!);
919
- Either.concrete(ea);
920
- switch (ea._tag) {
921
- case EitherTag.Left:
922
- left.push(ea.left);
923
- break;
924
- case EitherTag.Right:
925
- right.push(ea.right);
926
- break;
967
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<A>];
968
+ export function partition<A>(p: Predicate<A>) {
969
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<A>, ImmutableArray<A>] => {
970
+ return self.partitionWithIndex((_, a) => p(a));
971
+ };
972
+ }
973
+
974
+ /**
975
+ * @tsplus pipeable fncts.ImmutableArray partitionMapWithIndex
976
+ */
977
+ export function partitionMapWithIndex<A, B, C>(f: (i: number, a: A) => Either<B, C>) {
978
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<B>, ImmutableArray<C>] => {
979
+ const left = [] as Array<B>;
980
+ const right = [] as Array<C>;
981
+ for (let i = 0; i < self.length; i++) {
982
+ const ea = f(i, self._array[i]!);
983
+ Either.concrete(ea);
984
+ switch (ea._tag) {
985
+ case EitherTag.Left:
986
+ left.push(ea.left);
987
+ break;
988
+ case EitherTag.Right:
989
+ right.push(ea.right);
990
+ break;
991
+ }
927
992
  }
928
- }
929
- return [left.asImmutableArray, right.asImmutableArray];
993
+ return [left.asImmutableArray, right.asImmutableArray];
994
+ };
930
995
  }
931
996
 
932
997
  /**
933
- * @tsplus fluent fncts.ImmutableArray partitionMap
998
+ * @tsplus pipeable fncts.ImmutableArray partitionMap
934
999
  */
935
- export function partitionMap_<A, B, C>(
936
- self: ImmutableArray<A>,
937
- f: (a: A) => Either<B, C>,
938
- ): readonly [ImmutableArray<B>, ImmutableArray<C>] {
939
- return self.partitionMapWithIndex((_, a) => f(a));
1000
+ export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
1001
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<B>, ImmutableArray<C>] => {
1002
+ return self.partitionMapWithIndex((_, a) => f(a));
1003
+ };
940
1004
  }
941
1005
 
942
1006
  /**
943
- * @tsplus fluent fncts.ImmutableArray prepend
1007
+ * @tsplus pipeable fncts.ImmutableArray prepend
944
1008
  */
945
- export function prepend_<A, B>(self: ImmutableArray<A>, head: B): ImmutableArray<A | B> {
946
- const len = self.length;
947
- const out = Array<A | B>(len + 1);
948
- out[0] = head;
949
- for (let i = 0; i < len; i++) {
950
- out[i + 1] = self._array[i]!;
951
- }
952
- return out.asImmutableArray;
1009
+ export function prepend<B>(head: B) {
1010
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A | B> => {
1011
+ const len = self.length;
1012
+ const out = Array<A | B>(len + 1);
1013
+ out[0] = head;
1014
+ for (let i = 0; i < len; i++) {
1015
+ out[i + 1] = self._array[i]!;
1016
+ }
1017
+ return out.asImmutableArray;
1018
+ };
953
1019
  }
954
1020
 
955
1021
  /**
956
- * @tsplus fluent fncts.ImmutableArray prependAll
957
- * @tsplus fluent fncts.MutableArray prependAll
1022
+ * @tsplus pipeable fncts.ImmutableArray prependAll
958
1023
  */
959
- export function prependAll_<A>(self: ImmutableArray<A>, a: A): ImmutableArray<A> {
960
- const out: Array<A> = [];
961
- for (let i = 0; i < self.length; i++) {
962
- out.push(a, self._array[i]!);
963
- }
964
- return out.asImmutableArray;
1024
+ export function prependAll<A>(a: A) {
1025
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1026
+ const out: Array<A> = [];
1027
+ for (let i = 0; i < self.length; i++) {
1028
+ out.push(a, self._array[i]!);
1029
+ }
1030
+ return out.asImmutableArray;
1031
+ };
965
1032
  }
966
1033
 
967
1034
  /**
@@ -997,137 +1064,150 @@ export function rights<E, A>(self: ImmutableArray<Either<E, A>>): ImmutableArray
997
1064
  }
998
1065
 
999
1066
  /**
1000
- * @tsplus fluent fncts.ImmutableArray rotate
1067
+ * @tsplus pipeable fncts.ImmutableArray rotate
1001
1068
  */
1002
- export function rotate_<A>(self: ImmutableArray<A>, n: number): ImmutableArray<A> {
1003
- const len = self.length;
1004
- if (n === 0 || len <= 1 || len === Math.abs(n)) {
1005
- return self;
1006
- } else if (n < 0) {
1007
- return self.rotate(len + n);
1008
- } else {
1009
- return self.slice(-n).concat(self.slice(0, len - n));
1010
- }
1069
+ export function rotate(n: number) {
1070
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A> => {
1071
+ const len = self.length;
1072
+ if (n === 0 || len <= 1 || len === Math.abs(n)) {
1073
+ return self;
1074
+ } else if (n < 0) {
1075
+ return self.rotate(len + n);
1076
+ } else {
1077
+ return self.slice(-n).concat(self.slice(0, len - n));
1078
+ }
1079
+ };
1011
1080
  }
1012
1081
 
1013
1082
  /**
1014
- * @tsplus fluent fncts.ImmutableArray scanLeft
1083
+ * @tsplus pipeable fncts.ImmutableArray scanLeft
1015
1084
  */
1016
- export function scanLeft_<A, B>(self: ImmutableArray<A>, b: B, f: (b: B, a: A) => B): ImmutableArray<B> {
1017
- const l = self.length;
1018
- const r = Array(l + 1);
1019
- r[0] = b;
1020
- for (let i = 0; i < l; i++) {
1021
- r[i + 1] = f(r[i]!, self._array[i]!);
1022
- }
1023
- return r.asImmutableArray;
1085
+ export function scanLeft<A, B>(b: B, f: (b: B, a: A) => B) {
1086
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
1087
+ const l = self.length;
1088
+ const r = Array(l + 1);
1089
+ r[0] = b;
1090
+ for (let i = 0; i < l; i++) {
1091
+ r[i + 1] = f(r[i]!, self._array[i]!);
1092
+ }
1093
+ return r.asImmutableArray;
1094
+ };
1024
1095
  }
1025
1096
 
1026
1097
  /**
1027
- * @tsplus fluent fncts.ImmutableArray scanRight
1098
+ * @tsplus pipeable fncts.ImmutableArray scanRight
1028
1099
  */
1029
- export function scanRight_<A, B>(self: ImmutableArray<A>, b: B, f: (a: A, b: B) => B): ImmutableArray<B> {
1030
- const l = self.length;
1031
- const r = Array(l + 1);
1032
- r[l] = b;
1033
- for (let i = l - 1; i >= 0; i--) {
1034
- r[i] = f(self._array[i]!, r[i + 1]!);
1035
- }
1036
- return r.asImmutableArray;
1100
+ export function scanRight<A, B>(b: B, f: (a: A, b: B) => B) {
1101
+ return (self: ImmutableArray<A>): ImmutableArray<B> => {
1102
+ const l = self.length;
1103
+ const r = Array(l + 1);
1104
+ r[l] = b;
1105
+ for (let i = l - 1; i >= 0; i--) {
1106
+ r[i] = f(self._array[i]!, r[i + 1]!);
1107
+ }
1108
+ return r.asImmutableArray;
1109
+ };
1037
1110
  }
1038
1111
 
1039
1112
  /**
1040
- * @tsplus fluent fncts.ImmutableArray sort
1113
+ * @tsplus pipeable fncts.ImmutableArray sort
1041
1114
  */
1042
- export function sort<A>(self: ImmutableArray<A>, /** @tsplus auto */ O: P.Ord<A>): ImmutableArray<A> {
1043
- return self.isEmpty() || self.length === 1 ? self : self._array.slice().sort(O.compare).asImmutableArray;
1115
+ export function sort<A>(/** @tsplus auto */ O: P.Ord<A>) {
1116
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1117
+ return self.isEmpty() || self.length === 1
1118
+ ? self
1119
+ : self._array.slice().sort((a, b) => O.compare(b)(a)).asImmutableArray;
1120
+ };
1044
1121
  }
1045
1122
 
1046
1123
  /**
1047
- * @tsplus fluent fncts.ImmutableArray sortBy
1124
+ * @tsplus pipeable fncts.ImmutableArray sortBy
1048
1125
  */
1049
- export function sortBy<A>(self: ImmutableArray<A>, Os: ImmutableArray<P.Ord<A>>): ImmutableArray<A> {
1050
- return self.sort(Os.fold(P.Ord.getMonoid()));
1126
+ export function sortBy<A>(Os: ImmutableArray<P.Ord<A>>) {
1127
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1128
+ return self.sort(Os.fold(P.Ord.getMonoid()));
1129
+ };
1051
1130
  }
1052
1131
 
1053
1132
  /**
1054
- * @tsplus fluent fncts.ImmutableArray spanLeft
1133
+ * @tsplus pipeable fncts.ImmutableArray spanLeft
1055
1134
  */
1056
- export function spanLeft_<A, B extends A>(
1057
- self: ImmutableArray<A>,
1135
+ export function spanLeft<A, B extends A>(
1058
1136
  p: Refinement<A, B>,
1059
- ): readonly [ImmutableArray<B>, ImmutableArray<A>];
1060
- export function spanLeft_<A>(self: ImmutableArray<A>, p: Predicate<A>): readonly [ImmutableArray<A>, ImmutableArray<A>];
1061
- export function spanLeft_<A>(
1062
- self: ImmutableArray<A>,
1137
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<B>, ImmutableArray<A>];
1138
+ export function spanLeft<A>(
1063
1139
  p: Predicate<A>,
1064
- ): readonly [ImmutableArray<A>, ImmutableArray<A>] {
1065
- const i = self.spanIndexLeft(p);
1066
- const init = Array<A>(i);
1067
- for (let j = 0; j < i; j++) {
1068
- init[j] = self._array[j]!;
1069
- }
1070
- const l = self.length;
1071
- const rest = Array<A>(l - i);
1072
- for (let j = i; j < l; j++) {
1073
- rest[j - i] = self._array[j]!;
1074
- }
1075
- return [init.asImmutableArray, rest.asImmutableArray];
1140
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<A>];
1141
+ export function spanLeft<A>(p: Predicate<A>) {
1142
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<A>, ImmutableArray<A>] => {
1143
+ const i = self.spanIndexLeft(p);
1144
+ const init = Array<A>(i);
1145
+ for (let j = 0; j < i; j++) {
1146
+ init[j] = self._array[j]!;
1147
+ }
1148
+ const l = self.length;
1149
+ const rest = Array<A>(l - i);
1150
+ for (let j = i; j < l; j++) {
1151
+ rest[j - i] = self._array[j]!;
1152
+ }
1153
+ return [init.asImmutableArray, rest.asImmutableArray];
1154
+ };
1076
1155
  }
1077
1156
 
1078
1157
  /**
1079
- * @tsplus fluent fncts.ImmutableArray spanRight
1158
+ * @tsplus pipeable fncts.ImmutableArray spanRight
1080
1159
  */
1081
- export function spanRight_<A, B extends A>(
1082
- self: ImmutableArray<A>,
1160
+ export function spanRight<A, B extends A>(
1083
1161
  p: Refinement<A, B>,
1084
- ): readonly [ImmutableArray<A>, ImmutableArray<B>];
1085
- export function spanRight_<A>(
1086
- self: ImmutableArray<A>,
1087
- p: Predicate<A>,
1088
- ): readonly [ImmutableArray<A>, ImmutableArray<A>];
1089
- export function spanRight_<A>(
1090
- self: ImmutableArray<A>,
1162
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<B>];
1163
+ export function spanRight<A>(
1091
1164
  p: Predicate<A>,
1092
- ): readonly [ImmutableArray<A>, ImmutableArray<A>] {
1093
- const i = self.spanIndexRight(p);
1094
- const l = self.length;
1095
- const tail = Array<A>(l - i - 1);
1096
- for (let j = l - 1; j > i; j--) {
1097
- tail[j - i - 1] = self._array[j]!;
1098
- }
1099
- const rest = Array<A>(i);
1100
- for (let j = i; j >= 0; j--) {
1101
- rest[j] = self._array[j]!;
1102
- }
1103
- return [rest.asImmutableArray, tail.asImmutableArray];
1165
+ ): (self: ImmutableArray<A>) => readonly [ImmutableArray<A>, ImmutableArray<A>];
1166
+ export function spanRight<A>(p: Predicate<A>) {
1167
+ return (self: ImmutableArray<A>): readonly [ImmutableArray<A>, ImmutableArray<A>] => {
1168
+ const i = self.spanIndexRight(p);
1169
+ const l = self.length;
1170
+ const tail = Array<A>(l - i - 1);
1171
+ for (let j = l - 1; j > i; j--) {
1172
+ tail[j - i - 1] = self._array[j]!;
1173
+ }
1174
+ const rest = Array<A>(i);
1175
+ for (let j = i; j >= 0; j--) {
1176
+ rest[j] = self._array[j]!;
1177
+ }
1178
+ return [rest.asImmutableArray, tail.asImmutableArray];
1179
+ };
1104
1180
  }
1105
1181
 
1106
1182
  /**
1107
- * @tsplus fluent fncts.ImmutableArray spanIndexLeft
1183
+ * @tsplus pipeable fncts.ImmutableArray spanIndexLeft
1108
1184
  */
1109
- export function spanIndexLeft_<A>(self: ImmutableArray<A>, p: Predicate<A>): number {
1110
- const l = self.length;
1111
- let i = 0;
1112
- for (; i < l; i++) {
1113
- if (!p(self._array[i]!)) {
1114
- break;
1185
+ export function spanIndexLeft<A>(p: Predicate<A>) {
1186
+ return (self: ImmutableArray<A>): number => {
1187
+ const l = self.length;
1188
+ let i = 0;
1189
+ for (; i < l; i++) {
1190
+ if (!p(self._array[i]!)) {
1191
+ break;
1192
+ }
1115
1193
  }
1116
- }
1117
- return i;
1194
+ return i;
1195
+ };
1118
1196
  }
1119
1197
 
1120
1198
  /**
1121
- * @tsplus fluent fncts.ImmutableArray spanIndexRight
1199
+ * @tsplus pipeable fncts.ImmutableArray spanIndexRight
1122
1200
  */
1123
- export function spanIndexRight_<A>(as: ImmutableArray<A>, predicate: Predicate<A>): number {
1124
- let i = as.length - 1;
1125
- for (; i >= 0; i--) {
1126
- if (!predicate(as._array[i]!)) {
1127
- break;
1201
+ export function spanIndexRight<A>(predicate: Predicate<A>) {
1202
+ return (as: ImmutableArray<A>): number => {
1203
+ let i = as.length - 1;
1204
+ for (; i >= 0; i--) {
1205
+ if (!predicate(as._array[i]!)) {
1206
+ break;
1207
+ }
1128
1208
  }
1129
- }
1130
- return i;
1209
+ return i;
1210
+ };
1131
1211
  }
1132
1212
 
1133
1213
  /**
@@ -1138,76 +1218,107 @@ export function tail<A>(self: ImmutableArray<A>): Maybe<ImmutableArray<A>> {
1138
1218
  }
1139
1219
 
1140
1220
  /**
1141
- * @tsplus fluent fncts.ImmutableArray take
1221
+ * @tsplus pipeable fncts.ImmutableArray take
1142
1222
  */
1143
- export function take_<A>(self: ImmutableArray<A>, n: number): ImmutableArray<A> {
1144
- return self.slice(0, n);
1223
+ export function take(n: number) {
1224
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A> => {
1225
+ return self.slice(0, n);
1226
+ };
1145
1227
  }
1146
1228
 
1147
1229
  /**
1148
- * @tsplus fluent fncts.ImmutableArray takeLast
1230
+ * @tsplus pipeable fncts.ImmutableArray takeLast
1149
1231
  */
1150
- export function takeLast_<A>(as: ImmutableArray<A>, n: number): ImmutableArray<A> {
1151
- return isEmpty(as) ? ImmutableArray.empty() : as.slice(-n);
1232
+ export function takeLast(n: number) {
1233
+ return <A>(as: ImmutableArray<A>): ImmutableArray<A> => {
1234
+ return isEmpty(as) ? ImmutableArray.empty() : as.slice(-n);
1235
+ };
1152
1236
  }
1153
1237
 
1154
1238
  /**
1155
- * @tsplus fluent fncts.ImmutableArray takeWhile
1239
+ * @tsplus pipeable fncts.ImmutableArray takeWhile
1156
1240
  */
1157
- export function takeWhile_<A, B extends A>(self: ImmutableArray<A>, p: Refinement<A, B>): ImmutableArray<B>;
1158
- export function takeWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A>;
1159
- export function takeWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): ImmutableArray<A> {
1160
- const i = self.spanIndexLeft(p);
1161
- const init = Array<A>(i);
1162
- for (let j = 0; j < i; j++) {
1163
- init[j] = self._array[j]!;
1164
- }
1165
- return init.asImmutableArray;
1241
+ export function takeWhile<A, B extends A>(p: Refinement<A, B>): (self: ImmutableArray<A>) => ImmutableArray<B>;
1242
+ export function takeWhile<A>(p: Predicate<A>): (self: ImmutableArray<A>) => ImmutableArray<A>;
1243
+ export function takeWhile<A>(p: Predicate<A>) {
1244
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1245
+ const i = self.spanIndexLeft(p);
1246
+ const init = Array<A>(i);
1247
+ for (let j = 0; j < i; j++) {
1248
+ init[j] = self._array[j]!;
1249
+ }
1250
+ return init.asImmutableArray;
1251
+ };
1166
1252
  }
1167
1253
 
1168
1254
  /**
1169
1255
  * @tsplus getter fncts.ImmutableArray traverseWithIndex
1170
1256
  */
1171
- export const traverseWithIndex_ = P.TraversableWithIndex.makeTraverseWithIndex<ImmutableArrayF>()(
1172
- () => (ta) => (G) => (f) =>
1173
- ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) =>
1174
- G.zipWith(fbs, f(i, a), (bs, b) => bs.append(b)),
1175
- ),
1176
- );
1257
+ export function _traverseWithIndex<A>(
1258
+ self: ImmutableArray<A>,
1259
+ ): <G extends HKT, GC = HKT.None>(
1260
+ G: P.Applicative<G, GC>,
1261
+ ) => <K, Q, W, X, I, S, R, E, B>(
1262
+ f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1263
+ ) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableArray<B>>;
1264
+ export function _traverseWithIndex<A>(
1265
+ self: ImmutableArray<A>,
1266
+ ): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, ImmutableArray<B>> {
1267
+ return (G) => (f) =>
1268
+ self.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) =>
1269
+ pipe(
1270
+ fbs,
1271
+ G.zipWith(f(i, a), (bs, b) => bs.append(b)),
1272
+ ),
1273
+ );
1274
+ }
1177
1275
 
1178
1276
  /**
1179
1277
  * @tsplus getter fncts.ImmutableArray traverse
1180
1278
  */
1181
- export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self) => (G) => (f) =>
1279
+ export function _traverse<A>(
1280
+ self: ImmutableArray<A>,
1281
+ ): <G extends HKT, GC = HKT.None>(
1282
+ G: P.Applicative<G, GC>,
1283
+ ) => <K, Q, W, X, I, S, R, E, B>(
1284
+ f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1285
+ ) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableArray<B>> {
1286
+ return (G) => (f) => self.traverseWithIndex(G)((_, a) => f(a));
1287
+ }
1288
+
1289
+ export const traverseWithIndex: P.TraversableWithIndex<ImmutableArrayF>["traverseWithIndex"] = (G) => (f) => (self) =>
1290
+ self.traverseWithIndex(G)(f);
1291
+
1292
+ export const traverse: P.Traversable<ImmutableArrayF>["traverse"] = (G) => (f) => (self) =>
1182
1293
  self.traverseWithIndex(G)((_, a) => f(a));
1183
1294
 
1184
1295
  /**
1185
- * @tsplus fluent fncts.ImmutableArray union
1296
+ * @tsplus pipeable fncts.ImmutableArray union
1186
1297
  */
1187
- export function union_<A>(
1188
- self: ImmutableArray<A>,
1189
- that: ImmutableArray<A>,
1190
- /** @tsplus auto */ E: P.Eq<A>,
1191
- ): ImmutableArray<A> {
1192
- return self.concat(that.filter((a) => !self.elem(a, E)));
1298
+ export function union<A>(that: ImmutableArray<A>, /** @tsplus auto */ E: P.Eq<A>) {
1299
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1300
+ return self.concat(that.filter((a) => !self.elem(a, E)));
1301
+ };
1193
1302
  }
1194
1303
 
1195
1304
  /**
1196
- * @tsplus fluent fncts.ImmutableArray uniq
1305
+ * @tsplus pipeable fncts.ImmutableArray uniq
1197
1306
  */
1198
- export function uniq<A>(self: ImmutableArray<A>, /** @tsplus auto */ E: P.Eq<A>): ImmutableArray<A> {
1199
- if (self.length === 1) {
1200
- return self;
1201
- }
1202
- const out = [] as Array<A>;
1203
- const len = self.length;
1204
- for (let i = 0; i < len; i++) {
1205
- const a = self._array[i]!;
1206
- if (!out.asImmutableArray.elem(a, E)) {
1207
- out.push(a);
1307
+ export function uniq<A>(/** @tsplus auto */ E: P.Eq<A>) {
1308
+ return (self: ImmutableArray<A>): ImmutableArray<A> => {
1309
+ if (self.length === 1) {
1310
+ return self;
1208
1311
  }
1209
- }
1210
- return out.asImmutableArray;
1312
+ const out = [] as Array<A>;
1313
+ const len = self.length;
1314
+ for (let i = 0; i < len; i++) {
1315
+ const a = self._array[i]!;
1316
+ if (!out.asImmutableArray.elem(a, E)) {
1317
+ out.push(a);
1318
+ }
1319
+ }
1320
+ return out.asImmutableArray;
1321
+ };
1211
1322
  }
1212
1323
 
1213
1324
  /**
@@ -1232,47 +1343,55 @@ export function unsafeAsMutable<A>(self: ImmutableArray<A>): Array<A> {
1232
1343
  }
1233
1344
 
1234
1345
  /**
1235
- * @tsplus fluent fncts.ImmutableArray unsafeDeleteAt
1346
+ * @tsplus pipeable fncts.ImmutableArray unsafeDeleteAt
1236
1347
  */
1237
- export function unsafeDeleteAt_<A>(self: ImmutableArray<A>, i: number): ImmutableArray<A> {
1238
- return self.mutate((xs) => {
1239
- xs.splice(i, 1);
1240
- });
1348
+ export function unsafeDeleteAt(i: number) {
1349
+ return <A>(self: ImmutableArray<A>): ImmutableArray<A> => {
1350
+ return self.mutate((xs) => {
1351
+ xs.splice(i, 1);
1352
+ });
1353
+ };
1241
1354
  }
1242
1355
 
1243
1356
  /**
1244
- * @tsplus fluent fncts.ImmutableArray unsafeInsertAt
1357
+ * @tsplus pipeable fncts.ImmutableArray unsafeInsertAt
1245
1358
  */
1246
- export function unsafeInsertAt_<A>(as: ImmutableArray<A>, i: number, a: A): ImmutableNonEmptyArray<A> {
1247
- return as.mutate((xs) => {
1248
- xs.splice(i, 0, a);
1249
- }) as unknown as ImmutableNonEmptyArray<A>;
1359
+ export function unsafeInsertAt<A>(i: number, a: A) {
1360
+ return (as: ImmutableArray<A>): ImmutableNonEmptyArray<A> => {
1361
+ return as.mutate((xs) => {
1362
+ xs.splice(i, 0, a);
1363
+ }) as unknown as ImmutableNonEmptyArray<A>;
1364
+ };
1250
1365
  }
1251
1366
 
1252
1367
  /**
1253
- * @tsplus fluent fncts.ImmutableArray unsafeModifyAt
1368
+ * @tsplus pipeable fncts.ImmutableArray unsafeModifyAt
1254
1369
  */
1255
- export function unsafeModifyAt_<A>(as: ImmutableArray<A>, i: number, f: (a: A) => A): ImmutableArray<A> {
1256
- const next = f(as[i]!);
1257
- if (as[i] === next) {
1258
- return as;
1259
- }
1260
- return as.mutate((xs) => {
1261
- xs[i] = next;
1262
- });
1370
+ export function unsafeModifyAt<A>(i: number, f: (a: A) => A) {
1371
+ return (as: ImmutableArray<A>): ImmutableArray<A> => {
1372
+ const next = f(as[i]!);
1373
+ if (as[i] === next) {
1374
+ return as;
1375
+ }
1376
+ return as.mutate((xs) => {
1377
+ xs[i] = next;
1378
+ });
1379
+ };
1263
1380
  }
1264
1381
 
1265
1382
  /**
1266
- * @tsplus fluent fncts.ImmutableArray unsafeUpdateAt
1383
+ * @tsplus pipeable fncts.ImmutableArray unsafeUpdateAt
1267
1384
  */
1268
- export function unsafeUpdateAt_<A>(as: ImmutableArray<A>, i: number, a: A): ImmutableArray<A> {
1269
- if (as[i] === a) {
1270
- return as;
1271
- } else {
1272
- return as.mutate((xs) => {
1273
- xs[i] = a;
1274
- });
1275
- }
1385
+ export function unsafeUpdateAt<A>(i: number, a: A) {
1386
+ return (as: ImmutableArray<A>): ImmutableArray<A> => {
1387
+ if (as[i] === a) {
1388
+ return as;
1389
+ } else {
1390
+ return as.mutate((xs) => {
1391
+ xs[i] = a;
1392
+ });
1393
+ }
1394
+ };
1276
1395
  }
1277
1396
 
1278
1397
  /**
@@ -1291,86 +1410,117 @@ export function unzip<A, B>(self: ImmutableArray<readonly [A, B]>): readonly [Im
1291
1410
  }
1292
1411
 
1293
1412
  /**
1294
- * @tsplus fluent fncts.ImmutableArray updateAt
1413
+ * @tsplus pipeable fncts.ImmutableArray updateAt
1295
1414
  */
1296
- export function updateAt_<A>(as: ImmutableArray<A>, i: number, a: A): Maybe<ImmutableArray<A>> {
1297
- return as.isOutOfBound(i) ? Nothing() : Just(as.unsafeUpdateAt(i, a));
1415
+ export function updateAt<A>(i: number, a: A) {
1416
+ return (as: ImmutableArray<A>): Maybe<ImmutableArray<A>> => {
1417
+ return as.isOutOfBound(i) ? Nothing() : Just(as.unsafeUpdateAt(i, a));
1418
+ };
1298
1419
  }
1299
1420
 
1300
1421
  /**
1301
1422
  * @tsplus getter fncts.ImmutableArray wiltWithIndex
1302
1423
  */
1303
- export const wiltWithIndex = P.WitherableWithIndex.makeWiltWithIndex<ImmutableArrayF>()(
1304
- (_) => (self) => (G) => (f) =>
1305
- G.map(
1306
- self.foldLeftWithIndex(G.pure([[] as Array<typeof _["B"]>, [] as Array<typeof _["B1"]>] as const), (i, fbs, a) =>
1307
- G.zipWith(f(i, a), fbs, (eb, r) =>
1308
- eb.match(
1309
- (b1) => {
1310
- r[0].push(b1);
1311
- return r;
1312
- },
1313
- (b2) => {
1314
- r[1].push(b2);
1315
- return r;
1316
- },
1424
+ export function _wiltWithIndex<A>(self: ImmutableArray<A>) {
1425
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1426
+ <K, Q, W, X, I, S, R, E, B, B2>(
1427
+ f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Either<B, B2>>,
1428
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, readonly [ImmutableArray<B>, ImmutableArray<B2>]> =>
1429
+ self
1430
+ .foldLeftWithIndex(G.pure([[] as Array<B>, [] as Array<B2>] as const), (i, fbs, a) =>
1431
+ f(i, a).pipe(
1432
+ G.zipWith(fbs, (eb, r) =>
1433
+ eb.match(
1434
+ (b1) => {
1435
+ r[0].push(b1);
1436
+ return r;
1437
+ },
1438
+ (b2) => {
1439
+ r[1].push(b2);
1440
+ return r;
1441
+ },
1442
+ ),
1443
+ ),
1317
1444
  ),
1318
- ),
1319
- ),
1320
- ([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray],
1321
- ),
1322
- );
1445
+ )
1446
+ .pipe(G.map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray]));
1447
+ }
1323
1448
 
1324
1449
  /**
1325
1450
  * @tsplus getter fncts.ImmutableArray wilt
1326
1451
  */
1327
- export const wilt: P.WitherableWithIndex<ImmutableArrayF>["wilt"] = (self) => (G) => (f) =>
1328
- self.wiltWithIndex(G)((_, a) => f(a));
1452
+ export function _wilt<A>(self: ImmutableArray<A>) {
1453
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1454
+ <K, Q, W, X, I, S, R, E, B, B2>(
1455
+ f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Either<B, B2>>,
1456
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, readonly [ImmutableArray<B>, ImmutableArray<B2>]> =>
1457
+ self.wiltWithIndex(G)((_, a) => f(a));
1458
+ }
1329
1459
 
1330
1460
  /**
1331
1461
  * @tsplus getter fncts.ImmutableArray witherWithIndex
1332
1462
  */
1333
- export const witherWithIndex = P.WitherableWithIndex.makeWitherWithIndex<ImmutableArrayF>()(
1334
- (_) => (self) => (G) => (f) => {
1335
- return G.map(
1336
- self.foldLeftWithIndex(G.pure([] as Array<typeof _["B"]>), (i, b, a) =>
1337
- G.zipWith(f(i, a), b, (maybeB, bs) => {
1338
- if (maybeB.isJust()) {
1339
- bs.push(maybeB.value);
1340
- }
1341
- return bs;
1342
- }),
1343
- ),
1344
- (bs) => bs.asImmutableArray,
1345
- );
1346
- },
1347
- );
1463
+ export function _witherWithIndex<A>(self: ImmutableArray<A>) {
1464
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1465
+ <K, Q, W, X, I, S, R, E, B>(
1466
+ f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Maybe<B>>,
1467
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableArray<B>> =>
1468
+ self
1469
+ .foldLeftWithIndex(G.pure([] as Array<B>), (i, b, a) =>
1470
+ f(i, a).pipe(
1471
+ G.zipWith(b, (maybeB, bs) => {
1472
+ if (maybeB.isJust()) {
1473
+ bs.push(maybeB.value);
1474
+ }
1475
+ return bs;
1476
+ }),
1477
+ ),
1478
+ )
1479
+ .pipe(G.map((bs) => bs.asImmutableArray));
1480
+ }
1348
1481
 
1349
1482
  /**
1350
1483
  * @tsplus getter fncts.ImmutableArray wither
1351
1484
  */
1352
- export const wither: P.Witherable<ImmutableArrayF>["wither"] = (self) => (G) => (f) =>
1485
+ export function _wither<A>(self: ImmutableArray<A>) {
1486
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1487
+ <K, Q, W, X, I, S, R, E, B>(
1488
+ f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Maybe<B>>,
1489
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, ImmutableArray<B>> =>
1490
+ self.witherWithIndex(G)((_, a) => f(a));
1491
+ }
1492
+
1493
+ export const wiltWithIndex: P.WitherableWithIndex<ImmutableArrayF>["wiltWithIndex"] = (G) => (f) => (self) =>
1494
+ self.wiltWithIndex(G)(f);
1495
+
1496
+ export const wilt: P.WitherableWithIndex<ImmutableArrayF>["wilt"] = (G) => (f) => (self) =>
1497
+ self.wiltWithIndex(G)((_, a) => f(a));
1498
+
1499
+ export const witherWithIndex: P.WitherableWithIndex<ImmutableArrayF>["witherWithIndex"] = (G) => (f) => (self) =>
1500
+ self.witherWithIndex(G)(f);
1501
+
1502
+ export const wither: P.Witherable<ImmutableArrayF>["wither"] = (G) => (f) => (self) =>
1353
1503
  self.witherWithIndex(G)((_, a) => f(a));
1354
1504
 
1355
1505
  /**
1356
- * @tsplus fluent fncts.ImmutableArray zip
1506
+ * @tsplus pipeable fncts.ImmutableArray zip
1357
1507
  */
1358
- export function zip_<A, B>(self: ImmutableArray<A>, that: ImmutableArray<B>): ImmutableArray<readonly [A, B]> {
1359
- return self.zipWith(that, tuple);
1508
+ export function zip<B>(that: ImmutableArray<B>) {
1509
+ return <A>(self: ImmutableArray<A>): ImmutableArray<readonly [A, B]> => {
1510
+ return self.zipWith(that, tuple);
1511
+ };
1360
1512
  }
1361
1513
 
1362
1514
  /**
1363
- * @tsplus fluent fncts.ImmutableArray zipWith
1515
+ * @tsplus pipeable fncts.ImmutableArray zipWith
1364
1516
  */
1365
- export function zipWith_<A, B, C>(
1366
- self: ImmutableArray<A>,
1367
- fb: ImmutableArray<B>,
1368
- f: (a: A, b: B) => C,
1369
- ): ImmutableArray<C> {
1370
- const len = Math.min(self.length, fb.length);
1371
- const fc = Array<C>(len);
1372
- for (let i = 0; i < len; i++) {
1373
- fc[i] = f(self._array[i]!, fb._array[i]!);
1374
- }
1375
- return fc.asImmutableArray;
1517
+ export function zipWith<A, B, C>(fb: ImmutableArray<B>, f: (a: A, b: B) => C) {
1518
+ return (self: ImmutableArray<A>): ImmutableArray<C> => {
1519
+ const len = Math.min(self.length, fb.length);
1520
+ const fc = Array<C>(len);
1521
+ for (let i = 0; i < len; i++) {
1522
+ fc[i] = f(self._array[i]!, fb._array[i]!);
1523
+ }
1524
+ return fc.asImmutableArray;
1525
+ };
1376
1526
  }