@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
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable prefer-const */
2
2
  import type { MutableVector, VectorF } from "@fncts/base/collection/immutable/Vector/definition";
3
3
  import type { Eq, Monoid, Ord, Ordering, Traversable } from "@fncts/base/typeclass";
4
+ import type * as P from "@fncts/base/typeclass";
4
5
 
5
6
  import {
6
7
  affixPush,
@@ -48,115 +49,122 @@ import {
48
49
  updateNode,
49
50
  zeroOffset,
50
51
  } from "@fncts/base/collection/immutable/Vector/internal";
51
- import { TraversableWithIndex } from "@fncts/base/typeclass";
52
52
 
53
53
  /**
54
54
  * Appends an element to the end of a Vector and returns the new Vector.
55
55
  *
56
56
  * @complexity O(n)
57
57
  *
58
- * @tsplus fluent fncts.Vector append
59
- * @tsplus operator fncts.Vector +
60
- */
61
- export function append_<A>(as: Vector<A>, a: A): Vector<A> {
62
- const suffixSize = getSuffixSize(as);
63
- if (suffixSize < 32) {
64
- return new Vector(
65
- incrementSuffix(as.bits),
66
- as.offset,
67
- as.length + 1,
68
- as.prefix,
69
- as.root,
70
- affixPush(a, as.suffix, suffixSize),
71
- );
72
- }
73
- const newSuffix = [a];
74
- const newVector = mutableClone(as);
75
- appendNodeToTree(newVector, as.suffix);
76
- newVector.suffix = newSuffix;
77
- newVector.length++;
78
- newVector.bits = setSuffix(1, newVector.bits);
79
- return newVector;
58
+ * @tsplus pipeable fncts.Vector append
59
+ * @tsplus pipeable-operator fncts.Vector +
60
+ */
61
+ export function append<A>(a: A) {
62
+ return (self: Vector<A>): Vector<A> => {
63
+ const suffixSize = getSuffixSize(self);
64
+ if (suffixSize < 32) {
65
+ return new Vector(
66
+ incrementSuffix(self.bits),
67
+ self.offset,
68
+ self.length + 1,
69
+ self.prefix,
70
+ self.root,
71
+ affixPush(a, self.suffix, suffixSize),
72
+ );
73
+ }
74
+ const newSuffix = [a];
75
+ const newVector = mutableClone(self);
76
+ appendNodeToTree(newVector, self.suffix);
77
+ newVector.suffix = newSuffix;
78
+ newVector.length++;
79
+ newVector.bits = setSuffix(1, newVector.bits);
80
+ return newVector;
81
+ };
80
82
  }
81
83
 
82
84
  /**
83
85
  * Maps a function over a Vector and concatenates all the resulting
84
86
  * Vectors together.
85
87
  *
86
- * @tsplus fluent fncts.Vector flatMap
88
+ * @tsplus pipeable fncts.Vector flatMap
87
89
  */
88
- export function flatMap_<A, B>(ma: Vector<A>, f: (a: A) => Vector<B>): Vector<B> {
89
- return ma.map(f).flatten;
90
+ export function flatMap<A, B>(f: (a: A) => Vector<B>) {
91
+ return (self: Vector<A>): Vector<B> => {
92
+ return self.map(f).flatten;
93
+ };
90
94
  }
91
95
 
92
96
  /**
93
97
  * Splits the Vector into chunks of the given size.
94
98
  *
95
- * @tsplus fluent fncts.Vector chunksOf
96
- */
97
- export function chunksOf_<A>(as: Vector<A>, size: number): Vector<Vector<A>> {
98
- const { buffer, l2 } = as.foldLeft(
99
- { l2: Vector.emptyPushable<Vector<A>>(), buffer: Vector.emptyPushable<A>() },
100
- ({ buffer, l2 }, elem) => {
101
- buffer.push(elem);
102
- if (buffer.length === size) {
103
- return { l2: l2.push(buffer), buffer: Vector.emptyPushable<A>() };
104
- } else {
105
- return { l2, buffer };
106
- }
107
- },
108
- );
109
- return buffer.length === 0 ? l2 : l2.push(buffer);
99
+ * @tsplus pipeable fncts.Vector chunksOf
100
+ */
101
+ export function chunksOf(size: number) {
102
+ return <A>(self: Vector<A>): Vector<Vector<A>> => {
103
+ const { buffer, l2 } = self.foldLeft(
104
+ { l2: Vector.emptyPushable<Vector<A>>(), buffer: Vector.emptyPushable<A>() },
105
+ ({ buffer, l2 }, elem) => {
106
+ buffer.push(elem);
107
+ if (buffer.length === size) {
108
+ return { l2: l2.push(buffer), buffer: Vector.emptyPushable<A>() };
109
+ } else {
110
+ return { l2, buffer };
111
+ }
112
+ },
113
+ );
114
+ return buffer.length === 0 ? l2 : l2.push(buffer);
115
+ };
110
116
  }
111
117
 
112
118
  /**
113
119
  * Concatenates two Vectors.
114
120
  *
115
121
  * @complexity O(log(n))
116
- * @tsplus fluent fncts.Vector concat
117
- * @tsplus operator fncts.Vector + 1
118
- */
119
- export function concat_<A, B>(self: Vector<A>, that: Vector<B>): Vector<A | B>;
120
- export function concat_<A>(self: Vector<A>, that: Vector<A>): Vector<A> {
121
- if (self.length === 0) {
122
- return that;
123
- } else if (that.length === 0) {
124
- return self;
125
- }
126
- const newSize = self.length + that.length;
127
- const rightSuffixSize = getSuffixSize(that);
128
- let newVector = self.mutableClone;
129
- if (that.root === undefined) {
130
- // right is nothing but a prefix and a suffix
131
- const nrOfAffixes = concatAffixes(self, that);
132
- for (let i = 0; i < nrOfAffixes; ++i) {
133
- newVector = appendNodeToTree(newVector, concatBuffer[i]);
134
- newVector.length += concatBuffer[i].length;
135
- // wipe pointer, otherwise it might end up keeping the array alive
136
- concatBuffer[i] = undefined;
122
+ * @tsplus pipeable fncts.Vector concat
123
+ * @tsplus pipeable-operator fncts.Vector + 1
124
+ */
125
+ export function concat<B>(that: Vector<B>): <A>(self: Vector<A>) => Vector<A | B>;
126
+ export function concat<A>(that: Vector<A>) {
127
+ return (self: Vector<A>): Vector<A> => {
128
+ if (self.length === 0) {
129
+ return that;
130
+ } else if (that.length === 0) {
131
+ return self;
137
132
  }
138
- newVector.length = newSize;
139
- newVector.suffix = concatBuffer[nrOfAffixes];
140
- newVector.bits = setSuffix(concatBuffer[nrOfAffixes].length, newVector.bits);
141
- concatBuffer[nrOfAffixes] = undefined;
142
- return newVector;
143
- } else {
144
- const leftSuffixSize = getSuffixSize(self);
145
- if (leftSuffixSize > 0) {
146
- newVector = appendNodeToTree(newVector, self.suffix.slice(0, leftSuffixSize));
147
- newVector.length += leftSuffixSize;
133
+ const newSize = self.length + that.length;
134
+ const rightSuffixSize = getSuffixSize(that);
135
+ let newVector = self.mutableClone;
136
+ if (that.root === undefined) {
137
+ // right is nothing but a prefix and a suffix
138
+ const nrOfAffixes = concatAffixes(self, that);
139
+ for (let i = 0; i < nrOfAffixes; ++i) {
140
+ newVector = appendNodeToTree(newVector, concatBuffer[i]);
141
+ newVector.length += concatBuffer[i].length;
142
+ // wipe pointer, otherwise it might end up keeping the array alive
143
+ concatBuffer[i] = undefined;
144
+ }
145
+ newVector.length = newSize;
146
+ newVector.suffix = concatBuffer[nrOfAffixes];
147
+ newVector.bits = setSuffix(concatBuffer[nrOfAffixes].length, newVector.bits);
148
+ concatBuffer[nrOfAffixes] = undefined;
149
+ return newVector;
150
+ } else {
151
+ const leftSuffixSize = getSuffixSize(self);
152
+ if (leftSuffixSize > 0) {
153
+ newVector = appendNodeToTree(newVector, self.suffix.slice(0, leftSuffixSize));
154
+ newVector.length += leftSuffixSize;
155
+ }
156
+ newVector = appendNodeToTree(newVector, that.prefix.slice(0, getPrefixSize(that)).reverse());
157
+ const newNode = concatSubTree(newVector.root!, getDepth(newVector), that.root, getDepth(that), true);
158
+ const newDepth = getHeight(newNode);
159
+ setSizes(newNode, newDepth);
160
+ newVector.root = newNode;
161
+ newVector.offset &= ~(mask << (getDepth(self) * branchBits));
162
+ newVector.length = newSize;
163
+ newVector.bits = setSuffix(rightSuffixSize, setDepth(newDepth, newVector.bits));
164
+ newVector.suffix = that.suffix;
165
+ return newVector;
148
166
  }
149
- newVector = appendNodeToTree(newVector, that.prefix.slice(0, getPrefixSize(that)).reverse());
150
- const newNode = concatSubTree(newVector.root!, getDepth(newVector), that.root, getDepth(that), true);
151
- const newDepth = getHeight(newNode);
152
- setSizes(newNode, newDepth);
153
- newVector.root = newNode;
154
- newVector.offset &= ~(mask << (getDepth(self) * branchBits));
155
- newVector.length = newSize;
156
- newVector.bits = setSuffix(rightSuffixSize, setDepth(newDepth, newVector.bits));
157
- newVector.suffix = that.suffix;
158
- return newVector;
159
- }
167
+ };
160
168
  }
161
169
 
162
170
  type ContainsState = {
@@ -178,32 +186,38 @@ function containsCb(value: any, state: ContainsState): boolean {
178
186
  * Otherwise it returns `false`.
179
187
  *
180
188
  * @complexity O(n)
181
- * @tsplus fluent fncts.Vector contains
189
+ * @tsplus pipeable fncts.Vector contains
182
190
  */
183
- export function contains_<A>(as: Vector<A>, element: A): boolean {
184
- containsState.element = element;
185
- containsState.result = false;
186
- return foldLeftCb(containsCb, containsState, as).result;
191
+ export function contains<A>(element: A) {
192
+ return (self: Vector<A>): boolean => {
193
+ containsState.element = element;
194
+ containsState.result = false;
195
+ return foldLeftCb(containsCb, containsState, self).result;
196
+ };
187
197
  }
188
198
 
189
199
  /**
190
200
  * Returns a new Vector without the first `n` elements.
191
201
  *
192
202
  * @complexity `O(log(n))`
193
- * @tsplus fluent fncts.Vector drop
203
+ * @tsplus pipeable fncts.Vector drop
194
204
  */
195
- export function drop_<A>(as: Vector<A>, n: number): Vector<A> {
196
- return as.slice(n, as.length);
205
+ export function drop(n: number) {
206
+ return <A>(self: Vector<A>): Vector<A> => {
207
+ return self.slice(n, self.length);
208
+ };
197
209
  }
198
210
 
199
211
  /**
200
212
  * Returns a new Vector without the last `n` elements.
201
213
  *
202
214
  * @complexity `O(log(n))`
203
- * @tsplus fluent fncts.Vector dropLast
215
+ * @tsplus pipeable fncts.Vector dropLast
204
216
  */
205
- export function dropLast_<A>(as: Vector<A>, n: number): Vector<A> {
206
- return as.slice(0, as.length - n);
217
+ export function dropLast(n: number) {
218
+ return <A>(self: Vector<A>): Vector<A> => {
219
+ return self.slice(0, self.length - n);
220
+ };
207
221
  }
208
222
 
209
223
  /**
@@ -212,8 +226,8 @@ export function dropLast_<A>(as: Vector<A>, n: number): Vector<A> {
212
226
  * @complexity `O(n)`
213
227
  * @tsplus getter fncts.Vector dropRepeats
214
228
  */
215
- export function dropRepeats<A>(as: Vector<A>): Vector<A> {
216
- return as.dropRepeatsWith(Equatable.strictEquals);
229
+ export function dropRepeats<A>(self: Vector<A>): Vector<A> {
230
+ return self.dropRepeatsWith(Equatable.strictEquals);
217
231
  }
218
232
 
219
233
  /**
@@ -221,12 +235,14 @@ export function dropRepeats<A>(as: Vector<A>): Vector<A> {
221
235
  * function to determine when elements are equal.
222
236
  *
223
237
  * @complexity `O(n)`
224
- * @tsplus fluent fncts.Vector dropRepeatsWith
238
+ * @tsplus pipeable fncts.Vector dropRepeatsWith
225
239
  */
226
- export function dropRepeatsWith_<A>(as: Vector<A>, predicate: (a: A, b: A) => boolean): Vector<A> {
227
- return as.foldLeft(Vector.emptyPushable(), (acc, a) =>
228
- acc.length !== 0 && predicate((acc as Vector<A>).unsafeLast!, a) ? acc : acc.push(a),
229
- );
240
+ export function dropRepeatsWith<A>(predicate: (a: A, b: A) => boolean) {
241
+ return (self: Vector<A>): Vector<A> => {
242
+ return self.foldLeft(Vector.emptyPushable(), (acc, a) =>
243
+ acc.length !== 0 && predicate((acc as Vector<A>).unsafeLast!, a) ? acc : acc.push(a),
244
+ );
245
+ };
230
246
  }
231
247
 
232
248
  type FindNotIndexState = {
@@ -249,44 +265,45 @@ function findNotIndexCb(value: any, state: FindNotIndexState): boolean {
249
265
  *
250
266
  * @complexity `O(k + log(n))` where `k` is the number of elements
251
267
  * satisfying the predicate.
252
- * @tsplus fluent fncts.Vector dropWhile
268
+ * @tsplus pipeable fncts.Vector dropWhile
253
269
  */
254
- export function dropWhile_<A>(as: Vector<A>, predicate: Predicate<A>): Vector<A> {
255
- const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, as);
256
- return as.slice(index, as.length);
270
+ export function dropWhile<A>(predicate: Predicate<A>) {
271
+ return (self: Vector<A>): Vector<A> => {
272
+ const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
273
+ return self.slice(index, self.length);
274
+ };
257
275
  }
258
276
 
259
277
  type ElemState = {
260
278
  element: any;
261
- equals: (x: any, y: any) => boolean;
279
+ equals: (y: any) => (x: any) => boolean;
262
280
  result: boolean;
263
281
  };
264
282
 
265
283
  function elemCb(value: any, state: ElemState): boolean {
266
- return !(state.result = state.equals(value, state.element));
284
+ return !(state.result = state.equals(state.element)(value));
267
285
  }
268
286
 
269
287
  /**
270
- * @tsplus getter fncts.Vector elem
288
+ * @tsplus pipeable fncts.Vector elem
271
289
  */
272
- export function elem_<A>(self: Vector<A>) {
273
- return (E: Eq<A>) => {
274
- const elemState: ElemState = { equals: E.equals, element: undefined, result: false };
275
- return (a: A): boolean => {
276
- elemState.element = a;
277
- return foldLeftCb(elemCb, elemState, self).result;
278
- };
290
+ export function elem<A>(a: A, /** @tsplus auto */ E: Eq<A>) {
291
+ const elemState: ElemState = { equals: E.equals, element: undefined, result: false };
292
+ return (self: Vector<A>): boolean => {
293
+ elemState.element = a;
294
+ return foldLeftCb(elemCb, elemState, self).result;
279
295
  };
280
296
  }
281
-
282
297
  /**
283
298
  * Returns true if the two Vectors are equivalent.
284
299
  *
285
300
  * @complexity O(n)
286
- * @tsplus fluent fncts.Vector equals
301
+ * @tsplus pipeable fncts.Vector equals
287
302
  */
288
- export function equals_<A>(self: Vector<A>, that: Vector<A>): boolean {
289
- return self.corresponds(that, Equatable.strictEquals);
303
+ export function equals<A>(that: Vector<A>) {
304
+ return (self: Vector<A>): boolean => {
305
+ return self.corresponds(that, Equatable.strictEquals);
306
+ };
290
307
  }
291
308
 
292
309
  type PredState = {
@@ -303,12 +320,14 @@ function everyCb<A>(value: A, state: any): boolean {
303
320
  * for all elements in the given Vector.
304
321
  *
305
322
  * @complexity O(n)
306
- * @tsplus fluent fncts.Vector every
323
+ * @tsplus pipeable fncts.Vector every
307
324
  */
308
- export function every_<A, B extends A>(as: Vector<A>, refinement: Refinement<A, B>): as is Vector<B>;
309
- export function every_<A>(as: Vector<A>, predicate: Predicate<A>): boolean;
310
- export function every_<A>(as: Vector<A>, predicate: Predicate<A>): boolean {
311
- return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, as).result;
325
+ export function every<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => self is Vector<B>;
326
+ export function every<A>(predicate: Predicate<A>): (self: Vector<A>) => boolean;
327
+ export function every<A>(predicate: Predicate<A>) {
328
+ return (self: Vector<A>): boolean => {
329
+ return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, self).result;
330
+ };
312
331
  }
313
332
 
314
333
  /**
@@ -317,18 +336,18 @@ export function every_<A>(as: Vector<A>, predicate: Predicate<A>): boolean {
317
336
  * @complexity O(1)
318
337
  * @tsplus static fncts.VectorOps empty
319
338
  */
320
- export function empty<A = any>(): Vector<A> {
339
+ export function empty<A = never>(): Vector<A> {
321
340
  return new Vector(0, 0, 0, emptyAffix, undefined, emptyAffix);
322
341
  }
323
342
 
324
343
  /**
325
344
  * @tsplus static fncts.VectorOps emptyPushable
326
345
  */
327
- export function emptyPushable<A>(): MutableVector<A> {
346
+ export function emptyPushable<A = never>(): MutableVector<A> {
328
347
  return new Vector(0, 0, 0, [], undefined, []) as any;
329
348
  }
330
349
 
331
- function existsCb<A>(value: A, state: PredState): boolean {
350
+ function someCb<A>(value: A, state: PredState): boolean {
332
351
  return !(state.result = state.predicate(value));
333
352
  }
334
353
 
@@ -338,10 +357,12 @@ function existsCb<A>(value: A, state: PredState): boolean {
338
357
  *
339
358
  * @complexity O(n)
340
359
  *
341
- * @tsplus fluent fncts.Vector exists
360
+ * @tsplus pipeable fncts.Vector some
342
361
  */
343
- export function exists_<A>(as: Vector<A>, predicate: Predicate<A>): boolean {
344
- return foldLeftCb<A, PredState>(existsCb, { predicate, result: false }, as).result;
362
+ export function some<A>(predicate: Predicate<A>) {
363
+ return (self: Vector<A>): boolean => {
364
+ return foldLeftCb<A, PredState>(someCb, { predicate, result: false }, self).result;
365
+ };
345
366
  }
346
367
 
347
368
  /**
@@ -349,10 +370,12 @@ export function exists_<A>(as: Vector<A>, predicate: Predicate<A>): boolean {
349
370
  * If no such element is found the function returns `undefined`.
350
371
  *
351
372
  * @complexity O(n)
352
- * @tsplus fluent fncts.Vector find
373
+ * @tsplus pipeable fncts.Vector find
353
374
  */
354
- export function find_<A>(as: Vector<A>, predicate: Predicate<A>): Maybe<A> {
355
- return Maybe.fromNullable(as.unsafeFind(predicate));
375
+ export function find<A>(predicate: Predicate<A>) {
376
+ return (self: Vector<A>): Maybe<A> => {
377
+ return Maybe.fromNullable(self.unsafeFind(predicate));
378
+ };
356
379
  }
357
380
 
358
381
  type FindIndexState = {
@@ -372,11 +395,13 @@ function findIndexCb<A>(value: A, state: FindIndexState): boolean {
372
395
  * `-1`.
373
396
  *
374
397
  * @complexity O(n)
375
- * @tsplus fluent fncts.Vector findIndex
398
+ * @tsplus pipeable fncts.Vector findIndex
376
399
  */
377
- export function findIndex_<A>(as: Vector<A>, predicate: Predicate<A>): number {
378
- const { found, index } = foldLeftCb<A, FindIndexState>(findIndexCb, { predicate, found: false, index: -1 }, as);
379
- return found ? index : -1;
400
+ export function findIndex<A>(predicate: Predicate<A>) {
401
+ return (self: Vector<A>): number => {
402
+ const { found, index } = foldLeftCb<A, FindIndexState>(findIndexCb, { predicate, found: false, index: -1 }, self);
403
+ return found ? index : -1;
404
+ };
380
405
  }
381
406
 
382
407
  /**
@@ -384,10 +409,12 @@ export function findIndex_<A>(as: Vector<A>, predicate: Predicate<A>): number {
384
409
  * If no such element is found the function returns `undefined`.
385
410
  *
386
411
  * @complexity O(n)
387
- * @tsplus fluent fncts.Vector findLast
412
+ * @tsplus pipeable fncts.Vector findLast
388
413
  */
389
- export function findLast_<A>(as: Vector<A>, predicate: Predicate<A>): Maybe<A> {
390
- return Maybe.fromNullable(as.unsafeFindLast(predicate));
414
+ export function findLast<A>(predicate: Predicate<A>) {
415
+ return (self: Vector<A>): Maybe<A> => {
416
+ return Maybe.fromNullable(self.unsafeFindLast(predicate));
417
+ };
391
418
  }
392
419
 
393
420
  /**
@@ -396,11 +423,13 @@ export function findLast_<A>(as: Vector<A>, predicate: Predicate<A>): Maybe<A> {
396
423
  * `-1`.
397
424
  *
398
425
  * @complexity O(n)
399
- * @tsplus fluent fncts.Vector findLastIndex
426
+ * @tsplus pipeable fncts.Vector findLastIndex
400
427
  */
401
- export function findLastIndex_<A>(as: Vector<A>, predicate: Predicate<A>): number {
402
- const { found, index } = foldRightCb<A, FindIndexState>(findIndexCb, { predicate, found: false, index: -0 }, as);
403
- return found ? index : -1;
428
+ export function findLastIndex<A>(predicate: Predicate<A>) {
429
+ return (self: Vector<A>): number => {
430
+ const { found, index } = foldRightCb<A, FindIndexState>(findIndexCb, { predicate, found: false, index: -0 }, self);
431
+ return found ? index : -1;
432
+ };
404
433
  }
405
434
 
406
435
  /**
@@ -411,8 +440,8 @@ export function findLastIndex_<A>(as: Vector<A>, predicate: Predicate<A>): numbe
411
440
  *
412
441
  * @tsplus getter fncts.Vector flatten
413
442
  */
414
- export function flatten<A>(mma: Vector<Vector<A>>): Vector<A> {
415
- return mma.foldLeft<Vector<A>, Vector<A>>(Vector.empty(), (acc, a) => acc.concat(a));
443
+ export function flatten<A>(self: Vector<Vector<A>>): Vector<A> {
444
+ return self.foldLeft<Vector<A>, Vector<A>>(Vector.empty(), (acc, a) => acc.concat(a));
416
445
  }
417
446
 
418
447
  /**
@@ -441,23 +470,27 @@ export function from<A>(sequence: any): Vector<A> {
441
470
  /**
442
471
  * Folds a function over a Vector. Left-associative.
443
472
  *
444
- * @tsplus fluent fncts.Vector foldLeft
473
+ * @tsplus pipeable fncts.Vector foldLeft
445
474
  */
446
- export function foldLeft_<A, B>(fa: Vector<A>, initial: B, f: (acc: B, a: A) => B): B {
447
- return fa.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
475
+ export function foldLeft<A, B>(initial: B, f: (acc: B, a: A) => B) {
476
+ return (self: Vector<A>): B => {
477
+ return self.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
478
+ };
448
479
  }
449
480
 
450
481
  /**
451
- * @tsplus fluent fncts.Vector foldLeftWithIndex
482
+ * @tsplus pipeable fncts.Vector foldLeftWithIndex
452
483
  */
453
- export function foldLeftWithIndex_<A, B>(fa: Vector<A>, b: B, f: (i: number, b: B, a: A) => B): B {
454
- const suffixSize = getSuffixSize(fa);
455
- const prefixSize = getPrefixSize(fa);
456
- let [acc, index] = foldLeftPrefix(f, b, fa.prefix, prefixSize);
457
- if (fa.root !== undefined) {
458
- [acc, index] = foldLeftNode(f, acc, fa.root, getDepth(fa), index);
459
- }
460
- return foldLeftSuffix(f, acc, fa.suffix, suffixSize, index)[0];
484
+ export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
485
+ return (self: Vector<A>): B => {
486
+ const suffixSize = getSuffixSize(self);
487
+ const prefixSize = getPrefixSize(self);
488
+ let [acc, index] = foldLeftPrefix(f, b, self.prefix, prefixSize);
489
+ if (self.root !== undefined) {
490
+ [acc, index] = foldLeftNode(f, acc, self.root, getDepth(self), index);
491
+ }
492
+ return foldLeftSuffix(f, acc, self.suffix, suffixSize, index)[0];
493
+ };
461
494
  }
462
495
 
463
496
  type FoldWhileState<A, B> = {
@@ -489,68 +522,76 @@ function foldWhileCb<A, B>(a: A, state: FoldWhileState<A, B>, i: number): boolea
489
522
  }
490
523
 
491
524
  /**
492
- * @tsplus fluent fncts.Vector foldLeftWhile
525
+ * @tsplus pipeable fncts.Vector foldLeftWhile
493
526
  */
494
- export function foldLeftWhile_<A, B>(fa: Vector<A>, b: B, cont: Predicate<B>, f: (i: number, b: B, a: A) => B): B {
495
- if (!cont(b)) {
496
- return b;
497
- }
498
- return foldLeftCb<A, FoldWhileState<A, B>>(foldWhileCb, { predicate: cont, f, result: b }, fa).result;
527
+ export function foldLeftWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, b: B, a: A) => B) {
528
+ return (self: Vector<A>): B => {
529
+ if (!cont(b)) {
530
+ return b;
531
+ }
532
+ return foldLeftCb<A, FoldWhileState<A, B>>(foldWhileCb, { predicate: cont, f, result: b }, self).result;
533
+ };
499
534
  }
500
535
 
501
536
  /**
502
- * @tsplus fluent fncts.Vector foldRightWhile
537
+ * @tsplus pipeable fncts.Vector foldRightWhile
503
538
  */
504
- export function foldRightWhile_<A, B>(fa: Vector<A>, b: B, cont: Predicate<B>, f: (i: number, a: A, b: B) => B): B {
505
- return foldRightCb<A, FoldWhileState<A, B>>(
506
- foldWhileCb,
507
- { predicate: cont, result: b, f: (i, b, a) => f(i, a, b) },
508
- fa,
509
- ).result;
539
+ export function foldRightWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, a: A, b: B) => B) {
540
+ return (self: Vector<A>): B => {
541
+ return foldRightCb<A, FoldWhileState<A, B>>(
542
+ foldWhileCb,
543
+ { predicate: cont, result: b, f: (i, b, a) => f(i, a, b) },
544
+ self,
545
+ ).result;
546
+ };
510
547
  }
511
548
 
512
549
  /**
513
- * @tsplus fluent fncts.Vector foldMap
550
+ * @tsplus pipeable fncts.Vector foldMap
514
551
  */
515
- export function foldMap_<A, M>(self: Vector<A>, f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>): M {
516
- return self.foldMapWithIndex((_, a) => f(a), M);
552
+ export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
553
+ return (self: Vector<A>): M => {
554
+ return self.foldMapWithIndex((_, a) => f(a), M);
555
+ };
517
556
  }
518
557
 
519
558
  /**
520
- * @tsplus fluent fncts.Vector foldMapWithIndex
559
+ * @tsplus pipeable fncts.Vector foldMapWithIndex
521
560
  */
522
- export function foldMapWithIndex_<A, M>(
523
- self: Vector<A>,
524
- f: (i: number, a: A) => M,
525
- /** @tsplus auto */ M: Monoid<M>,
526
- ): M {
527
- return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
561
+ export function foldMapWithIndex<A, M>(f: (i: number, a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
562
+ return (self: Vector<A>): M => {
563
+ return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(f(i, a))(b));
564
+ };
528
565
  }
529
566
 
530
567
  /**
531
568
  * Folds a function over a Vector. Right-associative.
532
569
  *
533
570
  * @complexity O(n)
534
- * @tsplus fluent fncts.Vector foldRight
571
+ * @tsplus pipeable fncts.Vector foldRight
535
572
  */
536
- export function foldRight_<A, B>(fa: Vector<A>, initial: B, f: (value: A, acc: B) => B): B {
537
- return fa.foldRightWithIndex(initial, (_, a, b) => f(a, b));
573
+ export function foldRight<A, B>(initial: B, f: (value: A, acc: B) => B) {
574
+ return (self: Vector<A>): B => {
575
+ return self.foldRightWithIndex(initial, (_, a, b) => f(a, b));
576
+ };
538
577
  }
539
578
 
540
579
  /**
541
580
  * Folds a function over a Vector. Right-associative.
542
581
  *
543
582
  * @complexity O(n)
544
- * @tsplus fluent fncts.Vector foldRightWithIndex
545
- */
546
- export function foldRightWithIndex_<A, B>(fa: Vector<A>, b: B, f: (i: number, a: A, b: B) => B): B {
547
- const suffixSize = getSuffixSize(fa);
548
- const prefixSize = getPrefixSize(fa);
549
- let [acc, j] = foldRightSuffix(f, b, fa.suffix, suffixSize, fa.length - 1);
550
- if (fa.root !== undefined) {
551
- [acc, j] = foldRightNode(f, acc, fa.root, getDepth(fa), j);
552
- }
553
- return foldRightPrefix(f, acc, fa.prefix, prefixSize, j)[0];
583
+ * @tsplus pipeable fncts.Vector foldRightWithIndex
584
+ */
585
+ export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B) {
586
+ return (self: Vector<A>): B => {
587
+ const suffixSize = getSuffixSize(self);
588
+ const prefixSize = getPrefixSize(self);
589
+ let [acc, j] = foldRightSuffix(f, b, self.suffix, suffixSize, self.length - 1);
590
+ if (self.root !== undefined) {
591
+ [acc, j] = foldRightNode(f, acc, self.root, getDepth(self), j);
592
+ }
593
+ return foldRightPrefix(f, acc, self.prefix, prefixSize, j)[0];
594
+ };
554
595
  }
555
596
 
556
597
  /**
@@ -563,17 +604,21 @@ export function foldRightWithIndex_<A, B>(fa: Vector<A>, b: B, f: (i: number, a:
563
604
  * makes `forEach` faster when the new Vector is unneeded.
564
605
  *
565
606
  * @complexity O(n)
566
- * @tsplus fluent fncts.Vector forEach
607
+ * @tsplus pipeable fncts.Vector forEach
567
608
  */
568
- export function forEach_<A>(as: Vector<A>, f: (a: A) => void): void {
569
- as.foldLeft(undefined as void, (_, element) => f(element));
609
+ export function forEach<A>(f: (a: A) => void) {
610
+ return (self: Vector<A>): void => {
611
+ self.foldLeft(undefined as void, (_, element) => f(element));
612
+ };
570
613
  }
571
614
 
572
615
  /**
573
- * @tsplus fluent fncts.Vector forEachWithIndex
616
+ * @tsplus pipeable fncts.Vector forEachWithIndex
574
617
  */
575
- export function forEachWithIndex_<A>(as: Vector<A>, f: (i: number, a: A) => void): void {
576
- as.foldLeftWithIndex(undefined as void, (index, _, element) => f(index, element));
618
+ export function forEachWithIndex<A>(f: (i: number, a: A) => void) {
619
+ return (self: Vector<A>): void => {
620
+ self.foldLeftWithIndex(undefined as void, (index, _, element) => f(index, element));
621
+ };
577
622
  }
578
623
 
579
624
  /**
@@ -581,10 +626,12 @@ export function forEachWithIndex_<A>(as: Vector<A>, f: (i: number, a: A) => void
581
626
  * `undefined` is returned.
582
627
  *
583
628
  * @complexity O(log(n))
584
- * @tsplus fluent fncts.Vector get
629
+ * @tsplus pipeable fncts.Vector get
585
630
  */
586
- export function get_<A>(self: Vector<A>, index: number): Maybe<A> {
587
- return Maybe.fromNullable(self.unsafeGet(index));
631
+ export function get(index: number) {
632
+ return <A>(self: Vector<A>): Maybe<A> => {
633
+ return Maybe.fromNullable(self.unsafeGet(index));
634
+ };
588
635
  }
589
636
 
590
637
  /**
@@ -595,19 +642,21 @@ export function get_<A>(self: Vector<A>, index: number): Maybe<A> {
595
642
  * equal elements should be grouped together the Vector should be sorted
596
643
  * before grouping.
597
644
  *
598
- * @tsplus fluent fncts.Vector groupWith
645
+ * @tsplus pipeable fncts.Vector groupWith
599
646
  */
600
- export function groupWith_<A>(as: Vector<A>, f: (a: A, b: A) => boolean): Vector<Vector<A>> {
601
- const result = Vector.emptyPushable<MutableVector<A>>();
602
- let buffer = Vector.emptyPushable<A>();
603
- forEach_(as, (a) => {
604
- if (buffer.length !== 0 && !f(unsafeLast(buffer)!, a)) {
605
- result.push(buffer);
606
- buffer = emptyPushable();
607
- }
608
- buffer.push(a);
609
- });
610
- return buffer.length === 0 ? result : result.push(buffer);
647
+ export function groupWith<A>(f: (a: A, b: A) => boolean) {
648
+ return (self: Vector<A>): Vector<Vector<A>> => {
649
+ const result = Vector.emptyPushable<MutableVector<A>>();
650
+ let buffer = Vector.emptyPushable<A>();
651
+ self.forEach((a) => {
652
+ if (buffer.length !== 0 && !f(unsafeLast(buffer)!, a)) {
653
+ result.push(buffer);
654
+ buffer = emptyPushable();
655
+ }
656
+ buffer.push(a);
657
+ });
658
+ return buffer.length === 0 ? result : result.push(buffer);
659
+ };
611
660
  }
612
661
 
613
662
  /**
@@ -636,64 +685,74 @@ function indexOfCb(value: any, state: IndexOfState): boolean {
636
685
  * to the given element. If no such element is found `-1` is returned.
637
686
  *
638
687
  * @complexity O(n)
639
- * @tsplus fluent fncts.Vector indexOf
688
+ * @tsplus pipeable fncts.Vector indexOf
640
689
  */
641
- export function indexOf_<A>(as: Vector<A>, element: A): number {
642
- const state = { element, found: false, index: -1 };
643
- foldLeftCb(indexOfCb, state, as);
644
- return state.found ? state.index : -1;
690
+ export function indexOf<A>(element: A) {
691
+ return (self: Vector<A>): number => {
692
+ const state = { element, found: false, index: -1 };
693
+ foldLeftCb(indexOfCb, state, self);
694
+ return state.found ? state.index : -1;
695
+ };
645
696
  }
646
697
 
647
698
  /**
648
699
  * Inserts the given element at the given index in the Vector.
649
700
  *
650
701
  * @complexity O(log(n))
651
- * @tsplus fluent fncts.Vector insertAt
702
+ * @tsplus pipeable fncts.Vector insertAt
652
703
  */
653
- export function insertAt_<A>(as: Vector<A>, index: number, element: A): Vector<A> {
654
- return as.slice(0, index).append(element).concat(as.slice(index, as.length));
704
+ export function insertAt<A>(index: number, element: A) {
705
+ return (self: Vector<A>): Vector<A> => {
706
+ return self.slice(0, index).append(element).concat(self.slice(index, self.length));
707
+ };
655
708
  }
656
709
 
657
710
  /**
658
711
  * Inserts the given Vector of elements at the given index in the Vector.
659
712
  *
660
713
  * @complexity `O(log(n))`
661
- * @tsplus fluent fncts.Vector insertAllAt
714
+ * @tsplus pipeable fncts.Vector insertAllAt
662
715
  */
663
- export function insertAllAt_<A>(as: Vector<A>, index: number, elements: Vector<A>): Vector<A> {
664
- return as.slice(0, index).concat(elements).concat(as.slice(index, as.length));
716
+ export function insertAllAt<A>(index: number, elements: Vector<A>) {
717
+ return (self: Vector<A>): Vector<A> => {
718
+ return self.slice(0, index).concat(elements).concat(self.slice(index, self.length));
719
+ };
665
720
  }
666
721
 
667
722
  /**
668
723
  * Inserts a separator between each element in a Vector.
669
724
  *
670
- * @tsplus fluent fncts.Vector intersperse
725
+ * @tsplus pipeable fncts.Vector intersperse
671
726
  */
672
- export function intersperse_<A>(as: Vector<A>, separator: A): Vector<A> {
673
- return (as.foldLeft(Vector.emptyPushable(), (l2, a) => l2.push(a).push(separator)) as Vector<A>).pop;
727
+ export function intersperse<A>(separator: A) {
728
+ return (self: Vector<A>): Vector<A> => {
729
+ return (self.foldLeft(Vector.emptyPushable(), (l2, a) => l2.push(a).push(separator)) as Vector<A>).pop;
730
+ };
674
731
  }
675
732
 
676
733
  /**
677
734
  * @tsplus fluent fncts.Vector isEmpty
678
735
  */
679
- export function isEmpty<A>(l: Vector<A>): boolean {
680
- return l.length === 0;
736
+ export function isEmpty<A>(self: Vector<A>): boolean {
737
+ return self.length === 0;
681
738
  }
682
739
 
683
740
  /**
684
741
  * @tsplus fluent fncts.Vector isNonEmpty
685
742
  */
686
- export function isNonEmpty<A>(l: Vector<A>): boolean {
687
- return l.length > 0;
743
+ export function isNonEmpty<A>(self: Vector<A>): boolean {
744
+ return self.length > 0;
688
745
  }
689
746
 
690
747
  /**
691
748
  * Concatenates the strings in the Vector separated by a specified separator.
692
749
  *
693
- * @tsplus fluent fncts.Vector join
750
+ * @tsplus pipeable fncts.Vector join
694
751
  */
695
- export function join_(as: Vector<string>, separator: string): string {
696
- return as.foldLeft("", (a, b) => (a.length === 0 ? b : a + separator + b));
752
+ export function join(separator: string) {
753
+ return (self: Vector<string>): string => {
754
+ return self.foldLeft("", (a, b) => (a.length === 0 ? b : a + separator + b));
755
+ };
697
756
  }
698
757
 
699
758
  /**
@@ -702,8 +761,8 @@ export function join_(as: Vector<string>, separator: string): string {
702
761
  * @complexity O(1)
703
762
  * @tsplus getter fncts.Vector last
704
763
  */
705
- export function last<A>(l: Vector<A>): Maybe<NonNullable<A>> {
706
- return Maybe.fromNullable(l.unsafeLast);
764
+ export function last<A>(self: Vector<A>): Maybe<NonNullable<A>> {
765
+ return Maybe.fromNullable(self.unsafeLast);
707
766
  }
708
767
 
709
768
  /**
@@ -711,12 +770,14 @@ export function last<A>(l: Vector<A>): Maybe<NonNullable<A>> {
711
770
  * to the given element. If no such element is found `-1` is returned.
712
771
  *
713
772
  * @complexity O(n)
714
- * @tsplus fluent fncts.Vector lastIndexOf
773
+ * @tsplus pipeable fncts.Vector lastIndexOf
715
774
  */
716
- export function lastIndexOf_<A>(as: Vector<A>, element: A): number {
717
- const state = { element, found: false, index: 0 };
718
- foldRightCb(indexOfCb, state, as);
719
- return state.found ? as.length - state.index : -1;
775
+ export function lastIndexOf<A>(element: A) {
776
+ return (self: Vector<A>): number => {
777
+ const state = { element, found: false, index: 0 };
778
+ foldRightCb(indexOfCb, state, self);
779
+ return state.found ? self.length - state.index : -1;
780
+ };
720
781
  }
721
782
 
722
783
  /**
@@ -735,14 +796,16 @@ export function makeBy<A>(n: number, f: (index: number) => A): Vector<A> {
735
796
  }
736
797
 
737
798
  /**
738
- * @tsplus fluent fncts.Vector mapAccum
799
+ * @tsplus pipeable fncts.Vector mapAccum
739
800
  */
740
- export function mapAccum_<A, S, B>(fa: Vector<A>, s: S, f: (s: S, a: A) => readonly [B, S]): readonly [Vector<B>, S] {
741
- return fa.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
742
- const r = f(s, a);
743
- acc.push(r[0]);
744
- return [acc, r[1]];
745
- });
801
+ export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
802
+ return (self: Vector<A>): readonly [Vector<B>, S] => {
803
+ return self.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
804
+ const r = f(s, a);
805
+ acc.push(r[0]);
806
+ return [acc, r[1]];
807
+ });
808
+ };
746
809
  }
747
810
 
748
811
  /**
@@ -750,10 +813,12 @@ export function mapAccum_<A, S, B>(fa: Vector<A>, s: S, f: (s: S, a: A) => reado
750
813
  * new Vector of the values that the function return.
751
814
  *
752
815
  * @complexity O(n)
753
- * @tsplus fluent fncts.Vector map
816
+ * @tsplus pipeable fncts.Vector map
754
817
  */
755
- export function map_<A, B>(fa: Vector<A>, f: (a: A) => B): Vector<B> {
756
- return fa.mapWithIndex((_, a) => f(a));
818
+ export function map<A, B>(f: (a: A) => B) {
819
+ return (self: Vector<A>): Vector<B> => {
820
+ return self.mapWithIndex((_, a) => f(a));
821
+ };
757
822
  }
758
823
 
759
824
  /**
@@ -761,24 +826,26 @@ export function map_<A, B>(fa: Vector<A>, f: (a: A) => B): Vector<B> {
761
826
  * new Vector of the values that the function return.
762
827
  *
763
828
  * @complexity O(n)
764
- * @tsplus fluent fncts.Vector mapWithIndex
829
+ * @tsplus pipeable fncts.Vector mapWithIndex
765
830
  */
766
- export function mapWithIndex_<A, B>(fa: Vector<A>, f: (i: number, a: A) => B): Vector<B> {
767
- return new Vector(
768
- fa.bits,
769
- fa.offset,
770
- fa.length,
771
- mapPrefix(f, fa.prefix, getPrefixSize(fa)),
772
- fa.root === undefined ? undefined : mapNode(f, fa.root, getDepth(fa), getPrefixSize(fa), 1)[0],
773
- mapAffix(f, fa.suffix, getSuffixSize(fa), fa.length),
774
- );
831
+ export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
832
+ return (self: Vector<A>): Vector<B> => {
833
+ return new Vector(
834
+ self.bits,
835
+ self.offset,
836
+ self.length,
837
+ mapPrefix(f, self.prefix, getPrefixSize(self)),
838
+ self.root === undefined ? undefined : mapNode(f, self.root, getDepth(self), getPrefixSize(self), 1)[0],
839
+ mapAffix(f, self.suffix, getSuffixSize(self), self.length),
840
+ );
841
+ };
775
842
  }
776
843
 
777
844
  /**
778
845
  * @tsplus getter fncts.Vector mutableClone
779
846
  */
780
- export function mutableClone<A>(as: Vector<A>): MutableVector<A> {
781
- return new Vector(as.bits, as.offset, as.length, as.prefix, as.root, as.suffix) as any;
847
+ export function mutableClone<A>(self: Vector<A>): MutableVector<A> {
848
+ return new Vector(self.bits, self.offset, self.length, self.prefix, self.root, self.suffix) as any;
782
849
  }
783
850
 
784
851
  /**
@@ -790,13 +857,15 @@ export function mutableClone<A>(as: Vector<A>): MutableVector<A> {
790
857
  *
791
858
  * @complexity `O(log(n))`
792
859
  *
793
- * @tsplus fluent fncts.Vector modifyAt
860
+ * @tsplus pipeable fncts.Vector modifyAt
794
861
  */
795
- export function modifyAt_<A>(as: Vector<A>, i: number, f: (a: A) => A): Vector<A> {
796
- if (i < 0 || as.length <= i) {
797
- return as;
798
- }
799
- return as.updateAt(i, f(as.unsafeGet(i)!));
862
+ export function modifyAt<A>(i: number, f: (a: A) => A) {
863
+ return (self: Vector<A>): Vector<A> => {
864
+ if (i < 0 || self.length <= i) {
865
+ return self;
866
+ }
867
+ return self.updateAt(i, f(self.unsafeGet(i)!));
868
+ };
800
869
  }
801
870
 
802
871
  /**
@@ -805,10 +874,12 @@ export function modifyAt_<A>(as: Vector<A>, i: number, f: (a: A) => A): Vector<A
805
874
  *
806
875
  * @complexity O(n)
807
876
  *
808
- * @tsplus fluent fncts.Vector none
877
+ * @tsplus pipeable fncts.Vector none
809
878
  */
810
- export function none_<A>(as: Vector<A>, predicate: Predicate<A>): boolean {
811
- return !as.exists(predicate);
879
+ export function none<A>(predicate: Predicate<A>) {
880
+ return (self: Vector<A>): boolean => {
881
+ return !self.some(predicate);
882
+ };
812
883
  }
813
884
 
814
885
  /**
@@ -828,8 +899,8 @@ export function pair<A>(first: A, second: A): Vector<A> {
828
899
  * @complexity `O(1)`
829
900
  * @tsplus getter fncts.Vector pop
830
901
  */
831
- export function pop<A>(as: Vector<A>): Vector<A> {
832
- return as.slice(0, -1);
902
+ export function pop<A>(self: Vector<A>): Vector<A> {
903
+ return self.slice(0, -1);
833
904
  }
834
905
 
835
906
  /**
@@ -837,35 +908,37 @@ export function pop<A>(as: Vector<A>): Vector<A> {
837
908
  *
838
909
  * @complexity O(1)
839
910
  *
840
- * @tsplus fluent fncts.Vector prepend
841
- */
842
- export function prepend_<A>(as: Vector<A>, a: A): Vector<A> {
843
- const prefixSize = getPrefixSize(as);
844
- if (prefixSize < 32) {
845
- return new Vector<A>(
846
- incrementPrefix(as.bits),
847
- as.offset,
848
- as.length + 1,
849
- affixPush(a, as.prefix, prefixSize),
850
- as.root,
851
- as.suffix,
852
- );
853
- } else {
854
- const newVector = mutableClone(as);
855
- prependNodeToTree(newVector, reverseArray(as.prefix));
856
- const newPrefix = [a];
857
- newVector.prefix = newPrefix;
858
- newVector.length++;
859
- newVector.bits = setPrefix(1, newVector.bits);
860
- return newVector;
861
- }
911
+ * @tsplus pipeable fncts.Vector prepend
912
+ */
913
+ export function prepend<A>(a: A) {
914
+ return (self: Vector<A>): Vector<A> => {
915
+ const prefixSize = getPrefixSize(self);
916
+ if (prefixSize < 32) {
917
+ return new Vector<A>(
918
+ incrementPrefix(self.bits),
919
+ self.offset,
920
+ self.length + 1,
921
+ affixPush(a, self.prefix, prefixSize),
922
+ self.root,
923
+ self.suffix,
924
+ );
925
+ } else {
926
+ const newVector = mutableClone(self);
927
+ prependNodeToTree(newVector, reverseArray(self.prefix));
928
+ const newPrefix = [a];
929
+ newVector.prefix = newPrefix;
930
+ newVector.length++;
931
+ newVector.bits = setPrefix(1, newVector.bits);
932
+ return newVector;
933
+ }
934
+ };
862
935
  }
863
936
 
864
937
  /**
865
938
  * @tsplus operator fncts.Vector +
866
939
  */
867
- export function prependOperator<A>(a: A, as: Vector<A>): Vector<A> {
868
- return as.prepend(a);
940
+ export function prependOperator<A>(a: A, self: Vector<A>): Vector<A> {
941
+ return self.prepend(a);
869
942
  }
870
943
 
871
944
  /**
@@ -889,10 +962,12 @@ export function range(start: number, end: number): Vector<number> {
889
962
  *
890
963
  * @complexity `O(log(n))`
891
964
  *
892
- * @tsplus fluent fncts.Vector remove
965
+ * @tsplus pipeable fncts.Vector remove
893
966
  */
894
- export function remove_<A>(as: Vector<A>, from: number, amount: number): Vector<A> {
895
- return as.slice(0, from).concat(as.slice(from + amount, as.length));
967
+ export function remove(from: number, amount: number) {
968
+ return <A>(self: Vector<A>): Vector<A> => {
969
+ return self.slice(0, from).concat(self.slice(from + amount, self.length));
970
+ };
896
971
  }
897
972
 
898
973
  /**
@@ -922,10 +997,12 @@ export function reverse<A>(self: Vector<A>): Vector<A> {
922
997
  * Folds a function over a Vector from left to right while collecting
923
998
  * all the intermediate steps in a resulting Vector.
924
999
  *
925
- * @tsplus fluent fncts.Vector scanLeft
1000
+ * @tsplus pipeable fncts.Vector scanLeft
926
1001
  */
927
- export function scanLeft_<A, B>(as: Vector<A>, initial: B, f: (acc: B, value: A) => B): Vector<B> {
928
- return as.foldLeft(emptyPushable<B>().push(initial), (l2, a) => l2.push(f((l2 as Vector<B>).unsafeLast!, a)));
1002
+ export function scanLeft<A, B>(initial: B, f: (acc: B, value: A) => B) {
1003
+ return (self: Vector<A>): Vector<B> => {
1004
+ return self.foldLeft(emptyPushable<B>().push(initial), (l2, a) => l2.push(f((l2 as Vector<B>).unsafeLast!, a)));
1005
+ };
929
1006
  }
930
1007
 
931
1008
  /**
@@ -944,123 +1021,119 @@ export function single<A>(a: A): Vector<A> {
944
1021
  * from the right end of the Vector.
945
1022
  *
946
1023
  * @complexity `O(log(n))`
947
- * @tsplus fluent fncts.Vector slice
948
- */
949
- export function slice_<A>(as: Vector<A>, from: number, to: number): Vector<A> {
950
- let { bits, length } = as;
951
- let _to = to;
952
- let _from = from;
953
- _to = Math.min(length, to);
954
- // Handle negative indices
955
- if (_from < 0) {
956
- _from = length + from;
957
- }
958
- if (_to < 0) {
959
- _to = length + to;
960
- }
961
-
962
- // Should we just return the empty Vector?
963
- if (_to <= _from || _to <= 0 || length <= _from) {
964
- return empty();
965
- }
966
-
967
- // Return Vector unchanged if we are slicing nothing off
968
- if (_from <= 0 && length <= _to) {
969
- return as;
970
- }
971
-
972
- const newLength = _to - _from;
973
- let prefixSize = getPrefixSize(as);
974
- const suffixSize = getSuffixSize(as);
975
-
976
- // Both indices lie in the prefix
977
- if (_to <= prefixSize) {
978
- return new Vector(
979
- setPrefix(newLength, 0),
980
- 0,
981
- newLength,
982
- as.prefix.slice(prefixSize - _to, prefixSize - _from),
983
- undefined,
984
- emptyAffix,
985
- );
986
- }
987
-
988
- const suffixStart = length - suffixSize;
989
- // Both indices lie in the suffix
990
- if (suffixStart <= _from) {
991
- return new Vector(
992
- setSuffix(newLength, 0),
993
- 0,
994
- newLength,
995
- emptyAffix,
996
- undefined,
997
- as.suffix.slice(_from - suffixStart, _to - suffixStart),
998
- );
999
- }
1000
-
1001
- const newVector = mutableClone(as);
1002
- newVector.length = newLength;
1003
-
1004
- // Both indices lie in the tree
1005
- if (prefixSize <= _from && _to <= suffixStart) {
1006
- sliceTreeVector(
1007
- _from - prefixSize + as.offset,
1008
- _to - prefixSize + as.offset - 1,
1009
- as.root!,
1010
- getDepth(as),
1011
- as.offset,
1012
- newVector,
1013
- );
1014
- return newVector;
1015
- }
1016
-
1017
- if (0 < _from) {
1018
- // we need _to slice something off of the left
1019
- if (_from < prefixSize) {
1020
- // shorten the prefix even though it's not strictly needed,
1021
- // so that referenced items can be GC'd
1022
- newVector.prefix = as.prefix.slice(0, prefixSize - _from);
1023
- bits = setPrefix(prefixSize - _from, bits);
1024
- } else {
1025
- // if we're here `_to` can't lie in the tree, so we can set the
1026
- // root
1027
- zeroOffset();
1028
- newVector.root = sliceLeft(newVector.root!, getDepth(as), _from - prefixSize, as.offset, true);
1029
- newVector.offset = newOffset;
1030
- if (newVector.root === undefined) {
1031
- bits = setDepth(0, bits);
1024
+ * @tsplus pipeable fncts.Vector slice
1025
+ */
1026
+ export function slice(from: number, to: number) {
1027
+ return <A>(self: Vector<A>): Vector<A> => {
1028
+ let { bits, length } = self;
1029
+ let _to = to;
1030
+ let _from = from;
1031
+ _to = Math.min(length, to);
1032
+ // Handle negative indices
1033
+ if (_from < 0) {
1034
+ _from = length + from;
1035
+ }
1036
+ if (_to < 0) {
1037
+ _to = length + to;
1038
+ }
1039
+ // Should we just return the empty Vector?
1040
+ if (_to <= _from || _to <= 0 || length <= _from) {
1041
+ return empty();
1042
+ }
1043
+ // Return Vector unchanged if we are slicing nothing off
1044
+ if (_from <= 0 && length <= _to) {
1045
+ return self;
1046
+ }
1047
+ const newLength = _to - _from;
1048
+ let prefixSize = getPrefixSize(self);
1049
+ const suffixSize = getSuffixSize(self);
1050
+ // Both indices lie in the prefix
1051
+ if (_to <= prefixSize) {
1052
+ return new Vector(
1053
+ setPrefix(newLength, 0),
1054
+ 0,
1055
+ newLength,
1056
+ self.prefix.slice(prefixSize - _to, prefixSize - _from),
1057
+ undefined,
1058
+ emptyAffix,
1059
+ );
1060
+ }
1061
+ const suffixStart = length - suffixSize;
1062
+ // Both indices lie in the suffix
1063
+ if (suffixStart <= _from) {
1064
+ return new Vector(
1065
+ setSuffix(newLength, 0),
1066
+ 0,
1067
+ newLength,
1068
+ emptyAffix,
1069
+ undefined,
1070
+ self.suffix.slice(_from - suffixStart, _to - suffixStart),
1071
+ );
1072
+ }
1073
+ const newVector = mutableClone(self);
1074
+ newVector.length = newLength;
1075
+ // Both indices lie in the tree
1076
+ if (prefixSize <= _from && _to <= suffixStart) {
1077
+ sliceTreeVector(
1078
+ _from - prefixSize + self.offset,
1079
+ _to - prefixSize + self.offset - 1,
1080
+ self.root!,
1081
+ getDepth(self),
1082
+ self.offset,
1083
+ newVector,
1084
+ );
1085
+ return newVector;
1086
+ }
1087
+ if (0 < _from) {
1088
+ // we need _to slice something off of the left
1089
+ if (_from < prefixSize) {
1090
+ // shorten the prefix even though it's not strictly needed,
1091
+ // so that referenced items can be GC'd
1092
+ newVector.prefix = self.prefix.slice(0, prefixSize - _from);
1093
+ bits = setPrefix(prefixSize - _from, bits);
1094
+ } else {
1095
+ // if we're here `_to` can't lie in the tree, so we can set the
1096
+ // root
1097
+ zeroOffset();
1098
+ newVector.root = sliceLeft(newVector.root!, getDepth(self), _from - prefixSize, self.offset, true);
1099
+ newVector.offset = newOffset;
1100
+ if (newVector.root === undefined) {
1101
+ bits = setDepth(0, bits);
1102
+ }
1103
+ bits = setPrefix(newAffix.length, bits);
1104
+ prefixSize = newAffix.length;
1105
+ newVector.prefix = newAffix;
1032
1106
  }
1033
- bits = setPrefix(newAffix.length, bits);
1034
- prefixSize = newAffix.length;
1035
- newVector.prefix = newAffix;
1036
1107
  }
1037
- }
1038
- if (_to < length) {
1039
- // we need _to slice something off of the right
1040
- if (length - _to < suffixSize) {
1041
- bits = setSuffix(suffixSize - (length - _to), bits);
1042
- // slice the suffix even though it's not strictly needed,
1043
- // _to allow the removed items _to be GC'd
1044
- newVector.suffix = as.suffix.slice(0, suffixSize - (length - _to));
1045
- } else {
1046
- newVector.root = sliceRight(newVector.root!, getDepth(as), _to - prefixSize - 1, newVector.offset);
1047
- if (newVector.root === undefined) {
1048
- bits = setDepth(0, bits);
1049
- newVector.offset = 0;
1108
+ if (_to < length) {
1109
+ // we need _to slice something off of the right
1110
+ if (length - _to < suffixSize) {
1111
+ bits = setSuffix(suffixSize - (length - _to), bits);
1112
+ // slice the suffix even though it's not strictly needed,
1113
+ // _to allow the removed items _to be GC'd
1114
+ newVector.suffix = self.suffix.slice(0, suffixSize - (length - _to));
1115
+ } else {
1116
+ newVector.root = sliceRight(newVector.root!, getDepth(self), _to - prefixSize - 1, newVector.offset);
1117
+ if (newVector.root === undefined) {
1118
+ bits = setDepth(0, bits);
1119
+ newVector.offset = 0;
1120
+ }
1121
+ bits = setSuffix(newAffix.length, bits);
1122
+ newVector.suffix = newAffix;
1050
1123
  }
1051
- bits = setSuffix(newAffix.length, bits);
1052
- newVector.suffix = newAffix;
1053
1124
  }
1054
- }
1055
- newVector.bits = bits;
1056
- return newVector;
1125
+ newVector.bits = bits;
1126
+ return newVector;
1127
+ };
1057
1128
  }
1058
1129
 
1059
1130
  /**
1060
- * @tsplus fluent fncts.Vector sort
1131
+ * @tsplus pipeable fncts.Vector sort
1061
1132
  */
1062
- export function sort_<A>(self: Vector<A>, /** @tsplus auto */ O: Ord<A>): Vector<A> {
1063
- return self.sortWith(O.compare);
1133
+ export function sort<A>(/** @tsplus auto */ O: Ord<A>) {
1134
+ return (self: Vector<A>): Vector<A> => {
1135
+ return self.sortWith((a, b) => O.compare(b)(a));
1136
+ };
1064
1137
  }
1065
1138
 
1066
1139
  /**
@@ -1072,21 +1145,26 @@ export function sort_<A>(self: Vector<A>, /** @tsplus auto */ O: Ord<A>): Vector
1072
1145
  *
1073
1146
  * @complexity O(n * log(n))
1074
1147
  *
1075
- * @tsplus fluent fncts.Vector sortWith
1076
- */
1077
- export function sortWith_<A>(as: Vector<A>, compare: (a: A, b: A) => Ordering): Vector<A> {
1078
- const arr: { idx: number; elm: A }[] = [];
1079
- let i = 0;
1080
- as.forEach((elm) => arr.push({ idx: i++, elm }));
1081
- arr.sort(({ elm: a, idx: i }, { elm: b, idx: j }) => {
1082
- const c = compare(a, b);
1083
- return c !== 0 ? c : i < j ? -1 : 1;
1084
- });
1085
- const newL = emptyPushable<A>();
1086
- for (let i = 0; i < arr.length; ++i) {
1087
- newL.push(arr[i]!.elm);
1088
- }
1089
- return newL;
1148
+ * @tsplus pipeable fncts.Vector sortWith
1149
+ */
1150
+ export function sortWith<A>(compare: (a: A, b: A) => Ordering) {
1151
+ return (self: Vector<A>): Vector<A> => {
1152
+ const arr: {
1153
+ idx: number;
1154
+ elm: A;
1155
+ }[] = [];
1156
+ let i = 0;
1157
+ self.forEach((elm) => arr.push({ idx: i++, elm }));
1158
+ arr.sort(({ elm: a, idx: i }, { elm: b, idx: j }) => {
1159
+ const c = compare(a, b);
1160
+ return c !== 0 ? c : i < j ? -1 : 1;
1161
+ });
1162
+ const newL = emptyPushable<A>();
1163
+ for (let i = 0; i < arr.length; ++i) {
1164
+ newL.push(arr[i]!.elm);
1165
+ }
1166
+ return newL;
1167
+ };
1090
1168
  }
1091
1169
 
1092
1170
  /**
@@ -1097,10 +1175,12 @@ export function sortWith_<A>(as: Vector<A>, compare: (a: A, b: A) => Ordering):
1097
1175
  *
1098
1176
  * @complexity `O(log(n))`
1099
1177
  *
1100
- * @tsplus fluent fncts.Vector splitAt
1178
+ * @tsplus pipeable fncts.Vector splitAt
1101
1179
  */
1102
- export function splitAt_<A>(as: Vector<A>, index: number): [Vector<A>, Vector<A>] {
1103
- return [as.slice(0, index), as.slice(index, as.length)];
1180
+ export function splitAt(index: number) {
1181
+ return <A>(self: Vector<A>): [Vector<A>, Vector<A>] => {
1182
+ return [self.slice(0, index), self.slice(index, self.length)];
1183
+ };
1104
1184
  }
1105
1185
 
1106
1186
  /**
@@ -1109,11 +1189,13 @@ export function splitAt_<A>(as: Vector<A>, index: number): [Vector<A>, Vector<A>
1109
1189
  *
1110
1190
  * @complexity `O(n)`
1111
1191
  *
1112
- * @tsplus fluent fncts.Vector splitWhen
1192
+ * @tsplus pipeable fncts.Vector splitWhen
1113
1193
  */
1114
- export function splitWhen_<A>(as: Vector<A>, predicate: Predicate<A>): [Vector<A>, Vector<A>] {
1115
- const idx = as.findIndex(predicate);
1116
- return idx === -1 ? [as, Vector.empty()] : as.splitAt(idx);
1194
+ export function splitWhen<A>(predicate: Predicate<A>) {
1195
+ return (self: Vector<A>): [Vector<A>, Vector<A>] => {
1196
+ const idx = self.findIndex(predicate);
1197
+ return idx === -1 ? [self, Vector.empty()] : self.splitAt(idx);
1198
+ };
1117
1199
  }
1118
1200
 
1119
1201
  /**
@@ -1124,18 +1206,20 @@ export function splitWhen_<A>(as: Vector<A>, predicate: Predicate<A>): [Vector<A
1124
1206
  *
1125
1207
  * @tsplus getter fncts.Vector tail
1126
1208
  */
1127
- export function tail<A>(as: Vector<A>): Vector<A> {
1128
- return as.slice(1, as.length);
1209
+ export function tail<A>(self: Vector<A>): Vector<A> {
1210
+ return self.slice(1, self.length);
1129
1211
  }
1130
1212
 
1131
1213
  /**
1132
1214
  * Takes the first `n` elements from a Vector and returns them in a new Vector.
1133
1215
  *
1134
1216
  * @complexity `O(log(n))`
1135
- * @tsplus fluent fncts.Vector take
1217
+ * @tsplus pipeable fncts.Vector take
1136
1218
  */
1137
- export function take_<A>(as: Vector<A>, n: number): Vector<A> {
1138
- return as.slice(0, n);
1219
+ export function take(n: number) {
1220
+ return <A>(self: Vector<A>): Vector<A> => {
1221
+ return self.slice(0, n);
1222
+ };
1139
1223
  }
1140
1224
 
1141
1225
  /**
@@ -1145,11 +1229,13 @@ export function take_<A>(as: Vector<A>, n: number): Vector<A> {
1145
1229
  * @complexity `O(k + log(n))` where `k` is the number of elements satisfying
1146
1230
  * the predicate.
1147
1231
  *
1148
- * @tsplus fluent fncts.Vector takeWhile
1232
+ * @tsplus pipeable fncts.Vector takeWhile
1149
1233
  */
1150
- export function takeWhile_<A>(as: Vector<A>, predicate: Predicate<A>): Vector<A> {
1151
- const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, as);
1152
- return as.slice(0, index);
1234
+ export function takeWhile<A>(predicate: Predicate<A>) {
1235
+ return (self: Vector<A>): Vector<A> => {
1236
+ const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
1237
+ return self.slice(0, index);
1238
+ };
1153
1239
  }
1154
1240
 
1155
1241
  /**
@@ -1157,10 +1243,12 @@ export function takeWhile_<A>(as: Vector<A>, predicate: Predicate<A>): Vector<A>
1157
1243
  * Vector.
1158
1244
  *
1159
1245
  * @complexity `O(log(n))`
1160
- * @tsplus fluent fncts.Vector takeLast
1246
+ * @tsplus pipeable fncts.Vector takeLast
1161
1247
  */
1162
- export function takeLast_<A>(as: Vector<A>, n: number): Vector<A> {
1163
- return as.slice(as.length - n, as.length);
1248
+ export function takeLast(n: number) {
1249
+ return <A>(self: Vector<A>): Vector<A> => {
1250
+ return self.slice(self.length - n, self.length);
1251
+ };
1164
1252
  }
1165
1253
 
1166
1254
  /**
@@ -1170,11 +1258,13 @@ export function takeLast_<A>(as: Vector<A>, n: number): Vector<A> {
1170
1258
  * @complexity `O(k + log(n))` where `k` is the number of elements
1171
1259
  * satisfying the predicate.
1172
1260
  *
1173
- * @tsplus fluent fncts.Vector takeLastWhile
1261
+ * @tsplus pipeable fncts.Vector takeLastWhile
1174
1262
  */
1175
- export function takeLastWhile_<A>(as: Vector<A>, predicate: Predicate<A>): Vector<A> {
1176
- const { index } = foldRightCb(findNotIndexCb, { predicate, index: 0 }, as);
1177
- return as.slice(as.length - index, as.length);
1263
+ export function takeLastWhile<A>(predicate: Predicate<A>) {
1264
+ return (self: Vector<A>): Vector<A> => {
1265
+ const { index } = foldRightCb(findNotIndexCb, { predicate, index: 0 }, self);
1266
+ return self.slice(self.length - index, self.length);
1267
+ };
1178
1268
  }
1179
1269
 
1180
1270
  /**
@@ -1204,19 +1294,42 @@ export function toList<A>(self: Vector<A>): List<A> {
1204
1294
  /**
1205
1295
  * @tsplus getter fncts.Vector traverseWithIndex
1206
1296
  */
1207
- export const traverseWithIndex = TraversableWithIndex.makeTraverseWithIndex<VectorF>()(() => (self) => (G) => (f) => {
1208
- return self.foldLeftWithIndex(G.pure(Vector.emptyPushable()), (i, b, a) =>
1209
- G.zipWith(b, f(i, a), (v, b) => {
1210
- push(v, b);
1211
- return v;
1212
- }),
1213
- );
1214
- });
1297
+ export function _traverseWithIndex<A>(
1298
+ self: Vector<A>,
1299
+ ): <G extends HKT, GC = HKT.None>(
1300
+ G: P.Applicative<G, GC>,
1301
+ ) => <K, Q, W, X, I, S, R, E, B>(
1302
+ f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1303
+ ) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>>;
1304
+ export function _traverseWithIndex<A>(
1305
+ self: Vector<A>,
1306
+ ): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, Vector<B>> {
1307
+ return (G) => (f) =>
1308
+ self.foldLeftWithIndex(G.pure(Vector.emptyPushable()), (i, b, a) =>
1309
+ b.pipe(
1310
+ G.zipWith(f(i, a), (v, b) => {
1311
+ v.push(b);
1312
+ return v;
1313
+ }),
1314
+ ),
1315
+ );
1316
+ }
1215
1317
 
1216
1318
  /**
1217
1319
  * @tsplus getter fncts.Vector traverse
1218
1320
  */
1219
- export const traverse: Traversable<VectorF>["traverse"] = (self) => (G) => (f) =>
1321
+ export function _traverse<A>(self: Vector<A>) {
1322
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1323
+ <K, Q, W, X, I, S, R, E, B>(
1324
+ f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1325
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>> =>
1326
+ self.traverseWithIndex(G)((_, a) => f(a));
1327
+ }
1328
+
1329
+ export const traverseWithIndex: P.TraversableWithIndex<VectorF>["traverseWithIndex"] = (G) => (f) => (self) =>
1330
+ self.traverseWithIndex(G)(f);
1331
+
1332
+ export const traverse: Traversable<VectorF>["traverse"] = (G) => (f) => (self) =>
1220
1333
  self.traverseWithIndex(G)((_, a) => f(a));
1221
1334
 
1222
1335
  /**
@@ -1224,10 +1337,10 @@ export const traverse: Traversable<VectorF>["traverse"] = (self) => (G) => (f) =
1224
1337
  * Eq instance to determine when elements are equal
1225
1338
  *
1226
1339
  * @complexity `O(n)`
1227
- * @tsplus getter fncts.Vector uniq
1340
+ * @tsplus pipeable fncts.Vector uniq
1228
1341
  */
1229
- export function uniq<A>(as: Vector<A>) {
1230
- return (E: Eq<A>) => as.dropRepeatsWith(E.equals);
1342
+ export function uniq<A>(E: Eq<A>) {
1343
+ return (self: Vector<A>) => self.dropRepeatsWith((a, b) => E.equals(b)(a));
1231
1344
  }
1232
1345
 
1233
1346
  /**
@@ -1264,10 +1377,12 @@ function findCb<A>(value: A, state: PredState): boolean {
1264
1377
  * If no such element is found the function returns `undefined`.
1265
1378
  *
1266
1379
  * @complexity O(n)
1267
- * @tsplus fluent fncts.Vector unsafeFind
1380
+ * @tsplus pipeable fncts.Vector unsafeFind
1268
1381
  */
1269
- export function unsafeFind_<A>(as: Vector<A>, predicate: Predicate<A>): A | undefined {
1270
- return foldLeftCb<A, PredState>(findCb, { predicate, result: undefined }, as).result;
1382
+ export function unsafeFind<A>(predicate: Predicate<A>) {
1383
+ return (self: Vector<A>): A | undefined => {
1384
+ return foldLeftCb<A, PredState>(findCb, { predicate, result: undefined }, self).result;
1385
+ };
1271
1386
  }
1272
1387
 
1273
1388
  /**
@@ -1275,10 +1390,12 @@ export function unsafeFind_<A>(as: Vector<A>, predicate: Predicate<A>): A | unde
1275
1390
  * If no such element is found the function returns `undefined`.
1276
1391
  *
1277
1392
  * @complexity O(n)
1278
- * @tsplus fluent fncts.Vector unsafeFindLast
1393
+ * @tsplus pipeable fncts.Vector unsafeFindLast
1279
1394
  */
1280
- export function unsafeFindLast_<A>(as: Vector<A>, predicate: Predicate<A>): A | undefined {
1281
- return foldRightCb<A, PredState>(findCb, { predicate, result: undefined }, as).result;
1395
+ export function unsafeFindLast<A>(predicate: Predicate<A>) {
1396
+ return (self: Vector<A>): A | undefined => {
1397
+ return foldRightCb<A, PredState>(findCb, { predicate, result: undefined }, self).result;
1398
+ };
1282
1399
  }
1283
1400
 
1284
1401
  /**
@@ -1286,24 +1403,31 @@ export function unsafeFindLast_<A>(as: Vector<A>, predicate: Predicate<A>): A |
1286
1403
  * `undefined` is returned.
1287
1404
  *
1288
1405
  * @complexity O(log(n))
1289
- * @tsplus fluent fncts.Vector unsafeGet
1406
+ * @tsplus pipeable fncts.Vector unsafeGet
1407
+ * @tsplus pipeable-index fncts.Vector
1290
1408
  */
1291
- export function unsafeGet_<A>(l: Vector<A>, index: number): A | undefined {
1292
- if (index < 0 || l.length <= index) {
1293
- return undefined;
1294
- }
1295
- const prefixSize = getPrefixSize(l);
1296
- const suffixSize = getSuffixSize(l);
1297
- if (index < prefixSize) {
1298
- return l.prefix[prefixSize - index - 1];
1299
- } else if (index >= l.length - suffixSize) {
1300
- return l.suffix[index - (l.length - suffixSize)];
1301
- }
1302
- const { offset } = l;
1303
- const depth = getDepth(l);
1304
- return l.root!.sizes === undefined
1305
- ? nodeNthDense(l.root!, depth, offset === 0 ? index - prefixSize : handleOffset(depth, offset, index - prefixSize))
1306
- : nodeNth(l.root!, depth, offset, index - prefixSize);
1409
+ export function unsafeGet(index: number) {
1410
+ return <A>(self: Vector<A>): A | undefined => {
1411
+ if (index < 0 || self.length <= index) {
1412
+ return undefined;
1413
+ }
1414
+ const prefixSize = getPrefixSize(self);
1415
+ const suffixSize = getSuffixSize(self);
1416
+ if (index < prefixSize) {
1417
+ return self.prefix[prefixSize - index - 1];
1418
+ } else if (index >= self.length - suffixSize) {
1419
+ return self.suffix[index - (self.length - suffixSize)];
1420
+ }
1421
+ const { offset } = self;
1422
+ const depth = getDepth(self);
1423
+ return self.root!.sizes === undefined
1424
+ ? nodeNthDense(
1425
+ self.root!,
1426
+ depth,
1427
+ offset === 0 ? index - prefixSize : handleOffset(depth, offset, index - prefixSize),
1428
+ )
1429
+ : nodeNth(self.root!, depth, offset, index - prefixSize);
1430
+ };
1307
1431
  }
1308
1432
 
1309
1433
  /**
@@ -1313,9 +1437,9 @@ export function unsafeGet_<A>(l: Vector<A>, index: number): A | undefined {
1313
1437
  * @complexity O(1)
1314
1438
  * @tsplus getter fncts.Vector unsafeHead
1315
1439
  */
1316
- export function unsafeHead<A>(l: Vector<A>): A | undefined {
1317
- const prefixSize = getPrefixSize(l);
1318
- return prefixSize !== 0 ? l.prefix[prefixSize - 1] : l.length !== 0 ? l.suffix[0] : undefined;
1440
+ export function unsafeHead<A>(self: Vector<A>): A | undefined {
1441
+ const prefixSize = getPrefixSize(self);
1442
+ return prefixSize !== 0 ? self.prefix[prefixSize - 1] : self.length !== 0 ? self.suffix[0] : undefined;
1319
1443
  }
1320
1444
 
1321
1445
  /**
@@ -1325,9 +1449,9 @@ export function unsafeHead<A>(l: Vector<A>): A | undefined {
1325
1449
  * @complexity O(1)
1326
1450
  * @tsplus getter fncts.Vector unsafeLast
1327
1451
  */
1328
- export function unsafeLast<A>(l: Vector<A>): A | undefined {
1329
- const suffixSize = getSuffixSize(l);
1330
- return suffixSize !== 0 ? l.suffix[suffixSize - 1] : l.length !== 0 ? l.prefix[0] : undefined;
1452
+ export function unsafeLast<A>(self: Vector<A>): A | undefined {
1453
+ const suffixSize = getSuffixSize(self);
1454
+ return suffixSize !== 0 ? self.suffix[suffixSize - 1] : self.length !== 0 ? self.prefix[0] : undefined;
1331
1455
  }
1332
1456
 
1333
1457
  /**
@@ -1336,27 +1460,29 @@ export function unsafeLast<A>(l: Vector<A>): A | undefined {
1336
1460
  * If the index is out of bounds the given Vector is returned unchanged.
1337
1461
  *
1338
1462
  * @complexity O(log(n))
1339
- * @tsplus fluent fncts.Vector updateAt
1463
+ * @tsplus pipeable fncts.Vector updateAt
1340
1464
  */
1341
- export function updateAt_<A>(as: Vector<A>, i: number, a: A): Vector<A> {
1342
- if (i < 0 || as.length <= i) {
1343
- return as;
1344
- }
1345
- const prefixSize = getPrefixSize(as);
1346
- const suffixSize = getSuffixSize(as);
1347
- const newVector = mutableClone(as);
1348
- if (i < prefixSize) {
1349
- const newPrefix = copyArray(newVector.prefix);
1350
- newPrefix[newPrefix.length - i - 1] = a;
1351
- newVector.prefix = newPrefix;
1352
- } else if (i >= as.length - suffixSize) {
1353
- const newSuffix = copyArray(newVector.suffix);
1354
- newSuffix[i - (as.length - suffixSize)] = a;
1355
- newVector.suffix = newSuffix;
1356
- } else {
1357
- newVector.root = updateNode(as.root!, getDepth(as), i - prefixSize, as.offset, a);
1358
- }
1359
- return newVector;
1465
+ export function updateAt<A>(i: number, a: A) {
1466
+ return (self: Vector<A>): Vector<A> => {
1467
+ if (i < 0 || self.length <= i) {
1468
+ return self;
1469
+ }
1470
+ const prefixSize = getPrefixSize(self);
1471
+ const suffixSize = getSuffixSize(self);
1472
+ const newVector = mutableClone(self);
1473
+ if (i < prefixSize) {
1474
+ const newPrefix = copyArray(newVector.prefix);
1475
+ newPrefix[newPrefix.length - i - 1] = a;
1476
+ newVector.prefix = newPrefix;
1477
+ } else if (i >= self.length - suffixSize) {
1478
+ const newSuffix = copyArray(newVector.suffix);
1479
+ newSuffix[i - (self.length - suffixSize)] = a;
1480
+ newVector.suffix = newSuffix;
1481
+ } else {
1482
+ newVector.root = updateNode(self.root!, getDepth(self), i - prefixSize, self.offset, a);
1483
+ }
1484
+ return newVector;
1485
+ };
1360
1486
  }
1361
1487
 
1362
1488
  /**