@fncts/base 0.0.20 → 0.0.21

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