@fncts/base 0.0.39 → 0.0.41

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 (722) hide show
  1. package/_cjs/collection/AsyncIterable/api.cjs +384 -0
  2. package/_cjs/collection/AsyncIterable/api.cjs.map +1 -0
  3. package/_cjs/collection/AsyncIterable/definition.cjs +2 -0
  4. package/_cjs/collection/AsyncIterable/definition.cjs.map +1 -0
  5. package/_cjs/collection/{compat/Array.cjs → AsyncIterable.cjs} +3 -3
  6. package/_cjs/collection/AsyncIterable.cjs.map +1 -0
  7. package/_cjs/collection/Iterable/api/traverseConc.cjs +1 -2
  8. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  9. package/_cjs/collection/Iterable/api.cjs +180 -137
  10. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  11. package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
  12. package/_cjs/collection/compat/ArrayLike/api.cjs +1 -2
  13. package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
  14. package/_cjs/collection/compat/ArrayLike/definition.cjs +0 -4
  15. package/_cjs/collection/compat/Map/definition.cjs +0 -4
  16. package/_cjs/collection/compat/Set/definition.cjs +0 -4
  17. package/_cjs/collection/compat.cjs +0 -4
  18. package/_cjs/collection/immutable/Conc/api/makeBy.cjs +1 -2
  19. package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
  20. package/_cjs/collection/immutable/Conc/api/replicate.cjs +1 -2
  21. package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
  22. package/_cjs/collection/immutable/Conc/api.cjs +1 -2
  23. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  24. package/_cjs/collection/immutable/Conc/constructors.cjs +3 -4
  25. package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
  26. package/_cjs/collection/immutable/Conc/definition.cjs +3 -3
  27. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  28. package/_cjs/collection/immutable/Dictionary/api.cjs +1 -2
  29. package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
  30. package/_cjs/collection/immutable/Dictionary/definition.cjs +1 -2
  31. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  32. package/_cjs/collection/immutable/HashMap/api.cjs +1 -2
  33. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  34. package/_cjs/collection/immutable/HashMap/definition.cjs +1 -2
  35. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  36. package/_cjs/collection/immutable/HashMap/internal.cjs +1 -2
  37. package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
  38. package/_cjs/collection/immutable/HashSet/api.cjs +1 -2
  39. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  40. package/_cjs/collection/immutable/HashSet/definition.cjs +1 -2
  41. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  42. package/_cjs/collection/immutable/List/api/foldLeft.cjs +1 -2
  43. package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
  44. package/_cjs/collection/immutable/List/api/unsafeTail.cjs +1 -2
  45. package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
  46. package/_cjs/collection/immutable/List/api.cjs +3 -4
  47. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  48. package/_cjs/collection/immutable/List/constructors.cjs +1 -2
  49. package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
  50. package/_cjs/collection/immutable/List/definition.cjs +1 -2
  51. package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
  52. package/_cjs/collection/immutable/Queue/api.cjs +1 -2
  53. package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
  54. package/_cjs/collection/immutable/Queue/constructors.cjs +1 -2
  55. package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
  56. package/_cjs/collection/immutable/Queue/definition.cjs +1 -2
  57. package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
  58. package/_cjs/collection/immutable/Queue/guards.cjs +1 -2
  59. package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
  60. package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs +18 -0
  61. package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs.map +1 -0
  62. package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs +15 -0
  63. package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs.map +1 -0
  64. package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs +26 -0
  65. package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs.map +1 -0
  66. package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api.cjs +562 -538
  67. package/_cjs/collection/immutable/ReadonlyArray/api.cjs.map +1 -0
  68. package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs +55 -0
  69. package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs.map +1 -0
  70. package/_cjs/collection/immutable/ReadonlyArray/definition.cjs.map +1 -0
  71. package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.cjs +5 -7
  72. package/_cjs/collection/immutable/ReadonlyArray/instances.cjs.map +1 -0
  73. package/_cjs/collection/immutable/{ImmutableArray.cjs → ReadonlyArray.cjs} +8 -19
  74. package/_cjs/collection/immutable/ReadonlyArray.cjs.map +1 -0
  75. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs +472 -0
  76. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs.map +1 -0
  77. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs +79 -0
  78. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs.map +1 -0
  79. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs +2 -0
  80. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs.map +1 -0
  81. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs +49 -0
  82. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs.map +1 -0
  83. package/_cjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.cjs +3 -4
  84. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/instances.cjs.map +1 -0
  85. package/_cjs/collection/immutable/{ImmutableNonEmptyArray.cjs → ReadonlyNonEmptyArray.cjs} +6 -6
  86. package/_cjs/collection/immutable/ReadonlyNonEmptyArray.cjs.map +1 -0
  87. package/_cjs/collection/immutable/RoseTree/api.cjs +1 -2
  88. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
  89. package/_cjs/collection/immutable/RoseTree/definition.cjs +1 -2
  90. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  91. package/_cjs/collection/immutable/SortedMap/api.cjs +1 -2
  92. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  93. package/_cjs/collection/immutable/SortedMap/iterator.cjs +1 -2
  94. package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
  95. package/_cjs/collection/immutable/Vector/api.cjs +229 -230
  96. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  97. package/_cjs/collection/immutable/Vector/definition.cjs +1 -2
  98. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  99. package/_cjs/collection/immutable.cjs +0 -4
  100. package/_cjs/collection/internal.cjs +0 -4
  101. package/_cjs/collection/mutable/ArrayDeque.cjs +1 -2
  102. package/_cjs/collection/mutable/ArrayDeque.cjs.map +1 -1
  103. package/_cjs/collection/mutable/HashMap.cjs +1 -2
  104. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  105. package/_cjs/collection/mutable/HashSet.cjs +1 -2
  106. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  107. package/_cjs/collection/mutable/ListBuffer.cjs +1 -2
  108. package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
  109. package/_cjs/collection/mutable.cjs +0 -4
  110. package/_cjs/collection/weak/IterableWeakMap.cjs +1 -2
  111. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  112. package/_cjs/collection/weak.cjs +0 -4
  113. package/_cjs/collection.cjs +0 -4
  114. package/_cjs/control/Eval/api.cjs +89 -41
  115. package/_cjs/control/Eval/api.cjs.map +1 -1
  116. package/_cjs/control/Eval/constructors.cjs +5 -1
  117. package/_cjs/control/Eval/constructors.cjs.map +1 -1
  118. package/_cjs/control/Eval/instance.cjs +1 -2
  119. package/_cjs/control/Eval/instance.cjs.map +1 -1
  120. package/_cjs/control/Eval/run.cjs +1 -2
  121. package/_cjs/control/Eval/run.cjs.map +1 -1
  122. package/_cjs/control/Pure/api.cjs +1 -2
  123. package/_cjs/control/Pure/api.cjs.map +1 -1
  124. package/_cjs/control/Pure/definition.cjs +1 -2
  125. package/_cjs/control/Pure/definition.cjs.map +1 -1
  126. package/_cjs/control/Pure/instances.cjs +1 -2
  127. package/_cjs/control/Pure/instances.cjs.map +1 -1
  128. package/_cjs/control/Pure/runtime.cjs +15 -10
  129. package/_cjs/control/Pure/runtime.cjs.map +1 -1
  130. package/_cjs/control.cjs +0 -4
  131. package/_cjs/data/Byte.cjs +0 -4
  132. package/_cjs/data/CaseClass.cjs +11 -14
  133. package/_cjs/data/CaseClass.cjs.map +1 -1
  134. package/_cjs/data/Cause/api/fold.cjs +33 -34
  135. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  136. package/_cjs/data/Cause/api/isEmpty.cjs +1 -2
  137. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  138. package/_cjs/data/Cause/api/linearize.cjs +1 -2
  139. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  140. package/_cjs/data/Cause/api/prettyPrint.cjs +1 -2
  141. package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
  142. package/_cjs/data/Cause/api/unified.cjs +1 -2
  143. package/_cjs/data/Cause/api/unified.cjs.map +1 -1
  144. package/_cjs/data/Cause/api.cjs +1 -2
  145. package/_cjs/data/Cause/api.cjs.map +1 -1
  146. package/_cjs/data/Cause/definition.cjs +1 -2
  147. package/_cjs/data/Cause/definition.cjs.map +1 -1
  148. package/_cjs/data/Const/api.cjs +7 -7
  149. package/_cjs/data/Const/api.cjs.map +1 -1
  150. package/_cjs/data/Const/instances.cjs +12 -13
  151. package/_cjs/data/Const/instances.cjs.map +1 -1
  152. package/_cjs/data/Data.cjs +1 -2
  153. package/_cjs/data/Data.cjs.map +1 -1
  154. package/_cjs/data/Date/definition.cjs +0 -4
  155. package/_cjs/data/Datum/api.cjs +110 -113
  156. package/_cjs/data/Datum/api.cjs.map +1 -1
  157. package/_cjs/data/Datum/definition.cjs +1 -2
  158. package/_cjs/data/Datum/definition.cjs.map +1 -1
  159. package/_cjs/data/Datum/instances.cjs +1 -2
  160. package/_cjs/data/Datum/instances.cjs.map +1 -1
  161. package/_cjs/data/Datum.cjs +39 -0
  162. package/_cjs/data/Datum.cjs.map +1 -0
  163. package/_cjs/data/DatumEither/api.cjs +56 -57
  164. package/_cjs/data/DatumEither/api.cjs.map +1 -1
  165. package/_cjs/data/Duration/api.cjs +1 -2
  166. package/_cjs/data/Duration/api.cjs.map +1 -1
  167. package/_cjs/data/Duration/definition.cjs +1 -2
  168. package/_cjs/data/Duration/definition.cjs.map +1 -1
  169. package/_cjs/data/Either/api/align.cjs +1 -2
  170. package/_cjs/data/Either/api/align.cjs.map +1 -1
  171. package/_cjs/data/Either/api/alignWith.cjs +1 -2
  172. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  173. package/_cjs/data/Either/api.cjs +53 -55
  174. package/_cjs/data/Either/api.cjs.map +1 -1
  175. package/_cjs/data/Either/constructors.cjs +21 -22
  176. package/_cjs/data/Either/constructors.cjs.map +1 -1
  177. package/_cjs/data/Either/definition.cjs +1 -2
  178. package/_cjs/data/Either/definition.cjs.map +1 -1
  179. package/_cjs/data/Either/instances.cjs +1 -2
  180. package/_cjs/data/Either/instances.cjs.map +1 -1
  181. package/_cjs/data/EitherT/api.cjs +28 -29
  182. package/_cjs/data/EitherT/api.cjs.map +1 -1
  183. package/_cjs/data/Environment/api.cjs +1 -2
  184. package/_cjs/data/Environment/api.cjs.map +1 -1
  185. package/_cjs/data/Environment/definition.cjs +1 -2
  186. package/_cjs/data/Environment/definition.cjs.map +1 -1
  187. package/_cjs/data/EnvironmentPatch.cjs +2 -3
  188. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  189. package/_cjs/data/Eq/api.cjs +189 -5
  190. package/_cjs/data/Eq/api.cjs.map +1 -1
  191. package/_cjs/data/Eq/derivations.cjs +10 -21
  192. package/_cjs/data/Eq/derivations.cjs.map +1 -1
  193. package/_cjs/data/Equatable/api.cjs +1 -2
  194. package/_cjs/data/Equatable/api.cjs.map +1 -1
  195. package/_cjs/data/Equatable/definition.cjs +1 -2
  196. package/_cjs/data/Equatable/definition.cjs.map +1 -1
  197. package/_cjs/data/Exit/api.cjs +90 -80
  198. package/_cjs/data/Exit/api.cjs.map +1 -1
  199. package/_cjs/data/Exit/constructors.cjs +1 -2
  200. package/_cjs/data/Exit/constructors.cjs.map +1 -1
  201. package/_cjs/data/Exit/definition.cjs +1 -2
  202. package/_cjs/data/Exit/definition.cjs.map +1 -1
  203. package/_cjs/data/FiberId/api.cjs +1 -2
  204. package/_cjs/data/FiberId/api.cjs.map +1 -1
  205. package/_cjs/data/FiberId/definition.cjs +1 -2
  206. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  207. package/_cjs/data/Guard/api.cjs +13 -17
  208. package/_cjs/data/Guard/api.cjs.map +1 -1
  209. package/_cjs/data/HashEq.cjs +1 -2
  210. package/_cjs/data/HashEq.cjs.map +1 -1
  211. package/_cjs/data/Hashable/definition.cjs +1 -2
  212. package/_cjs/data/Hashable/definition.cjs.map +1 -1
  213. package/_cjs/data/Hashable/hash.cjs +1 -2
  214. package/_cjs/data/Hashable/hash.cjs.map +1 -1
  215. package/_cjs/data/Identity/api.cjs +1 -2
  216. package/_cjs/data/Identity/api.cjs.map +1 -1
  217. package/_cjs/data/Identity/definition.cjs +1 -2
  218. package/_cjs/data/Identity/definition.cjs.map +1 -1
  219. package/_cjs/data/Identity/instances.cjs +1 -2
  220. package/_cjs/data/Identity/instances.cjs.map +1 -1
  221. package/_cjs/data/Interval.cjs +1 -2
  222. package/_cjs/data/Interval.cjs.map +1 -1
  223. package/_cjs/data/Intervals.cjs +1 -2
  224. package/_cjs/data/Intervals.cjs.map +1 -1
  225. package/_cjs/data/Maybe/api.cjs +73 -60
  226. package/_cjs/data/Maybe/api.cjs.map +1 -1
  227. package/_cjs/data/Maybe/constructors.cjs +37 -38
  228. package/_cjs/data/Maybe/constructors.cjs.map +1 -1
  229. package/_cjs/data/Maybe/definition.cjs +1 -2
  230. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  231. package/_cjs/data/Maybe/instances.cjs +1 -2
  232. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  233. package/_cjs/data/Newtype.cjs +1 -2
  234. package/_cjs/data/Newtype.cjs.map +1 -1
  235. package/_cjs/data/Ord/api.cjs +1 -2
  236. package/_cjs/data/Ord/api.cjs.map +1 -1
  237. package/_cjs/data/Ord/definition.cjs +1 -2
  238. package/_cjs/data/Ord/definition.cjs.map +1 -1
  239. package/_cjs/data/Ord/instances.cjs +1 -2
  240. package/_cjs/data/Ord/instances.cjs.map +1 -1
  241. package/_cjs/data/Predicate/definition.cjs +0 -4
  242. package/_cjs/data/Predicate/match.cjs +0 -4
  243. package/_cjs/data/Refinement/definition.cjs +0 -4
  244. package/_cjs/data/Showable/definition.cjs +1 -2
  245. package/_cjs/data/Showable/definition.cjs.map +1 -1
  246. package/_cjs/data/Showable/show.cjs +1 -2
  247. package/_cjs/data/Showable/show.cjs.map +1 -1
  248. package/_cjs/data/Showable/styles.cjs +1 -2
  249. package/_cjs/data/Showable/styles.cjs.map +1 -1
  250. package/_cjs/data/Showable/util.cjs +1 -2
  251. package/_cjs/data/Showable/util.cjs.map +1 -1
  252. package/_cjs/data/Struct/api.cjs +5 -7
  253. package/_cjs/data/Struct/api.cjs.map +1 -1
  254. package/_cjs/data/Struct/definition.cjs +1 -2
  255. package/_cjs/data/Struct/definition.cjs.map +1 -1
  256. package/_cjs/data/Tag/constructors.cjs +1 -2
  257. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  258. package/_cjs/data/Tag/definition.cjs +1 -2
  259. package/_cjs/data/Tag/definition.cjs.map +1 -1
  260. package/_cjs/data/These/api.cjs +86 -87
  261. package/_cjs/data/These/api.cjs.map +1 -1
  262. package/_cjs/data/These/constructors.cjs +1 -2
  263. package/_cjs/data/These/constructors.cjs.map +1 -1
  264. package/_cjs/data/These/definition.cjs +1 -2
  265. package/_cjs/data/These/definition.cjs.map +1 -1
  266. package/_cjs/data/These/destructors.cjs +1 -2
  267. package/_cjs/data/These/destructors.cjs.map +1 -1
  268. package/_cjs/data/These/instances.cjs +1 -2
  269. package/_cjs/data/These/instances.cjs.map +1 -1
  270. package/_cjs/data/Trace/api.cjs +1 -2
  271. package/_cjs/data/Trace/api.cjs.map +1 -1
  272. package/_cjs/data/Trace/constructors.cjs +1 -2
  273. package/_cjs/data/Trace/constructors.cjs.map +1 -1
  274. package/_cjs/data/Zipped.cjs +1 -2
  275. package/_cjs/data/Zipped.cjs.map +1 -1
  276. package/_cjs/data/bigint/definition.cjs +0 -4
  277. package/_cjs/data/bigint/instances.cjs +1 -2
  278. package/_cjs/data/bigint/instances.cjs.map +1 -1
  279. package/_cjs/data/boolean/definition.cjs +0 -4
  280. package/_cjs/data/boolean/instances.cjs +1 -2
  281. package/_cjs/data/boolean/instances.cjs.map +1 -1
  282. package/_cjs/data/exceptions/IOError.cjs +1 -2
  283. package/_cjs/data/exceptions/IOError.cjs.map +1 -1
  284. package/_cjs/data/exceptions/InterruptedException.cjs +1 -2
  285. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  286. package/_cjs/data/exceptions/RuntimeError.cjs +0 -4
  287. package/_cjs/data/function/definition.cjs +0 -4
  288. package/_cjs/data/number/definition.cjs +0 -4
  289. package/_cjs/data/number/instances.cjs +1 -2
  290. package/_cjs/data/number/instances.cjs.map +1 -1
  291. package/_cjs/data/object/definition.cjs +0 -4
  292. package/_cjs/data/object/instances.cjs +1 -2
  293. package/_cjs/data/object/instances.cjs.map +1 -1
  294. package/_cjs/data/string/api.cjs +1 -2
  295. package/_cjs/data/string/api.cjs.map +1 -1
  296. package/_cjs/data/string/definition.cjs +0 -4
  297. package/_cjs/data/string/instances.cjs +1 -2
  298. package/_cjs/data/string/instances.cjs.map +1 -1
  299. package/_cjs/data.cjs +0 -4
  300. package/_cjs/global.cjs +0 -4
  301. package/_cjs/index.cjs +0 -4
  302. package/_cjs/internal/Stack.cjs +7 -2
  303. package/_cjs/internal/Stack.cjs.map +1 -1
  304. package/_cjs/json.cjs +0 -4
  305. package/_cjs/optics/At/api.cjs +1 -2
  306. package/_cjs/optics/At/api.cjs.map +1 -1
  307. package/_cjs/optics/At/definition.cjs +1 -2
  308. package/_cjs/optics/At/definition.cjs.map +1 -1
  309. package/_cjs/optics/Index/api.cjs +3 -4
  310. package/_cjs/optics/Index/api.cjs.map +1 -1
  311. package/_cjs/optics/Iso/api.cjs +1 -2
  312. package/_cjs/optics/Iso/api.cjs.map +1 -1
  313. package/_cjs/optics/Iso/definition.cjs +1 -2
  314. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  315. package/_cjs/optics/Lens/api.cjs +2 -3
  316. package/_cjs/optics/Lens/api.cjs.map +1 -1
  317. package/_cjs/optics/Lens/definition.cjs +1 -2
  318. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  319. package/_cjs/optics/Optional/api/compose.cjs +1 -2
  320. package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
  321. package/_cjs/optics/Optional/api/focus.cjs +1 -2
  322. package/_cjs/optics/Optional/api/focus.cjs.map +1 -1
  323. package/_cjs/optics/Optional/api.cjs +1 -2
  324. package/_cjs/optics/Optional/api.cjs.map +1 -1
  325. package/_cjs/optics/Optional/definition.cjs +1 -2
  326. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  327. package/_cjs/optics/Prism/api/compose.cjs +1 -2
  328. package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
  329. package/_cjs/optics/Prism/api/focus.cjs +1 -2
  330. package/_cjs/optics/Prism/api/focus.cjs.map +1 -1
  331. package/_cjs/optics/Prism/api/fromNullable.cjs +1 -2
  332. package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
  333. package/_cjs/optics/Prism/api/just.cjs +1 -2
  334. package/_cjs/optics/Prism/api/just.cjs.map +1 -1
  335. package/_cjs/optics/Prism/definition.cjs +1 -2
  336. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  337. package/_cjs/optics/Traversal/api/compose.cjs +1 -2
  338. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  339. package/_cjs/optics/Traversal/api/focus.cjs +1 -2
  340. package/_cjs/optics/Traversal/api/focus.cjs.map +1 -1
  341. package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -2
  342. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  343. package/_cjs/optics/Traversal/definition.cjs +1 -2
  344. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  345. package/_cjs/optics.cjs +0 -4
  346. package/_cjs/typeclass/ApplicativeExcept.cjs +1 -2
  347. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  348. package/_cjs/typeclass/Apply.cjs +1 -14
  349. package/_cjs/typeclass/Apply.cjs.map +1 -1
  350. package/_cjs/typeclass/Chain.cjs +1 -2
  351. package/_cjs/typeclass/Chain.cjs.map +1 -1
  352. package/_cjs/typeclass/Fail.cjs +0 -4
  353. package/_cjs/typeclass/MonadExcept.cjs +1 -2
  354. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  355. package/_cjs/typeclass/Monoid.cjs +1 -2
  356. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  357. package/_cjs/typeclass/Nil.cjs +0 -4
  358. package/_cjs/typeclass/Semialign.cjs +1 -2
  359. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  360. package/_cjs/typeclass/Semigroup/api.cjs +1 -2
  361. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  362. package/_cjs/typeclass/Semigroup/derivations.cjs +1 -2
  363. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
  364. package/_cjs/typeclass/Witherable.cjs +1 -2
  365. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  366. package/_cjs/typeclass/WitherableWithIndex.cjs +1 -2
  367. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  368. package/_cjs/typeclass/builtin/Symbol.cjs +0 -4
  369. package/_cjs/types/extractions.cjs +0 -4
  370. package/_cjs/types/utility.cjs +0 -4
  371. package/_cjs/util/AnsiFormat.cjs +1 -2
  372. package/_cjs/util/AnsiFormat.cjs.map +1 -1
  373. package/_cjs/util/assert.cjs +1 -1
  374. package/_cjs/util/assert.cjs.map +1 -1
  375. package/_cjs/util/pattern.cjs.map +1 -1
  376. package/_cjs/util/rand/distribution/Distribution.cjs +0 -4
  377. package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
  378. package/_cjs/util.cjs +0 -4
  379. package/_mjs/collection/AsyncIterable/api.mjs +366 -0
  380. package/_mjs/collection/AsyncIterable/api.mjs.map +1 -0
  381. package/_mjs/collection/AsyncIterable/definition.mjs +2 -0
  382. package/_mjs/collection/AsyncIterable/definition.mjs.map +1 -0
  383. package/_mjs/collection/AsyncIterable.mjs +4 -0
  384. package/_mjs/collection/AsyncIterable.mjs.map +1 -0
  385. package/_mjs/collection/Iterable/api.mjs +175 -134
  386. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  387. package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
  388. package/_mjs/collection/compat/ArrayLike/definition.mjs +1 -1
  389. package/_mjs/collection/compat/Map/definition.mjs +1 -1
  390. package/_mjs/collection/compat/Set/definition.mjs +1 -1
  391. package/_mjs/collection/compat.mjs +1 -1
  392. package/_mjs/collection/immutable/Conc/constructors.mjs +2 -2
  393. package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
  394. package/_mjs/collection/immutable/Conc/definition.mjs +1 -1
  395. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  396. package/_mjs/collection/immutable/List/api.mjs +2 -2
  397. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  398. package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api/chunksOf.mjs +3 -3
  399. package/_mjs/collection/immutable/ReadonlyArray/api/chunksOf.mjs.map +1 -0
  400. package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs +9 -0
  401. package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs.map +1 -0
  402. package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs +19 -0
  403. package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs.map +1 -0
  404. package/_mjs/collection/immutable/ReadonlyArray/api.mjs +1302 -0
  405. package/_mjs/collection/immutable/ReadonlyArray/api.mjs.map +1 -0
  406. package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs +44 -0
  407. package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs.map +1 -0
  408. package/_mjs/collection/immutable/ReadonlyArray/definition.mjs.map +1 -0
  409. package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.mjs +4 -5
  410. package/_mjs/collection/immutable/ReadonlyArray/instances.mjs.map +1 -0
  411. package/_mjs/collection/immutable/ReadonlyArray.mjs +11 -0
  412. package/_mjs/collection/immutable/ReadonlyArray.mjs.map +1 -0
  413. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs +433 -0
  414. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs.map +1 -0
  415. package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/constructors.mjs +16 -15
  416. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/constructors.mjs.map +1 -0
  417. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs +2 -0
  418. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs.map +1 -0
  419. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs +41 -0
  420. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs.map +1 -0
  421. package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.mjs +2 -2
  422. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/instances.mjs.map +1 -0
  423. package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs +7 -0
  424. package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs.map +1 -0
  425. package/_mjs/collection/immutable/Vector/api.mjs +224 -224
  426. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  427. package/_mjs/collection/immutable.mjs +1 -1
  428. package/_mjs/collection/internal.mjs +1 -1
  429. package/_mjs/collection/mutable.mjs +1 -1
  430. package/_mjs/collection/weak.mjs +1 -1
  431. package/_mjs/collection.mjs +1 -1
  432. package/_mjs/control/Eval/api.mjs +83 -15
  433. package/_mjs/control/Eval/api.mjs.map +1 -1
  434. package/_mjs/control/Eval/constructors.mjs +4 -0
  435. package/_mjs/control/Eval/constructors.mjs.map +1 -1
  436. package/_mjs/control/Pure/runtime.mjs +14 -8
  437. package/_mjs/control/Pure/runtime.mjs.map +1 -1
  438. package/_mjs/control.mjs +1 -1
  439. package/_mjs/data/Byte.mjs +1 -1
  440. package/_mjs/data/CaseClass.mjs +10 -12
  441. package/_mjs/data/CaseClass.mjs.map +1 -1
  442. package/_mjs/data/Cause/api/fold.mjs +32 -32
  443. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  444. package/_mjs/data/Const/api.mjs +7 -7
  445. package/_mjs/data/Const/api.mjs.map +1 -1
  446. package/_mjs/data/Const/instances.mjs +11 -11
  447. package/_mjs/data/Const/instances.mjs.map +1 -1
  448. package/_mjs/data/Date/definition.mjs +1 -1
  449. package/_mjs/data/Datum/api.mjs +107 -108
  450. package/_mjs/data/Datum/api.mjs.map +1 -1
  451. package/_mjs/data/Datum.mjs +5 -0
  452. package/_mjs/data/Datum.mjs.map +1 -0
  453. package/_mjs/data/DatumEither/api.mjs +53 -53
  454. package/_mjs/data/DatumEither/api.mjs.map +1 -1
  455. package/_mjs/data/Either/api.mjs +42 -42
  456. package/_mjs/data/Either/api.mjs.map +1 -1
  457. package/_mjs/data/Either/constructors.mjs +20 -20
  458. package/_mjs/data/Either/constructors.mjs.map +1 -1
  459. package/_mjs/data/EitherT/api.mjs +27 -27
  460. package/_mjs/data/EitherT/api.mjs.map +1 -1
  461. package/_mjs/data/Environment/api.mjs.map +1 -1
  462. package/_mjs/data/EnvironmentPatch.mjs +1 -1
  463. package/_mjs/data/Eq/api.mjs +175 -3
  464. package/_mjs/data/Eq/api.mjs.map +1 -1
  465. package/_mjs/data/Eq/derivations.mjs +8 -19
  466. package/_mjs/data/Eq/derivations.mjs.map +1 -1
  467. package/_mjs/data/Exit/api.mjs +88 -78
  468. package/_mjs/data/Exit/api.mjs.map +1 -1
  469. package/_mjs/data/Guard/api.mjs +12 -15
  470. package/_mjs/data/Guard/api.mjs.map +1 -1
  471. package/_mjs/data/Maybe/api.mjs +71 -58
  472. package/_mjs/data/Maybe/api.mjs.map +1 -1
  473. package/_mjs/data/Maybe/constructors.mjs +36 -36
  474. package/_mjs/data/Maybe/constructors.mjs.map +1 -1
  475. package/_mjs/data/Predicate/definition.mjs +1 -1
  476. package/_mjs/data/Predicate/match.mjs +1 -1
  477. package/_mjs/data/Refinement/definition.mjs +1 -1
  478. package/_mjs/data/Showable/util.mjs.map +1 -1
  479. package/_mjs/data/Struct/api.mjs +4 -5
  480. package/_mjs/data/Struct/api.mjs.map +1 -1
  481. package/_mjs/data/These/api.mjs +85 -85
  482. package/_mjs/data/These/api.mjs.map +1 -1
  483. package/_mjs/data/bigint/definition.mjs +1 -1
  484. package/_mjs/data/boolean/definition.mjs +1 -1
  485. package/_mjs/data/exceptions/RuntimeError.mjs +1 -1
  486. package/_mjs/data/function/definition.mjs +1 -1
  487. package/_mjs/data/number/definition.mjs +1 -1
  488. package/_mjs/data/object/definition.mjs +1 -1
  489. package/_mjs/data/string/definition.mjs +1 -1
  490. package/_mjs/data.mjs +1 -1
  491. package/_mjs/global.mjs +1 -1
  492. package/_mjs/index.mjs +1 -1
  493. package/_mjs/internal/Stack.mjs +7 -2
  494. package/_mjs/internal/Stack.mjs.map +1 -1
  495. package/_mjs/json.mjs +1 -1
  496. package/_mjs/optics/Index/api.mjs +2 -2
  497. package/_mjs/optics/Index/api.mjs.map +1 -1
  498. package/_mjs/optics/Lens/api.mjs +1 -1
  499. package/_mjs/optics.mjs +1 -1
  500. package/_mjs/typeclass/Apply.mjs +0 -12
  501. package/_mjs/typeclass/Apply.mjs.map +1 -1
  502. package/_mjs/typeclass/Fail.mjs +1 -1
  503. package/_mjs/typeclass/Nil.mjs +1 -1
  504. package/_mjs/typeclass/builtin/Symbol.mjs +1 -1
  505. package/_mjs/types/extractions.mjs +1 -1
  506. package/_mjs/types/utility.mjs +1 -1
  507. package/_mjs/util/assert.mjs +1 -1
  508. package/_mjs/util/assert.mjs.map +1 -1
  509. package/_mjs/util/pattern.mjs.map +1 -1
  510. package/_mjs/util/rand/distribution/Distribution.mjs +1 -1
  511. package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
  512. package/_mjs/util.mjs +1 -1
  513. package/_src/collection/AsyncIterable/api.ts +369 -0
  514. package/_src/collection/AsyncIterable/definition.ts +7 -0
  515. package/_src/collection/AsyncIterable.ts +4 -0
  516. package/_src/collection/Iterable/api.ts +215 -162
  517. package/_src/collection/Iterable/constructors.ts +0 -2
  518. package/_src/collection/compat/ArrayLike/definition.ts +2 -2
  519. package/_src/collection/compat.ts +0 -1
  520. package/_src/collection/immutable/Conc/constructors.ts +1 -2
  521. package/_src/collection/immutable/Conc/definition.ts +7 -6
  522. package/_src/collection/immutable/List/api.ts +2 -2
  523. package/_src/collection/immutable/ReadonlyArray/api/chunksOf.ts +8 -0
  524. package/_src/collection/immutable/ReadonlyArray/api/splitAt.ts +8 -0
  525. package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/api/splitWhere.ts +3 -3
  526. package/_src/collection/immutable/ReadonlyArray/api.ts +1536 -0
  527. package/_src/collection/immutable/ReadonlyArray/constructors.ts +47 -0
  528. package/_src/collection/{compat/Array → immutable/ReadonlyArray}/definition.ts +8 -0
  529. package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.ts +22 -22
  530. package/_src/collection/immutable/ReadonlyArray.ts +12 -0
  531. package/_src/collection/immutable/ReadonlyNonEmptyArray/api.ts +481 -0
  532. package/_src/collection/immutable/ReadonlyNonEmptyArray/constructors.ts +76 -0
  533. package/_src/collection/immutable/ReadonlyNonEmptyArray/definition.ts +22 -0
  534. package/_src/collection/immutable/ReadonlyNonEmptyArray/destructors.ts +41 -0
  535. package/_src/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.ts +13 -13
  536. package/_src/collection/immutable/ReadonlyNonEmptyArray.ts +7 -0
  537. package/_src/collection/immutable/Vector/api.ts +310 -309
  538. package/_src/collection/immutable.ts +11 -11
  539. package/_src/collection.ts +6 -5
  540. package/_src/control/Eval/api.ts +109 -16
  541. package/_src/control/Eval/constructors.ts +5 -0
  542. package/_src/control/Pure/runtime.ts +8 -2
  543. package/_src/data/CaseClass.ts +5 -5
  544. package/_src/data/Cause/api/fold.ts +2 -2
  545. package/_src/data/Const/api.ts +8 -8
  546. package/_src/data/Const/instances.ts +10 -10
  547. package/_src/data/Datum/api.ts +113 -113
  548. package/_src/data/Datum.ts +5 -0
  549. package/_src/data/DatumEither/api.ts +41 -43
  550. package/_src/data/Either/api.ts +47 -47
  551. package/_src/data/Either/constructors.ts +14 -16
  552. package/_src/data/EitherT/api.ts +111 -110
  553. package/_src/data/Environment/api.ts +6 -3
  554. package/_src/data/Eq/api.ts +193 -4
  555. package/_src/data/Eq/derivations.ts +12 -19
  556. package/_src/data/Exit/api.ts +89 -77
  557. package/_src/data/Guard/api.ts +11 -11
  558. package/_src/data/Maybe/api.ts +82 -73
  559. package/_src/data/Maybe/constructors.ts +34 -36
  560. package/_src/data/Showable/util.ts +1 -1
  561. package/_src/data/Struct/api.ts +1 -1
  562. package/_src/data/These/api.ts +93 -92
  563. package/_src/data.ts +1 -0
  564. package/_src/global.ts +7 -12
  565. package/_src/internal/Stack.ts +6 -2
  566. package/_src/optics/Index/api.ts +1 -1
  567. package/_src/typeclass/Apply.ts +6 -18
  568. package/_src/util/assert.ts +2 -2
  569. package/_src/util/pattern.ts +8 -90
  570. package/_src/util/rand/generator/RandomGenerator.ts +1 -0
  571. package/collection/AsyncIterable/api.d.ts +71 -0
  572. package/collection/AsyncIterable/definition.d.ts +9 -0
  573. package/collection/AsyncIterable.d.ts +2 -0
  574. package/collection/Iterable/api/traverseConc.d.ts +1 -1
  575. package/collection/Iterable/api.d.ts +40 -25
  576. package/collection/compat/ArrayLike/definition.d.ts +2 -2
  577. package/collection/compat.d.ts +0 -1
  578. package/collection/immutable/Conc/definition.d.ts +1 -1
  579. package/collection/immutable/ReadonlyArray/api/chunksOf.d.ts +5 -0
  580. package/collection/immutable/ReadonlyArray/api/splitAt.d.ts +5 -0
  581. package/collection/immutable/ReadonlyArray/api/splitWhere.d.ts +6 -0
  582. package/collection/immutable/ReadonlyArray/api.d.ts +614 -0
  583. package/collection/immutable/ReadonlyArray/constructors.d.ts +30 -0
  584. package/collection/{compat/Array → immutable/ReadonlyArray}/definition.d.ts +8 -0
  585. package/collection/immutable/ReadonlyArray/instances.d.ts +87 -0
  586. package/collection/immutable/ReadonlyArray.d.ts +7 -0
  587. package/collection/immutable/ReadonlyNonEmptyArray/api.d.ts +186 -0
  588. package/collection/immutable/ReadonlyNonEmptyArray/constructors.d.ts +45 -0
  589. package/collection/immutable/ReadonlyNonEmptyArray/definition.d.ts +21 -0
  590. package/collection/immutable/ReadonlyNonEmptyArray/destructors.d.ts +31 -0
  591. package/collection/immutable/ReadonlyNonEmptyArray/instances.d.ts +52 -0
  592. package/collection/immutable/ReadonlyNonEmptyArray.d.ts +5 -0
  593. package/collection/immutable/Vector/api.d.ts +93 -93
  594. package/collection/immutable.d.ts +2 -2
  595. package/collection.d.ts +1 -0
  596. package/control/Eval/api.d.ts +27 -5
  597. package/control/Eval/constructors.d.ts +5 -0
  598. package/data/CaseClass.d.ts +2 -3
  599. package/data/Const/api.d.ts +5 -5
  600. package/data/Const/instances.d.ts +4 -4
  601. package/data/Datum/api.d.ts +64 -64
  602. package/data/Datum.d.ts +3 -0
  603. package/data/DatumEither/api.d.ts +25 -25
  604. package/data/Either/api.d.ts +24 -24
  605. package/data/Either/constructors.d.ts +12 -12
  606. package/data/EitherT/api.d.ts +16 -16
  607. package/data/Environment/api.d.ts +4 -2
  608. package/data/Eq/api.d.ts +89 -2
  609. package/data/Eq/derivations.d.ts +7 -0
  610. package/data/Exit/api.d.ts +43 -37
  611. package/data/Guard/api.d.ts +7 -8
  612. package/data/Maybe/api.d.ts +38 -33
  613. package/data/Maybe/constructors.d.ts +16 -16
  614. package/data/Showable/util.d.ts +1 -1
  615. package/data/These/api.d.ts +26 -26
  616. package/data.d.ts +1 -0
  617. package/global.d.ts +4 -8
  618. package/internal/Stack.d.ts +2 -0
  619. package/optics/Lens/api.d.ts +1 -1
  620. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  621. package/package.json +3 -3
  622. package/typeclass/Apply.d.ts +0 -6
  623. package/util/assert.d.ts +1 -1
  624. package/_cjs/collection/compat/Array/api.cjs +0 -142
  625. package/_cjs/collection/compat/Array/api.cjs.map +0 -1
  626. package/_cjs/collection/compat/Array/definition.cjs.map +0 -1
  627. package/_cjs/collection/compat/Array.cjs.map +0 -1
  628. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +0 -19
  629. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +0 -1
  630. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +0 -18
  631. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +0 -1
  632. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +0 -18
  633. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +0 -1
  634. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +0 -28
  635. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +0 -1
  636. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +0 -1
  637. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +0 -59
  638. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +0 -1
  639. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +0 -44
  640. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +0 -1
  641. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +0 -1
  642. package/_cjs/collection/immutable/ImmutableArray.cjs.map +0 -1
  643. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +0 -474
  644. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +0 -1
  645. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +0 -79
  646. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +0 -1
  647. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +0 -36
  648. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +0 -1
  649. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +0 -53
  650. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +0 -1
  651. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +0 -1
  652. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +0 -1
  653. package/_cjs/control/Eval/api/sequenceArray.cjs +0 -17
  654. package/_cjs/control/Eval/api/sequenceArray.cjs.map +0 -1
  655. package/_mjs/collection/compat/Array/api.mjs +0 -125
  656. package/_mjs/collection/compat/Array/api.mjs.map +0 -1
  657. package/_mjs/collection/compat/Array/definition.mjs.map +0 -1
  658. package/_mjs/collection/compat/Array.mjs +0 -4
  659. package/_mjs/collection/compat/Array.mjs.map +0 -1
  660. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +0 -1
  661. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +0 -10
  662. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +0 -1
  663. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +0 -10
  664. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +0 -1
  665. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +0 -20
  666. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +0 -1
  667. package/_mjs/collection/immutable/ImmutableArray/api.mjs +0 -1284
  668. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +0 -1
  669. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +0 -46
  670. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +0 -1
  671. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +0 -35
  672. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +0 -1
  673. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +0 -1
  674. package/_mjs/collection/immutable/ImmutableArray.mjs +0 -12
  675. package/_mjs/collection/immutable/ImmutableArray.mjs.map +0 -1
  676. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +0 -437
  677. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +0 -1
  678. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +0 -1
  679. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -25
  680. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +0 -1
  681. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +0 -43
  682. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +0 -1
  683. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +0 -1
  684. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +0 -7
  685. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +0 -1
  686. package/_mjs/control/Eval/api/sequenceArray.mjs +0 -9
  687. package/_mjs/control/Eval/api/sequenceArray.mjs.map +0 -1
  688. package/_src/collection/compat/Array/api.ts +0 -134
  689. package/_src/collection/compat/Array.ts +0 -4
  690. package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +0 -8
  691. package/_src/collection/immutable/ImmutableArray/api/slice.ts +0 -8
  692. package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +0 -8
  693. package/_src/collection/immutable/ImmutableArray/api.ts +0 -1526
  694. package/_src/collection/immutable/ImmutableArray/constructors.ts +0 -47
  695. package/_src/collection/immutable/ImmutableArray/definition.ts +0 -48
  696. package/_src/collection/immutable/ImmutableArray.ts +0 -13
  697. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +0 -483
  698. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +0 -83
  699. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -47
  700. package/_src/collection/immutable/ImmutableNonEmptyArray/destructors.ts +0 -41
  701. package/_src/collection/immutable/ImmutableNonEmptyArray.ts +0 -7
  702. package/_src/control/Eval/api/sequenceArray.ts +0 -6
  703. package/collection/compat/Array/api.d.ts +0 -62
  704. package/collection/compat/Array.d.ts +0 -2
  705. package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +0 -6
  706. package/collection/immutable/ImmutableArray/api/slice.d.ts +0 -6
  707. package/collection/immutable/ImmutableArray/api/splitAt.d.ts +0 -6
  708. package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +0 -7
  709. package/collection/immutable/ImmutableArray/api.d.ts +0 -602
  710. package/collection/immutable/ImmutableArray/constructors.d.ts +0 -32
  711. package/collection/immutable/ImmutableArray/definition.d.ts +0 -34
  712. package/collection/immutable/ImmutableArray/instances.d.ts +0 -87
  713. package/collection/immutable/ImmutableArray.d.ts +0 -8
  714. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +0 -186
  715. package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +0 -46
  716. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +0 -40
  717. package/collection/immutable/ImmutableNonEmptyArray/destructors.d.ts +0 -32
  718. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +0 -52
  719. package/collection/immutable/ImmutableNonEmptyArray.d.ts +0 -5
  720. package/control/Eval/api/sequenceArray.d.ts +0 -6
  721. /package/_cjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.cjs +0 -0
  722. /package/_mjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.mjs +0 -0
@@ -81,65 +81,6 @@ export function append<A>(a: A) {
81
81
  };
82
82
  }
83
83
 
84
- /**
85
- * @tsplus pipeable fncts.Vector filterMapWithIndex
86
- */
87
- export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
88
- return (self: Vector<A>): Vector<B> => {
89
- return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) =>
90
- f(i, a).match(
91
- () => acc,
92
- (b) => acc.push(b),
93
- ),
94
- );
95
- };
96
- }
97
-
98
- /**
99
- * @tsplus pipeable fncts.Vector filterMap
100
- */
101
- export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
102
- return (self: Vector<A>): Vector<B> => {
103
- return self.filterMapWithIndex((_, a) => f(a));
104
- };
105
- }
106
-
107
- /**
108
- * @tsplus pipeable fncts.Vector filterWithIndex
109
- */
110
- export function filterWithIndex<A, B extends A>(
111
- refinement: RefinementWithIndex<number, A, B>,
112
- ): (self: Vector<A>) => Vector<B>;
113
- export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>): (self: Vector<A>) => Vector<A>;
114
- export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>) {
115
- return (self: Vector<A>): Vector<A> => {
116
- return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) => (predicate(i, a) ? acc.push(a) : acc));
117
- };
118
- }
119
-
120
- /**
121
- * @tsplus pipeable fncts.Vector filter
122
- */
123
- export function filter<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => Vector<B>;
124
- export function filter<A>(predicate: Predicate<A>): (self: Vector<A>) => Vector<A>;
125
- export function filter<A>(predicate: Predicate<A>) {
126
- return (self: Vector<A>): Vector<A> => {
127
- return self.filterWithIndex((_, a) => predicate(a));
128
- };
129
- }
130
-
131
- /**
132
- * Maps a function over a Vector and concatenates all the resulting
133
- * Vectors together.
134
- *
135
- * @tsplus pipeable fncts.Vector flatMap
136
- */
137
- export function flatMap<A, B>(f: (a: A) => Vector<B>) {
138
- return (self: Vector<A>): Vector<B> => {
139
- return self.map(f).flatten;
140
- };
141
- }
142
-
143
84
  /**
144
85
  * Splits the Vector into chunks of the given size.
145
86
  *
@@ -213,20 +154,109 @@ export function concat<A>(that: Vector<A>) {
213
154
  }
214
155
  };
215
156
  }
157
+ /**
158
+ * @tsplus pipeable fncts.Vector filter
159
+ */
160
+ export function filter<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => Vector<B>;
161
+
162
+ export function filter<A>(predicate: Predicate<A>): (self: Vector<A>) => Vector<A>;
163
+ export function filter<A>(predicate: Predicate<A>) {
164
+ return (self: Vector<A>): Vector<A> => {
165
+ return self.filterWithIndex((_, a) => predicate(a));
166
+ };
167
+ }
168
+ /**
169
+ * @tsplus pipeable fncts.Vector filterMap
170
+ */
171
+ export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
172
+ return (self: Vector<A>): Vector<B> => {
173
+ return self.filterMapWithIndex((_, a) => f(a));
174
+ };
175
+ }
176
+
177
+ /**
178
+ * @tsplus pipeable fncts.Vector filterMapWithIndex
179
+ */
180
+ export function filterMapWithIndex<A, B>(f: (i: number, a: A) => Maybe<B>) {
181
+ return (self: Vector<A>): Vector<B> => {
182
+ return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) =>
183
+ f(i, a).match(
184
+ () => acc,
185
+ (b) => acc.push(b),
186
+ ),
187
+ );
188
+ };
189
+ }
190
+
191
+ /**
192
+ * @tsplus pipeable fncts.Vector filterWithIndex
193
+ */
194
+ export function filterWithIndex<A, B extends A>(
195
+ refinement: RefinementWithIndex<number, A, B>,
196
+ ): (self: Vector<A>) => Vector<B>;
197
+
198
+ export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>): (self: Vector<A>) => Vector<A>;
199
+ export function filterWithIndex<A>(predicate: PredicateWithIndex<number, A>) {
200
+ return (self: Vector<A>): Vector<A> => {
201
+ return self.foldLeftWithIndex(Vector.emptyPushable(), (i, acc, a) => (predicate(i, a) ? acc.push(a) : acc));
202
+ };
203
+ }
204
+
205
+ /**
206
+ * Maps a function over a Vector and concatenates all the resulting
207
+ * Vectors together.
208
+ *
209
+ * @tsplus pipeable fncts.Vector flatMap
210
+ */
211
+ export function flatMap<A, B>(f: (a: A) => Vector<B>) {
212
+ return (self: Vector<A>): Vector<B> => {
213
+ return self.map(f).flatten;
214
+ };
215
+ }
216
+
217
+ const containsState: ContainsState = {
218
+ element: undefined,
219
+ result: false,
220
+ };
216
221
 
217
222
  type ContainsState = {
218
223
  element: any;
219
224
  result: boolean;
220
225
  };
221
226
 
222
- const containsState: ContainsState = {
223
- element: undefined,
224
- result: false,
227
+ type ElemState = {
228
+ element: any;
229
+ equals: (y: any) => (x: any) => boolean;
230
+ result: boolean;
225
231
  };
226
232
 
227
- function containsCb(value: any, state: ContainsState): boolean {
228
- return !(state.result = value === state.element);
229
- }
233
+ type FindIndexState = {
234
+ predicate: (a: any) => boolean;
235
+ found: boolean;
236
+ index: number;
237
+ };
238
+
239
+ type FindNotIndexState = {
240
+ predicate: (a: any) => boolean;
241
+ index: number;
242
+ };
243
+
244
+ type FoldWhileState<A, B> = {
245
+ predicate: Predicate<B>;
246
+ result: B;
247
+ f: (i: number, b: B, a: A) => B;
248
+ };
249
+
250
+ type IndexOfState = {
251
+ element: any;
252
+ found: boolean;
253
+ index: number;
254
+ };
255
+
256
+ type PredState = {
257
+ predicate: (a: any) => boolean;
258
+ result: any;
259
+ };
230
260
 
231
261
  /**
232
262
  * Returns `true` if the Vector contains the specified element.
@@ -243,6 +273,10 @@ export function contains<A>(element: A) {
243
273
  };
244
274
  }
245
275
 
276
+ function containsCb(value: any, state: ContainsState): boolean {
277
+ return !(state.result = value === state.element);
278
+ }
279
+
246
280
  /**
247
281
  * Returns a new Vector without the first `n` elements.
248
282
  *
@@ -292,20 +326,6 @@ export function dropRepeatsWith<A>(predicate: (a: A, b: A) => boolean) {
292
326
  };
293
327
  }
294
328
 
295
- type FindNotIndexState = {
296
- predicate: (a: any) => boolean;
297
- index: number;
298
- };
299
-
300
- function findNotIndexCb(value: any, state: FindNotIndexState): boolean {
301
- if (state.predicate(value)) {
302
- ++state.index;
303
- return true;
304
- } else {
305
- return false;
306
- }
307
- }
308
-
309
329
  /**
310
330
  * Removes the first elements in the Vector for which the predicate returns
311
331
  * `true`.
@@ -321,16 +341,6 @@ export function dropWhile<A>(predicate: Predicate<A>) {
321
341
  };
322
342
  }
323
343
 
324
- type ElemState = {
325
- element: any;
326
- equals: (y: any) => (x: any) => boolean;
327
- result: boolean;
328
- };
329
-
330
- function elemCb(value: any, state: ElemState): boolean {
331
- return !(state.result = state.equals(state.element)(value));
332
- }
333
-
334
344
  /**
335
345
  * @tsplus pipeable fncts.Vector elem
336
346
  */
@@ -341,40 +351,9 @@ export function elem<A>(a: A, /** @tsplus auto */ E: Eq<A>) {
341
351
  return foldLeftCb(elemCb, elemState, self).result;
342
352
  };
343
353
  }
344
- /**
345
- * Returns true if the two Vectors are equivalent.
346
- *
347
- * @complexity O(n)
348
- * @tsplus pipeable fncts.Vector equals
349
- */
350
- export function equals<A>(that: Vector<A>) {
351
- return (self: Vector<A>): boolean => {
352
- return self.corresponds(that, Equatable.strictEquals);
353
- };
354
- }
355
354
 
356
- type PredState = {
357
- predicate: (a: any) => boolean;
358
- result: any;
359
- };
360
-
361
- function everyCb<A>(value: A, state: any): boolean {
362
- return (state.result = state.predicate(value));
363
- }
364
-
365
- /**
366
- * Returns `true` if and only if the predicate function returns `true`
367
- * for all elements in the given Vector.
368
- *
369
- * @complexity O(n)
370
- * @tsplus pipeable fncts.Vector every
371
- */
372
- export function every<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => self is Vector<B>;
373
- export function every<A>(predicate: Predicate<A>): (self: Vector<A>) => boolean;
374
- export function every<A>(predicate: Predicate<A>) {
375
- return (self: Vector<A>): boolean => {
376
- return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, self).result;
377
- };
355
+ function elemCb(value: any, state: ElemState): boolean {
356
+ return !(state.result = state.equals(state.element)(value));
378
357
  }
379
358
 
380
359
  /**
@@ -394,24 +373,37 @@ export function emptyPushable<A = never>(): MutableVector<A> {
394
373
  return new Vector(0, 0, 0, [], undefined, []) as any;
395
374
  }
396
375
 
397
- function someCb<A>(value: A, state: PredState): boolean {
398
- return !(state.result = state.predicate(value));
376
+ /**
377
+ * Returns true if the two Vectors are equivalent.
378
+ *
379
+ * @complexity O(n)
380
+ * @tsplus pipeable fncts.Vector equals
381
+ */
382
+ export function equals<A>(that: Vector<A>) {
383
+ return (self: Vector<A>): boolean => {
384
+ return self.corresponds(that, Equatable.strictEquals);
385
+ };
399
386
  }
400
387
 
401
388
  /**
402
- * Returns true if and only if there exists an element in the Vector for
403
- * which the predicate returns true.
389
+ * Returns `true` if and only if the predicate function returns `true`
390
+ * for all elements in the given Vector.
404
391
  *
405
392
  * @complexity O(n)
406
- *
407
- * @tsplus pipeable fncts.Vector some
393
+ * @tsplus pipeable fncts.Vector every
408
394
  */
409
- export function some<A>(predicate: Predicate<A>) {
395
+ export function every<A, B extends A>(refinement: Refinement<A, B>): (self: Vector<A>) => self is Vector<B>;
396
+ export function every<A>(predicate: Predicate<A>): (self: Vector<A>) => boolean;
397
+ export function every<A>(predicate: Predicate<A>) {
410
398
  return (self: Vector<A>): boolean => {
411
- return foldLeftCb<A, PredState>(someCb, { predicate, result: false }, self).result;
399
+ return foldLeftCb<A, PredState>(everyCb, { predicate, result: true }, self).result;
412
400
  };
413
401
  }
414
402
 
403
+ function everyCb<A>(value: A, state: any): boolean {
404
+ return (state.result = state.predicate(value));
405
+ }
406
+
415
407
  /**
416
408
  * Returns the _first_ element for which the predicate returns `true`.
417
409
  * If no such element is found the function returns `undefined`.
@@ -425,15 +417,13 @@ export function find<A>(predicate: Predicate<A>) {
425
417
  };
426
418
  }
427
419
 
428
- type FindIndexState = {
429
- predicate: (a: any) => boolean;
430
- found: boolean;
431
- index: number;
432
- };
433
-
434
- function findIndexCb<A>(value: A, state: FindIndexState): boolean {
435
- ++state.index;
436
- return !(state.found = state.predicate(value));
420
+ function findCb<A>(value: A, state: PredState): boolean {
421
+ if (state.predicate(value)) {
422
+ state.result = value;
423
+ return false;
424
+ } else {
425
+ return true;
426
+ }
437
427
  }
438
428
 
439
429
  /**
@@ -451,6 +441,11 @@ export function findIndex<A>(predicate: Predicate<A>) {
451
441
  };
452
442
  }
453
443
 
444
+ function findIndexCb<A>(value: A, state: FindIndexState): boolean {
445
+ ++state.index;
446
+ return !(state.found = state.predicate(value));
447
+ }
448
+
454
449
  /**
455
450
  * Returns the _last_ element for which the predicate returns `true`.
456
451
  * If no such element is found the function returns `undefined`.
@@ -479,6 +474,15 @@ export function findLastIndex<A>(predicate: Predicate<A>) {
479
474
  };
480
475
  }
481
476
 
477
+ function findNotIndexCb(value: any, state: FindNotIndexState): boolean {
478
+ if (state.predicate(value)) {
479
+ ++state.index;
480
+ return true;
481
+ } else {
482
+ return false;
483
+ }
484
+ }
485
+
482
486
  /**
483
487
  * Flattens a Vector of Vectors into a Vector. Note that this function does
484
488
  * not flatten recursively. It removes one level of nesting only.
@@ -491,81 +495,15 @@ export function flatten<A>(self: Vector<Vector<A>>): Vector<A> {
491
495
  return self.foldLeft<Vector<A>, Vector<A>>(Vector.empty(), (acc, a) => acc.concat(a));
492
496
  }
493
497
 
494
- /**
495
- * Converts an array, an array-like, or an iterable into a Vector.
496
- *
497
- * @complexity O(n)
498
- * @tsplus static fncts.VectorOps from
499
- */
500
- export function from<A>(sequence: A[] | ArrayLike<A> | Iterable<A>): Vector<A>;
501
- export function from<A>(sequence: any): Vector<A> {
502
- const l = emptyPushable<A>();
503
- if (sequence.length > 0 && (sequence[0] !== undefined || 0 in sequence)) {
504
- for (let i = 0; i < sequence.length; ++i) {
505
- l.push(sequence[i]);
506
- }
507
- } else if (Symbol.iterator in sequence) {
508
- const iterator = sequence[Symbol.iterator]();
509
- let cur;
510
- while (!(cur = iterator.next()).done) {
511
- l.push(cur.value);
512
- }
513
- }
514
- return l;
515
- }
516
-
517
- /**
518
- * Folds a function over a Vector. Left-associative.
519
- *
520
- * @tsplus pipeable fncts.Vector foldLeft
521
- */
522
- export function foldLeft<A, B>(initial: B, f: (acc: B, a: A) => B) {
523
- return (self: Vector<A>): B => {
524
- return self.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
525
- };
526
- }
527
-
528
- /**
529
- * @tsplus pipeable fncts.Vector foldLeftWithIndex
530
- */
531
- export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
532
- return (self: Vector<A>): B => {
533
- const suffixSize = getSuffixSize(self);
534
- const prefixSize = getPrefixSize(self);
535
- let [acc, index] = foldLeftPrefix(f, b, self.prefix, prefixSize);
536
- if (self.root !== undefined) {
537
- [acc, index] = foldLeftNode(f, acc, self.root, getDepth(self), index);
538
- }
539
- return foldLeftSuffix(f, acc, self.suffix, suffixSize, index)[0];
540
- };
541
- }
542
-
543
- type FoldWhileState<A, B> = {
544
- predicate: Predicate<B>;
545
- result: B;
546
- f: (i: number, b: B, a: A) => B;
547
- };
548
-
549
- /**
550
- * Similar to `foldl`. But, for each element it calls the predicate function
551
- * _before_ the folding function and stops folding if it returns `false`.
552
- *
553
- *
554
- * @example
555
- * const isOdd = (_acc:, x) => x % 2 === 1;
556
- *
557
- * const xs = V.vector(1, 3, 5, 60, 777, 800);
558
- * foldlWhile(isOdd, (n, m) => n + m, 0, xs) //=> 9
559
- *
560
- * const ys = V.vector(2, 4, 6);
561
- * foldlWhile(isOdd, (n, m) => n + m, 111, ys) //=> 111
562
- */
563
- function foldWhileCb<A, B>(a: A, state: FoldWhileState<A, B>, i: number): boolean {
564
- if (state.predicate(state.result) === false) {
565
- return false;
566
- }
567
- state.result = state.f(i, state.result, a);
568
- return true;
498
+ /**
499
+ * Folds a function over a Vector. Left-associative.
500
+ *
501
+ * @tsplus pipeable fncts.Vector foldLeft
502
+ */
503
+ export function foldLeft<A, B>(initial: B, f: (acc: B, a: A) => B) {
504
+ return (self: Vector<A>): B => {
505
+ return self.foldLeftWithIndex(initial, (_, b, a) => f(b, a));
506
+ };
569
507
  }
570
508
 
571
509
  /**
@@ -581,15 +519,17 @@ export function foldLeftWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, b:
581
519
  }
582
520
 
583
521
  /**
584
- * @tsplus pipeable fncts.Vector foldRightWhile
522
+ * @tsplus pipeable fncts.Vector foldLeftWithIndex
585
523
  */
586
- export function foldRightWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, a: A, b: B) => B) {
524
+ export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
587
525
  return (self: Vector<A>): B => {
588
- return foldRightCb<A, FoldWhileState<A, B>>(
589
- foldWhileCb,
590
- { predicate: cont, result: b, f: (i, b, a) => f(i, a, b) },
591
- self,
592
- ).result;
526
+ const suffixSize = getSuffixSize(self);
527
+ const prefixSize = getPrefixSize(self);
528
+ let [acc, index] = foldLeftPrefix(f, b, self.prefix, prefixSize);
529
+ if (self.root !== undefined) {
530
+ [acc, index] = foldLeftNode(f, acc, self.root, getDepth(self), index);
531
+ }
532
+ return foldLeftSuffix(f, acc, self.suffix, suffixSize, index)[0];
593
533
  };
594
534
  }
595
535
 
@@ -623,6 +563,19 @@ export function foldRight<A, B>(initial: B, f: (value: A, acc: B) => B) {
623
563
  };
624
564
  }
625
565
 
566
+ /**
567
+ * @tsplus pipeable fncts.Vector foldRightWhile
568
+ */
569
+ export function foldRightWhile<A, B>(b: B, cont: Predicate<B>, f: (i: number, a: A, b: B) => B) {
570
+ return (self: Vector<A>): B => {
571
+ return foldRightCb<A, FoldWhileState<A, B>>(
572
+ foldWhileCb,
573
+ { predicate: cont, result: b, f: (i, b, a) => f(i, a, b) },
574
+ self,
575
+ ).result;
576
+ };
577
+ }
578
+
626
579
  /**
627
580
  * Folds a function over a Vector. Right-associative.
628
581
  *
@@ -641,6 +594,28 @@ export function foldRightWithIndex<A, B>(b: B, f: (i: number, a: A, b: B) => B)
641
594
  };
642
595
  }
643
596
 
597
+ /**
598
+ * Similar to `foldl`. But, for each element it calls the predicate function
599
+ * _before_ the folding function and stops folding if it returns `false`.
600
+ *
601
+ *
602
+ * @example
603
+ * const isOdd = (_acc:, x) => x % 2 === 1;
604
+ *
605
+ * const xs = V.vector(1, 3, 5, 60, 777, 800);
606
+ * foldlWhile(isOdd, (n, m) => n + m, 0, xs) //=> 9
607
+ *
608
+ * const ys = V.vector(2, 4, 6);
609
+ * foldlWhile(isOdd, (n, m) => n + m, 111, ys) //=> 111
610
+ */
611
+ function foldWhileCb<A, B>(a: A, state: FoldWhileState<A, B>, i: number): boolean {
612
+ if (state.predicate(state.result) === false) {
613
+ return false;
614
+ }
615
+ state.result = state.f(i, state.result, a);
616
+ return true;
617
+ }
618
+
644
619
  /**
645
620
  * Invokes a given callback for each element in the Vector from left to
646
621
  * right. Returns `undefined`.
@@ -668,6 +643,29 @@ export function forEachWithIndex<A>(f: (i: number, a: A) => void) {
668
643
  };
669
644
  }
670
645
 
646
+ /**
647
+ * Converts an array, an array-like, or an iterable into a Vector.
648
+ *
649
+ * @complexity O(n)
650
+ * @tsplus static fncts.VectorOps from
651
+ */
652
+ export function from<A>(sequence: A[] | ArrayLike<A> | Iterable<A>): Vector<A>;
653
+ export function from<A>(sequence: any): Vector<A> {
654
+ const l = emptyPushable<A>();
655
+ if (sequence.length > 0 && (sequence[0] !== undefined || 0 in sequence)) {
656
+ for (let i = 0; i < sequence.length; ++i) {
657
+ l.push(sequence[i]);
658
+ }
659
+ } else if (Symbol.iterator in sequence) {
660
+ const iterator = sequence[Symbol.iterator]();
661
+ let cur;
662
+ while (!(cur = iterator.next()).done) {
663
+ l.push(cur.value);
664
+ }
665
+ }
666
+ return l;
667
+ }
668
+
671
669
  /**
672
670
  * Gets the nth element of the Vector. If `n` is out of bounds
673
671
  * `undefined` is returned.
@@ -729,17 +727,6 @@ export function includes<A>(element: A) {
729
727
  };
730
728
  }
731
729
 
732
- type IndexOfState = {
733
- element: any;
734
- found: boolean;
735
- index: number;
736
- };
737
-
738
- function indexOfCb(value: any, state: IndexOfState): boolean {
739
- ++state.index;
740
- return !(state.found = Equatable.strictEquals(value, state.element));
741
- }
742
-
743
730
  /**
744
731
  * Returns the index of the _first_ element in the Vector that is equal
745
732
  * to the given element. If no such element is found `-1` is returned.
@@ -755,16 +742,9 @@ export function indexOf<A>(element: A) {
755
742
  };
756
743
  }
757
744
 
758
- /**
759
- * Inserts the given element at the given index in the Vector.
760
- *
761
- * @complexity O(log(n))
762
- * @tsplus pipeable fncts.Vector insertAt
763
- */
764
- export function insertAt<A>(index: number, element: A) {
765
- return (self: Vector<A>): Vector<A> => {
766
- return self.slice(0, index).append(element).concat(self.slice(index, self.length));
767
- };
745
+ function indexOfCb(value: any, state: IndexOfState): boolean {
746
+ ++state.index;
747
+ return !(state.found = Equatable.strictEquals(value, state.element));
768
748
  }
769
749
 
770
750
  /**
@@ -779,6 +759,18 @@ export function insertAllAt<A>(index: number, elements: Vector<A>) {
779
759
  };
780
760
  }
781
761
 
762
+ /**
763
+ * Inserts the given element at the given index in the Vector.
764
+ *
765
+ * @complexity O(log(n))
766
+ * @tsplus pipeable fncts.Vector insertAt
767
+ */
768
+ export function insertAt<A>(index: number, element: A) {
769
+ return (self: Vector<A>): Vector<A> => {
770
+ return self.slice(0, index).append(element).concat(self.slice(index, self.length));
771
+ };
772
+ }
773
+
782
774
  /**
783
775
  * Inserts a separator between each element in a Vector.
784
776
  *
@@ -855,19 +847,6 @@ export function makeBy<A>(n: number, f: (index: number) => A): Vector<A> {
855
847
  return l;
856
848
  }
857
849
 
858
- /**
859
- * @tsplus pipeable fncts.Vector mapAccum
860
- */
861
- export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
862
- return (self: Vector<A>): readonly [Vector<B>, S] => {
863
- return self.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
864
- const r = f(s, a);
865
- acc.push(r[0]);
866
- return [acc, r[1]];
867
- });
868
- };
869
- }
870
-
871
850
  /**
872
851
  * Applies a function to each element in the given Vector and returns a
873
852
  * new Vector of the values that the function return.
@@ -881,6 +860,19 @@ export function map<A, B>(f: (a: A) => B) {
881
860
  };
882
861
  }
883
862
 
863
+ /**
864
+ * @tsplus pipeable fncts.Vector mapAccum
865
+ */
866
+ export function mapAccum<A, S, B>(s: S, f: (s: S, a: A) => readonly [B, S]) {
867
+ return (self: Vector<A>): readonly [Vector<B>, S] => {
868
+ return self.foldLeft([Vector.emptyPushable(), s], ([acc, s], a) => {
869
+ const r = f(s, a);
870
+ acc.push(r[0]);
871
+ return [acc, r[1]];
872
+ });
873
+ };
874
+ }
875
+
884
876
  /**
885
877
  * Applies a function to each element in the given Vector and returns a
886
878
  * new Vector of the values that the function return.
@@ -901,13 +893,6 @@ export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
901
893
  };
902
894
  }
903
895
 
904
- /**
905
- * @tsplus getter fncts.Vector mutableClone
906
- */
907
- export function mutableClone<A>(self: Vector<A>): MutableVector<A> {
908
- return new Vector(self.bits, self.offset, self.length, self.prefix, self.root, self.suffix) as any;
909
- }
910
-
911
896
  /**
912
897
  * Returns a Vector that has the entry specified by the index replaced with
913
898
  * the value returned by applying the function to the value.
@@ -928,6 +913,13 @@ export function modifyAt<A>(i: number, f: (a: A) => A) {
928
913
  };
929
914
  }
930
915
 
916
+ /**
917
+ * @tsplus getter fncts.Vector mutableClone
918
+ */
919
+ export function mutableClone<A>(self: Vector<A>): MutableVector<A> {
920
+ return new Vector(self.bits, self.offset, self.length, self.prefix, self.root, self.suffix) as any;
921
+ }
922
+
931
923
  /**
932
924
  * Returns `true` if and only if the predicate function returns
933
925
  * `false` for every element in the given Vector.
@@ -1187,6 +1179,24 @@ export function slice(from: number, to: number) {
1187
1179
  };
1188
1180
  }
1189
1181
 
1182
+ /**
1183
+ * Returns true if and only if there exists an element in the Vector for
1184
+ * which the predicate returns true.
1185
+ *
1186
+ * @complexity O(n)
1187
+ *
1188
+ * @tsplus pipeable fncts.Vector some
1189
+ */
1190
+ export function some<A>(predicate: Predicate<A>) {
1191
+ return (self: Vector<A>): boolean => {
1192
+ return foldLeftCb<A, PredState>(someCb, { predicate, result: false }, self).result;
1193
+ };
1194
+ }
1195
+
1196
+ function someCb<A>(value: A, state: PredState): boolean {
1197
+ return !(state.result = state.predicate(value));
1198
+ }
1199
+
1190
1200
  /**
1191
1201
  * @tsplus pipeable fncts.Vector sort
1192
1202
  */
@@ -1282,22 +1292,6 @@ export function take(n: number) {
1282
1292
  };
1283
1293
  }
1284
1294
 
1285
- /**
1286
- * Takes the first elements in the Vector for which the predicate returns
1287
- * `true`.
1288
- *
1289
- * @complexity `O(k + log(n))` where `k` is the number of elements satisfying
1290
- * the predicate.
1291
- *
1292
- * @tsplus pipeable fncts.Vector takeWhile
1293
- */
1294
- export function takeWhile<A>(predicate: Predicate<A>) {
1295
- return (self: Vector<A>): Vector<A> => {
1296
- const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
1297
- return self.slice(0, index);
1298
- };
1299
- }
1300
-
1301
1295
  /**
1302
1296
  * Takes the last `n` elements from a Vector and returns them in a new
1303
1297
  * Vector.
@@ -1327,6 +1321,22 @@ export function takeLastWhile<A>(predicate: Predicate<A>) {
1327
1321
  };
1328
1322
  }
1329
1323
 
1324
+ /**
1325
+ * Takes the first elements in the Vector for which the predicate returns
1326
+ * `true`.
1327
+ *
1328
+ * @complexity `O(k + log(n))` where `k` is the number of elements satisfying
1329
+ * the predicate.
1330
+ *
1331
+ * @tsplus pipeable fncts.Vector takeWhile
1332
+ */
1333
+ export function takeWhile<A>(predicate: Predicate<A>) {
1334
+ return (self: Vector<A>): Vector<A> => {
1335
+ const { index } = foldLeftCb(findNotIndexCb, { predicate, index: 0 }, self);
1336
+ return self.slice(0, index);
1337
+ };
1338
+ }
1339
+
1330
1340
  /**
1331
1341
  * Converts a Vector into an array.
1332
1342
  *
@@ -1351,17 +1361,28 @@ export function toList<A>(self: Vector<A>): List<A> {
1351
1361
  return buffer.toList;
1352
1362
  }
1353
1363
 
1364
+ /**
1365
+ * @tsplus getter fncts.Vector traverse
1366
+ */
1367
+ export function traverse_<A>(self: Vector<A>) {
1368
+ return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1369
+ <K, Q, W, X, I, S, R, E, B>(
1370
+ f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1371
+ ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>> =>
1372
+ self.traverseWithIndex(G)((_, a) => f(a));
1373
+ }
1354
1374
  /**
1355
1375
  * @tsplus getter fncts.Vector traverseWithIndex
1356
1376
  */
1357
- export function _traverseWithIndex<A>(
1377
+ export function traverseWithIndex_<A>(
1358
1378
  self: Vector<A>,
1359
1379
  ): <G extends HKT, GC = HKT.None>(
1360
1380
  G: P.Applicative<G, GC>,
1361
1381
  ) => <K, Q, W, X, I, S, R, E, B>(
1362
1382
  f: (i: number, a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1363
1383
  ) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>>;
1364
- export function _traverseWithIndex<A>(
1384
+
1385
+ export function traverseWithIndex_<A>(
1365
1386
  self: Vector<A>,
1366
1387
  ): <G>(G: P.Applicative<HKT.F<G>>) => <B>(f: (i: number, a: A) => HKT.FK1<G, B>) => HKT.FK1<G, Vector<B>> {
1367
1388
  return (G) => (f) =>
@@ -1375,34 +1396,12 @@ export function _traverseWithIndex<A>(
1375
1396
  );
1376
1397
  }
1377
1398
 
1378
- /**
1379
- * @tsplus getter fncts.Vector traverse
1380
- */
1381
- export function _traverse<A>(self: Vector<A>) {
1382
- return <G extends HKT, GC = HKT.None>(G: P.Applicative<G, GC>) =>
1383
- <K, Q, W, X, I, S, R, E, B>(
1384
- f: (a: A) => HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, B>,
1385
- ): HKT.Kind<G, GC, K, Q, W, X, I, S, R, E, Vector<B>> =>
1386
- self.traverseWithIndex(G)((_, a) => f(a));
1387
- }
1388
-
1389
1399
  export const traverseWithIndex: P.TraversableWithIndex<VectorF>["traverseWithIndex"] = (G) => (f) => (self) =>
1390
1400
  self.traverseWithIndex(G)(f);
1391
1401
 
1392
1402
  export const traverse: Traversable<VectorF>["traverse"] = (G) => (f) => (self) =>
1393
1403
  self.traverseWithIndex(G)((_, a) => f(a));
1394
1404
 
1395
- /**
1396
- * Returns a new Vector without repeated elements by using the given
1397
- * Eq instance to determine when elements are equal
1398
- *
1399
- * @complexity `O(n)`
1400
- * @tsplus pipeable fncts.Vector uniq
1401
- */
1402
- export function uniq<A>(E: Eq<A>) {
1403
- return (self: Vector<A>) => self.dropRepeatsWith((a, b) => E.equals(b)(a));
1404
- }
1405
-
1406
1405
  /**
1407
1406
  * @tsplus static fncts.VectorOps unfold
1408
1407
  */
@@ -1423,13 +1422,15 @@ export function unfold<A, B>(b: B, f: (b: B) => Maybe<readonly [A, B]>): Vector<
1423
1422
  return out;
1424
1423
  }
1425
1424
 
1426
- function findCb<A>(value: A, state: PredState): boolean {
1427
- if (state.predicate(value)) {
1428
- state.result = value;
1429
- return false;
1430
- } else {
1431
- return true;
1432
- }
1425
+ /**
1426
+ * Returns a new Vector without repeated elements by using the given
1427
+ * Eq instance to determine when elements are equal
1428
+ *
1429
+ * @complexity `O(n)`
1430
+ * @tsplus pipeable fncts.Vector uniq
1431
+ */
1432
+ export function uniq<A>(E: Eq<A>) {
1433
+ return (self: Vector<A>) => self.dropRepeatsWith((a, b) => E.equals(b)(a));
1433
1434
  }
1434
1435
 
1435
1436
  /**