@fncts/base 0.0.40 → 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 (645) 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/immutable/Conc/api/makeBy.cjs +1 -2
  15. package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
  16. package/_cjs/collection/immutable/Conc/api/replicate.cjs +1 -2
  17. package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
  18. package/_cjs/collection/immutable/Conc/api.cjs +1 -2
  19. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  20. package/_cjs/collection/immutable/Conc/constructors.cjs +3 -4
  21. package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
  22. package/_cjs/collection/immutable/Conc/definition.cjs +3 -3
  23. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  24. package/_cjs/collection/immutable/Dictionary/api.cjs +1 -2
  25. package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
  26. package/_cjs/collection/immutable/Dictionary/definition.cjs +1 -2
  27. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  28. package/_cjs/collection/immutable/HashMap/api.cjs +1 -2
  29. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  30. package/_cjs/collection/immutable/HashMap/definition.cjs +1 -2
  31. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  32. package/_cjs/collection/immutable/HashMap/internal.cjs +1 -2
  33. package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
  34. package/_cjs/collection/immutable/HashSet/api.cjs +1 -2
  35. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  36. package/_cjs/collection/immutable/HashSet/definition.cjs +1 -2
  37. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  38. package/_cjs/collection/immutable/List/api/foldLeft.cjs +1 -2
  39. package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
  40. package/_cjs/collection/immutable/List/api/unsafeTail.cjs +1 -2
  41. package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
  42. package/_cjs/collection/immutable/List/api.cjs +3 -4
  43. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  44. package/_cjs/collection/immutable/List/constructors.cjs +1 -2
  45. package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
  46. package/_cjs/collection/immutable/List/definition.cjs +1 -2
  47. package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
  48. package/_cjs/collection/immutable/Queue/api.cjs +1 -2
  49. package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
  50. package/_cjs/collection/immutable/Queue/constructors.cjs +1 -2
  51. package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
  52. package/_cjs/collection/immutable/Queue/definition.cjs +1 -2
  53. package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
  54. package/_cjs/collection/immutable/Queue/guards.cjs +1 -2
  55. package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
  56. package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs +18 -0
  57. package/_cjs/collection/immutable/ReadonlyArray/api/chunksOf.cjs.map +1 -0
  58. package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs +15 -0
  59. package/_cjs/collection/immutable/ReadonlyArray/api/splitAt.cjs.map +1 -0
  60. package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs +26 -0
  61. package/_cjs/collection/immutable/ReadonlyArray/api/splitWhere.cjs.map +1 -0
  62. package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api.cjs +562 -538
  63. package/_cjs/collection/immutable/ReadonlyArray/api.cjs.map +1 -0
  64. package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs +55 -0
  65. package/_cjs/collection/immutable/ReadonlyArray/constructors.cjs.map +1 -0
  66. package/_cjs/collection/immutable/ReadonlyArray/definition.cjs.map +1 -0
  67. package/_cjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.cjs +5 -7
  68. package/_cjs/collection/immutable/ReadonlyArray/instances.cjs.map +1 -0
  69. package/_cjs/collection/immutable/{ImmutableArray.cjs → ReadonlyArray.cjs} +8 -19
  70. package/_cjs/collection/immutable/ReadonlyArray.cjs.map +1 -0
  71. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs +472 -0
  72. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/api.cjs.map +1 -0
  73. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs +79 -0
  74. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/constructors.cjs.map +1 -0
  75. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs +2 -0
  76. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/definition.cjs.map +1 -0
  77. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs +49 -0
  78. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/destructors.cjs.map +1 -0
  79. package/_cjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.cjs +3 -4
  80. package/_cjs/collection/immutable/ReadonlyNonEmptyArray/instances.cjs.map +1 -0
  81. package/_cjs/collection/immutable/{ImmutableNonEmptyArray.cjs → ReadonlyNonEmptyArray.cjs} +6 -6
  82. package/_cjs/collection/immutable/ReadonlyNonEmptyArray.cjs.map +1 -0
  83. package/_cjs/collection/immutable/RoseTree/api.cjs +1 -2
  84. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
  85. package/_cjs/collection/immutable/RoseTree/definition.cjs +1 -2
  86. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  87. package/_cjs/collection/immutable/SortedMap/api.cjs +1 -2
  88. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  89. package/_cjs/collection/immutable/SortedMap/iterator.cjs +1 -2
  90. package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
  91. package/_cjs/collection/immutable/Vector/api.cjs +229 -230
  92. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  93. package/_cjs/collection/immutable/Vector/definition.cjs +1 -2
  94. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  95. package/_cjs/collection/mutable/ArrayDeque.cjs +1 -2
  96. package/_cjs/collection/mutable/ArrayDeque.cjs.map +1 -1
  97. package/_cjs/collection/mutable/HashMap.cjs +1 -2
  98. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  99. package/_cjs/collection/mutable/HashSet.cjs +1 -2
  100. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  101. package/_cjs/collection/mutable/ListBuffer.cjs +1 -2
  102. package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
  103. package/_cjs/collection/weak/IterableWeakMap.cjs +1 -2
  104. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  105. package/_cjs/control/Eval/api.cjs +89 -41
  106. package/_cjs/control/Eval/api.cjs.map +1 -1
  107. package/_cjs/control/Eval/constructors.cjs +5 -1
  108. package/_cjs/control/Eval/constructors.cjs.map +1 -1
  109. package/_cjs/control/Eval/instance.cjs +1 -2
  110. package/_cjs/control/Eval/instance.cjs.map +1 -1
  111. package/_cjs/control/Eval/run.cjs +1 -2
  112. package/_cjs/control/Eval/run.cjs.map +1 -1
  113. package/_cjs/control/Pure/api.cjs +1 -2
  114. package/_cjs/control/Pure/api.cjs.map +1 -1
  115. package/_cjs/control/Pure/definition.cjs +1 -2
  116. package/_cjs/control/Pure/definition.cjs.map +1 -1
  117. package/_cjs/control/Pure/instances.cjs +1 -2
  118. package/_cjs/control/Pure/instances.cjs.map +1 -1
  119. package/_cjs/control/Pure/runtime.cjs +15 -10
  120. package/_cjs/control/Pure/runtime.cjs.map +1 -1
  121. package/_cjs/data/CaseClass.cjs +11 -14
  122. package/_cjs/data/CaseClass.cjs.map +1 -1
  123. package/_cjs/data/Cause/api/fold.cjs +33 -34
  124. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  125. package/_cjs/data/Cause/api/isEmpty.cjs +1 -2
  126. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  127. package/_cjs/data/Cause/api/linearize.cjs +1 -2
  128. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  129. package/_cjs/data/Cause/api/prettyPrint.cjs +1 -2
  130. package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
  131. package/_cjs/data/Cause/api/unified.cjs +1 -2
  132. package/_cjs/data/Cause/api/unified.cjs.map +1 -1
  133. package/_cjs/data/Cause/api.cjs +1 -2
  134. package/_cjs/data/Cause/api.cjs.map +1 -1
  135. package/_cjs/data/Cause/definition.cjs +1 -2
  136. package/_cjs/data/Cause/definition.cjs.map +1 -1
  137. package/_cjs/data/Const/api.cjs +7 -7
  138. package/_cjs/data/Const/api.cjs.map +1 -1
  139. package/_cjs/data/Const/instances.cjs +12 -13
  140. package/_cjs/data/Const/instances.cjs.map +1 -1
  141. package/_cjs/data/Data.cjs +1 -2
  142. package/_cjs/data/Data.cjs.map +1 -1
  143. package/_cjs/data/Datum/api.cjs +110 -113
  144. package/_cjs/data/Datum/api.cjs.map +1 -1
  145. package/_cjs/data/Datum/definition.cjs +1 -2
  146. package/_cjs/data/Datum/definition.cjs.map +1 -1
  147. package/_cjs/data/Datum/instances.cjs +1 -2
  148. package/_cjs/data/Datum/instances.cjs.map +1 -1
  149. package/_cjs/data/Datum.cjs +39 -0
  150. package/_cjs/data/Datum.cjs.map +1 -0
  151. package/_cjs/data/DatumEither/api.cjs +56 -57
  152. package/_cjs/data/DatumEither/api.cjs.map +1 -1
  153. package/_cjs/data/Duration/api.cjs +1 -2
  154. package/_cjs/data/Duration/api.cjs.map +1 -1
  155. package/_cjs/data/Duration/definition.cjs +1 -2
  156. package/_cjs/data/Duration/definition.cjs.map +1 -1
  157. package/_cjs/data/Either/api/align.cjs +1 -2
  158. package/_cjs/data/Either/api/align.cjs.map +1 -1
  159. package/_cjs/data/Either/api/alignWith.cjs +1 -2
  160. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  161. package/_cjs/data/Either/api.cjs +53 -55
  162. package/_cjs/data/Either/api.cjs.map +1 -1
  163. package/_cjs/data/Either/constructors.cjs +21 -22
  164. package/_cjs/data/Either/constructors.cjs.map +1 -1
  165. package/_cjs/data/Either/definition.cjs +1 -2
  166. package/_cjs/data/Either/definition.cjs.map +1 -1
  167. package/_cjs/data/Either/instances.cjs +1 -2
  168. package/_cjs/data/Either/instances.cjs.map +1 -1
  169. package/_cjs/data/EitherT/api.cjs +28 -29
  170. package/_cjs/data/EitherT/api.cjs.map +1 -1
  171. package/_cjs/data/Environment/api.cjs +1 -2
  172. package/_cjs/data/Environment/api.cjs.map +1 -1
  173. package/_cjs/data/Environment/definition.cjs +1 -2
  174. package/_cjs/data/Environment/definition.cjs.map +1 -1
  175. package/_cjs/data/EnvironmentPatch.cjs +2 -3
  176. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  177. package/_cjs/data/Eq/api.cjs +189 -5
  178. package/_cjs/data/Eq/api.cjs.map +1 -1
  179. package/_cjs/data/Eq/derivations.cjs +10 -21
  180. package/_cjs/data/Eq/derivations.cjs.map +1 -1
  181. package/_cjs/data/Equatable/api.cjs +1 -2
  182. package/_cjs/data/Equatable/api.cjs.map +1 -1
  183. package/_cjs/data/Equatable/definition.cjs +1 -2
  184. package/_cjs/data/Equatable/definition.cjs.map +1 -1
  185. package/_cjs/data/Exit/api.cjs +90 -80
  186. package/_cjs/data/Exit/api.cjs.map +1 -1
  187. package/_cjs/data/Exit/constructors.cjs +1 -2
  188. package/_cjs/data/Exit/constructors.cjs.map +1 -1
  189. package/_cjs/data/Exit/definition.cjs +1 -2
  190. package/_cjs/data/Exit/definition.cjs.map +1 -1
  191. package/_cjs/data/FiberId/api.cjs +1 -2
  192. package/_cjs/data/FiberId/api.cjs.map +1 -1
  193. package/_cjs/data/FiberId/definition.cjs +1 -2
  194. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  195. package/_cjs/data/Guard/api.cjs +13 -17
  196. package/_cjs/data/Guard/api.cjs.map +1 -1
  197. package/_cjs/data/HashEq.cjs +1 -2
  198. package/_cjs/data/HashEq.cjs.map +1 -1
  199. package/_cjs/data/Hashable/definition.cjs +1 -2
  200. package/_cjs/data/Hashable/definition.cjs.map +1 -1
  201. package/_cjs/data/Hashable/hash.cjs +1 -2
  202. package/_cjs/data/Hashable/hash.cjs.map +1 -1
  203. package/_cjs/data/Identity/api.cjs +1 -2
  204. package/_cjs/data/Identity/api.cjs.map +1 -1
  205. package/_cjs/data/Identity/definition.cjs +1 -2
  206. package/_cjs/data/Identity/definition.cjs.map +1 -1
  207. package/_cjs/data/Identity/instances.cjs +1 -2
  208. package/_cjs/data/Identity/instances.cjs.map +1 -1
  209. package/_cjs/data/Interval.cjs +1 -2
  210. package/_cjs/data/Interval.cjs.map +1 -1
  211. package/_cjs/data/Intervals.cjs +1 -2
  212. package/_cjs/data/Intervals.cjs.map +1 -1
  213. package/_cjs/data/Maybe/api.cjs +73 -60
  214. package/_cjs/data/Maybe/api.cjs.map +1 -1
  215. package/_cjs/data/Maybe/constructors.cjs +37 -38
  216. package/_cjs/data/Maybe/constructors.cjs.map +1 -1
  217. package/_cjs/data/Maybe/definition.cjs +1 -2
  218. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  219. package/_cjs/data/Maybe/instances.cjs +1 -2
  220. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  221. package/_cjs/data/Newtype.cjs +1 -2
  222. package/_cjs/data/Newtype.cjs.map +1 -1
  223. package/_cjs/data/Ord/api.cjs +1 -2
  224. package/_cjs/data/Ord/api.cjs.map +1 -1
  225. package/_cjs/data/Ord/definition.cjs +1 -2
  226. package/_cjs/data/Ord/definition.cjs.map +1 -1
  227. package/_cjs/data/Ord/instances.cjs +1 -2
  228. package/_cjs/data/Ord/instances.cjs.map +1 -1
  229. package/_cjs/data/Showable/definition.cjs +1 -2
  230. package/_cjs/data/Showable/definition.cjs.map +1 -1
  231. package/_cjs/data/Showable/show.cjs +1 -2
  232. package/_cjs/data/Showable/show.cjs.map +1 -1
  233. package/_cjs/data/Showable/styles.cjs +1 -2
  234. package/_cjs/data/Showable/styles.cjs.map +1 -1
  235. package/_cjs/data/Showable/util.cjs +1 -2
  236. package/_cjs/data/Showable/util.cjs.map +1 -1
  237. package/_cjs/data/Struct/api.cjs +5 -7
  238. package/_cjs/data/Struct/api.cjs.map +1 -1
  239. package/_cjs/data/Struct/definition.cjs +1 -2
  240. package/_cjs/data/Struct/definition.cjs.map +1 -1
  241. package/_cjs/data/Tag/constructors.cjs +1 -2
  242. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  243. package/_cjs/data/Tag/definition.cjs +1 -2
  244. package/_cjs/data/Tag/definition.cjs.map +1 -1
  245. package/_cjs/data/These/api.cjs +86 -87
  246. package/_cjs/data/These/api.cjs.map +1 -1
  247. package/_cjs/data/These/constructors.cjs +1 -2
  248. package/_cjs/data/These/constructors.cjs.map +1 -1
  249. package/_cjs/data/These/definition.cjs +1 -2
  250. package/_cjs/data/These/definition.cjs.map +1 -1
  251. package/_cjs/data/These/destructors.cjs +1 -2
  252. package/_cjs/data/These/destructors.cjs.map +1 -1
  253. package/_cjs/data/These/instances.cjs +1 -2
  254. package/_cjs/data/These/instances.cjs.map +1 -1
  255. package/_cjs/data/Trace/api.cjs +1 -2
  256. package/_cjs/data/Trace/api.cjs.map +1 -1
  257. package/_cjs/data/Trace/constructors.cjs +1 -2
  258. package/_cjs/data/Trace/constructors.cjs.map +1 -1
  259. package/_cjs/data/Zipped.cjs +1 -2
  260. package/_cjs/data/Zipped.cjs.map +1 -1
  261. package/_cjs/data/bigint/instances.cjs +1 -2
  262. package/_cjs/data/bigint/instances.cjs.map +1 -1
  263. package/_cjs/data/boolean/instances.cjs +1 -2
  264. package/_cjs/data/boolean/instances.cjs.map +1 -1
  265. package/_cjs/data/exceptions/IOError.cjs +1 -2
  266. package/_cjs/data/exceptions/IOError.cjs.map +1 -1
  267. package/_cjs/data/exceptions/InterruptedException.cjs +1 -2
  268. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  269. package/_cjs/data/number/instances.cjs +1 -2
  270. package/_cjs/data/number/instances.cjs.map +1 -1
  271. package/_cjs/data/object/instances.cjs +1 -2
  272. package/_cjs/data/object/instances.cjs.map +1 -1
  273. package/_cjs/data/string/api.cjs +1 -2
  274. package/_cjs/data/string/api.cjs.map +1 -1
  275. package/_cjs/data/string/instances.cjs +1 -2
  276. package/_cjs/data/string/instances.cjs.map +1 -1
  277. package/_cjs/internal/Stack.cjs +7 -2
  278. package/_cjs/internal/Stack.cjs.map +1 -1
  279. package/_cjs/optics/At/api.cjs +1 -2
  280. package/_cjs/optics/At/api.cjs.map +1 -1
  281. package/_cjs/optics/At/definition.cjs +1 -2
  282. package/_cjs/optics/At/definition.cjs.map +1 -1
  283. package/_cjs/optics/Index/api.cjs +3 -4
  284. package/_cjs/optics/Index/api.cjs.map +1 -1
  285. package/_cjs/optics/Iso/api.cjs +1 -2
  286. package/_cjs/optics/Iso/api.cjs.map +1 -1
  287. package/_cjs/optics/Iso/definition.cjs +1 -2
  288. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  289. package/_cjs/optics/Lens/api.cjs +2 -3
  290. package/_cjs/optics/Lens/api.cjs.map +1 -1
  291. package/_cjs/optics/Lens/definition.cjs +1 -2
  292. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  293. package/_cjs/optics/Optional/api/compose.cjs +1 -2
  294. package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
  295. package/_cjs/optics/Optional/api/focus.cjs +1 -2
  296. package/_cjs/optics/Optional/api/focus.cjs.map +1 -1
  297. package/_cjs/optics/Optional/api.cjs +1 -2
  298. package/_cjs/optics/Optional/api.cjs.map +1 -1
  299. package/_cjs/optics/Optional/definition.cjs +1 -2
  300. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  301. package/_cjs/optics/Prism/api/compose.cjs +1 -2
  302. package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
  303. package/_cjs/optics/Prism/api/focus.cjs +1 -2
  304. package/_cjs/optics/Prism/api/focus.cjs.map +1 -1
  305. package/_cjs/optics/Prism/api/fromNullable.cjs +1 -2
  306. package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
  307. package/_cjs/optics/Prism/api/just.cjs +1 -2
  308. package/_cjs/optics/Prism/api/just.cjs.map +1 -1
  309. package/_cjs/optics/Prism/definition.cjs +1 -2
  310. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  311. package/_cjs/optics/Traversal/api/compose.cjs +1 -2
  312. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  313. package/_cjs/optics/Traversal/api/focus.cjs +1 -2
  314. package/_cjs/optics/Traversal/api/focus.cjs.map +1 -1
  315. package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -2
  316. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  317. package/_cjs/optics/Traversal/definition.cjs +1 -2
  318. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  319. package/_cjs/typeclass/ApplicativeExcept.cjs +1 -2
  320. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  321. package/_cjs/typeclass/Apply.cjs +1 -2
  322. package/_cjs/typeclass/Apply.cjs.map +1 -1
  323. package/_cjs/typeclass/Chain.cjs +1 -2
  324. package/_cjs/typeclass/Chain.cjs.map +1 -1
  325. package/_cjs/typeclass/MonadExcept.cjs +1 -2
  326. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  327. package/_cjs/typeclass/Monoid.cjs +1 -2
  328. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  329. package/_cjs/typeclass/Semialign.cjs +1 -2
  330. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  331. package/_cjs/typeclass/Semigroup/api.cjs +1 -2
  332. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  333. package/_cjs/typeclass/Semigroup/derivations.cjs +1 -2
  334. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
  335. package/_cjs/typeclass/Witherable.cjs +1 -2
  336. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  337. package/_cjs/typeclass/WitherableWithIndex.cjs +1 -2
  338. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  339. package/_cjs/util/AnsiFormat.cjs +1 -2
  340. package/_cjs/util/AnsiFormat.cjs.map +1 -1
  341. package/_cjs/util/assert.cjs +1 -1
  342. package/_cjs/util/assert.cjs.map +1 -1
  343. package/_cjs/util/pattern.cjs.map +1 -1
  344. package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
  345. package/_mjs/collection/AsyncIterable/api.mjs +366 -0
  346. package/_mjs/collection/AsyncIterable/api.mjs.map +1 -0
  347. package/_mjs/collection/AsyncIterable/definition.mjs +2 -0
  348. package/_mjs/collection/AsyncIterable/definition.mjs.map +1 -0
  349. package/_mjs/collection/AsyncIterable.mjs +4 -0
  350. package/_mjs/collection/AsyncIterable.mjs.map +1 -0
  351. package/_mjs/collection/Iterable/api.mjs +175 -134
  352. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  353. package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
  354. package/_mjs/collection/immutable/Conc/constructors.mjs +2 -2
  355. package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
  356. package/_mjs/collection/immutable/Conc/definition.mjs +1 -1
  357. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  358. package/_mjs/collection/immutable/List/api.mjs +2 -2
  359. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  360. package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/api/chunksOf.mjs +3 -3
  361. package/_mjs/collection/immutable/ReadonlyArray/api/chunksOf.mjs.map +1 -0
  362. package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs +9 -0
  363. package/_mjs/collection/immutable/ReadonlyArray/api/splitAt.mjs.map +1 -0
  364. package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs +19 -0
  365. package/_mjs/collection/immutable/ReadonlyArray/api/splitWhere.mjs.map +1 -0
  366. package/_mjs/collection/immutable/ReadonlyArray/api.mjs +1302 -0
  367. package/_mjs/collection/immutable/ReadonlyArray/api.mjs.map +1 -0
  368. package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs +44 -0
  369. package/_mjs/collection/immutable/ReadonlyArray/constructors.mjs.map +1 -0
  370. package/_mjs/collection/immutable/ReadonlyArray/definition.mjs.map +1 -0
  371. package/_mjs/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.mjs +4 -5
  372. package/_mjs/collection/immutable/ReadonlyArray/instances.mjs.map +1 -0
  373. package/_mjs/collection/immutable/ReadonlyArray.mjs +11 -0
  374. package/_mjs/collection/immutable/ReadonlyArray.mjs.map +1 -0
  375. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs +433 -0
  376. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/api.mjs.map +1 -0
  377. package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/constructors.mjs +16 -15
  378. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/constructors.mjs.map +1 -0
  379. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs +2 -0
  380. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/definition.mjs.map +1 -0
  381. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs +41 -0
  382. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/destructors.mjs.map +1 -0
  383. package/_mjs/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.mjs +2 -2
  384. package/_mjs/collection/immutable/ReadonlyNonEmptyArray/instances.mjs.map +1 -0
  385. package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs +7 -0
  386. package/_mjs/collection/immutable/ReadonlyNonEmptyArray.mjs.map +1 -0
  387. package/_mjs/collection/immutable/Vector/api.mjs +224 -224
  388. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  389. package/_mjs/control/Eval/api.mjs +83 -15
  390. package/_mjs/control/Eval/api.mjs.map +1 -1
  391. package/_mjs/control/Eval/constructors.mjs +4 -0
  392. package/_mjs/control/Eval/constructors.mjs.map +1 -1
  393. package/_mjs/control/Pure/runtime.mjs +14 -8
  394. package/_mjs/control/Pure/runtime.mjs.map +1 -1
  395. package/_mjs/data/CaseClass.mjs +10 -12
  396. package/_mjs/data/CaseClass.mjs.map +1 -1
  397. package/_mjs/data/Cause/api/fold.mjs +32 -32
  398. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  399. package/_mjs/data/Const/api.mjs +7 -7
  400. package/_mjs/data/Const/api.mjs.map +1 -1
  401. package/_mjs/data/Const/instances.mjs +11 -11
  402. package/_mjs/data/Const/instances.mjs.map +1 -1
  403. package/_mjs/data/Datum/api.mjs +107 -108
  404. package/_mjs/data/Datum/api.mjs.map +1 -1
  405. package/_mjs/data/Datum.mjs +5 -0
  406. package/_mjs/data/Datum.mjs.map +1 -0
  407. package/_mjs/data/DatumEither/api.mjs +53 -53
  408. package/_mjs/data/DatumEither/api.mjs.map +1 -1
  409. package/_mjs/data/Either/api.mjs +42 -42
  410. package/_mjs/data/Either/api.mjs.map +1 -1
  411. package/_mjs/data/Either/constructors.mjs +20 -20
  412. package/_mjs/data/Either/constructors.mjs.map +1 -1
  413. package/_mjs/data/EitherT/api.mjs +27 -27
  414. package/_mjs/data/EitherT/api.mjs.map +1 -1
  415. package/_mjs/data/Environment/api.mjs.map +1 -1
  416. package/_mjs/data/EnvironmentPatch.mjs +1 -1
  417. package/_mjs/data/Eq/api.mjs +175 -3
  418. package/_mjs/data/Eq/api.mjs.map +1 -1
  419. package/_mjs/data/Eq/derivations.mjs +8 -19
  420. package/_mjs/data/Eq/derivations.mjs.map +1 -1
  421. package/_mjs/data/Exit/api.mjs +88 -78
  422. package/_mjs/data/Exit/api.mjs.map +1 -1
  423. package/_mjs/data/Guard/api.mjs +12 -15
  424. package/_mjs/data/Guard/api.mjs.map +1 -1
  425. package/_mjs/data/Maybe/api.mjs +71 -58
  426. package/_mjs/data/Maybe/api.mjs.map +1 -1
  427. package/_mjs/data/Maybe/constructors.mjs +36 -36
  428. package/_mjs/data/Maybe/constructors.mjs.map +1 -1
  429. package/_mjs/data/Struct/api.mjs +4 -5
  430. package/_mjs/data/Struct/api.mjs.map +1 -1
  431. package/_mjs/data/These/api.mjs +85 -85
  432. package/_mjs/data/These/api.mjs.map +1 -1
  433. package/_mjs/internal/Stack.mjs +7 -2
  434. package/_mjs/internal/Stack.mjs.map +1 -1
  435. package/_mjs/optics/Index/api.mjs +2 -2
  436. package/_mjs/optics/Index/api.mjs.map +1 -1
  437. package/_mjs/optics/Lens/api.mjs +1 -1
  438. package/_mjs/util/assert.mjs +1 -1
  439. package/_mjs/util/assert.mjs.map +1 -1
  440. package/_mjs/util/pattern.mjs.map +1 -1
  441. package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
  442. package/_src/collection/AsyncIterable/api.ts +369 -0
  443. package/_src/collection/AsyncIterable/definition.ts +7 -0
  444. package/_src/collection/AsyncIterable.ts +4 -0
  445. package/_src/collection/Iterable/api.ts +215 -162
  446. package/_src/collection/Iterable/constructors.ts +0 -2
  447. package/_src/collection/compat/ArrayLike/definition.ts +2 -2
  448. package/_src/collection/compat.ts +0 -1
  449. package/_src/collection/immutable/Conc/constructors.ts +1 -2
  450. package/_src/collection/immutable/Conc/definition.ts +7 -6
  451. package/_src/collection/immutable/List/api.ts +2 -2
  452. package/_src/collection/immutable/ReadonlyArray/api/chunksOf.ts +8 -0
  453. package/_src/collection/immutable/ReadonlyArray/api/splitAt.ts +8 -0
  454. package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/api/splitWhere.ts +3 -3
  455. package/_src/collection/immutable/ReadonlyArray/api.ts +1536 -0
  456. package/_src/collection/immutable/ReadonlyArray/constructors.ts +47 -0
  457. package/_src/collection/{compat/Array → immutable/ReadonlyArray}/definition.ts +8 -0
  458. package/_src/collection/immutable/{ImmutableArray → ReadonlyArray}/instances.ts +22 -22
  459. package/_src/collection/immutable/ReadonlyArray.ts +12 -0
  460. package/_src/collection/immutable/ReadonlyNonEmptyArray/api.ts +481 -0
  461. package/_src/collection/immutable/ReadonlyNonEmptyArray/constructors.ts +76 -0
  462. package/_src/collection/immutable/ReadonlyNonEmptyArray/definition.ts +22 -0
  463. package/_src/collection/immutable/ReadonlyNonEmptyArray/destructors.ts +41 -0
  464. package/_src/collection/immutable/{ImmutableNonEmptyArray → ReadonlyNonEmptyArray}/instances.ts +13 -13
  465. package/_src/collection/immutable/ReadonlyNonEmptyArray.ts +7 -0
  466. package/_src/collection/immutable/Vector/api.ts +310 -309
  467. package/_src/collection/immutable.ts +11 -11
  468. package/_src/collection.ts +6 -5
  469. package/_src/control/Eval/api.ts +109 -16
  470. package/_src/control/Eval/constructors.ts +5 -0
  471. package/_src/control/Pure/runtime.ts +8 -2
  472. package/_src/data/CaseClass.ts +5 -5
  473. package/_src/data/Cause/api/fold.ts +2 -2
  474. package/_src/data/Const/api.ts +8 -8
  475. package/_src/data/Const/instances.ts +10 -10
  476. package/_src/data/Datum/api.ts +113 -113
  477. package/_src/data/Datum.ts +5 -0
  478. package/_src/data/DatumEither/api.ts +41 -43
  479. package/_src/data/Either/api.ts +47 -47
  480. package/_src/data/Either/constructors.ts +14 -16
  481. package/_src/data/EitherT/api.ts +111 -110
  482. package/_src/data/Environment/api.ts +6 -3
  483. package/_src/data/Eq/api.ts +193 -4
  484. package/_src/data/Eq/derivations.ts +12 -19
  485. package/_src/data/Exit/api.ts +89 -77
  486. package/_src/data/Guard/api.ts +11 -11
  487. package/_src/data/Maybe/api.ts +82 -73
  488. package/_src/data/Maybe/constructors.ts +34 -36
  489. package/_src/data/Struct/api.ts +1 -1
  490. package/_src/data/These/api.ts +93 -92
  491. package/_src/data.ts +1 -0
  492. package/_src/global.ts +7 -12
  493. package/_src/internal/Stack.ts +6 -2
  494. package/_src/optics/Index/api.ts +1 -1
  495. package/_src/util/assert.ts +2 -2
  496. package/_src/util/pattern.ts +8 -90
  497. package/_src/util/rand/generator/RandomGenerator.ts +1 -0
  498. package/collection/AsyncIterable/api.d.ts +71 -0
  499. package/collection/AsyncIterable/definition.d.ts +9 -0
  500. package/collection/AsyncIterable.d.ts +2 -0
  501. package/collection/Iterable/api.d.ts +40 -25
  502. package/collection/compat/ArrayLike/definition.d.ts +2 -2
  503. package/collection/compat.d.ts +0 -1
  504. package/collection/immutable/Conc/definition.d.ts +1 -1
  505. package/collection/immutable/ReadonlyArray/api/chunksOf.d.ts +5 -0
  506. package/collection/immutable/ReadonlyArray/api/splitAt.d.ts +5 -0
  507. package/collection/immutable/ReadonlyArray/api/splitWhere.d.ts +6 -0
  508. package/collection/immutable/ReadonlyArray/api.d.ts +614 -0
  509. package/collection/immutable/ReadonlyArray/constructors.d.ts +30 -0
  510. package/collection/{compat/Array → immutable/ReadonlyArray}/definition.d.ts +8 -0
  511. package/collection/immutable/ReadonlyArray/instances.d.ts +87 -0
  512. package/collection/immutable/ReadonlyArray.d.ts +7 -0
  513. package/collection/immutable/ReadonlyNonEmptyArray/api.d.ts +186 -0
  514. package/collection/immutable/ReadonlyNonEmptyArray/constructors.d.ts +45 -0
  515. package/collection/immutable/ReadonlyNonEmptyArray/definition.d.ts +21 -0
  516. package/collection/immutable/ReadonlyNonEmptyArray/destructors.d.ts +31 -0
  517. package/collection/immutable/ReadonlyNonEmptyArray/instances.d.ts +52 -0
  518. package/collection/immutable/ReadonlyNonEmptyArray.d.ts +5 -0
  519. package/collection/immutable/Vector/api.d.ts +93 -93
  520. package/collection/immutable.d.ts +2 -2
  521. package/collection.d.ts +1 -0
  522. package/control/Eval/api.d.ts +27 -5
  523. package/control/Eval/constructors.d.ts +5 -0
  524. package/data/CaseClass.d.ts +2 -3
  525. package/data/Const/api.d.ts +5 -5
  526. package/data/Const/instances.d.ts +4 -4
  527. package/data/Datum/api.d.ts +64 -64
  528. package/data/Datum.d.ts +3 -0
  529. package/data/DatumEither/api.d.ts +25 -25
  530. package/data/Either/api.d.ts +24 -24
  531. package/data/Either/constructors.d.ts +12 -12
  532. package/data/EitherT/api.d.ts +16 -16
  533. package/data/Environment/api.d.ts +4 -2
  534. package/data/Eq/api.d.ts +89 -2
  535. package/data/Eq/derivations.d.ts +7 -0
  536. package/data/Exit/api.d.ts +43 -37
  537. package/data/Guard/api.d.ts +7 -8
  538. package/data/Maybe/api.d.ts +38 -33
  539. package/data/Maybe/constructors.d.ts +16 -16
  540. package/data/These/api.d.ts +26 -26
  541. package/data.d.ts +1 -0
  542. package/global.d.ts +4 -8
  543. package/internal/Stack.d.ts +2 -0
  544. package/optics/Lens/api.d.ts +1 -1
  545. package/package.json +3 -3
  546. package/util/assert.d.ts +1 -1
  547. package/_cjs/collection/compat/Array/api.cjs +0 -142
  548. package/_cjs/collection/compat/Array/api.cjs.map +0 -1
  549. package/_cjs/collection/compat/Array/definition.cjs.map +0 -1
  550. package/_cjs/collection/compat/Array.cjs.map +0 -1
  551. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +0 -19
  552. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +0 -1
  553. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +0 -18
  554. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +0 -1
  555. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +0 -18
  556. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +0 -1
  557. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +0 -28
  558. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +0 -1
  559. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +0 -1
  560. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +0 -59
  561. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +0 -1
  562. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +0 -44
  563. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +0 -1
  564. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +0 -1
  565. package/_cjs/collection/immutable/ImmutableArray.cjs.map +0 -1
  566. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +0 -474
  567. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +0 -1
  568. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +0 -79
  569. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +0 -1
  570. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +0 -36
  571. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +0 -1
  572. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +0 -53
  573. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +0 -1
  574. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +0 -1
  575. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +0 -1
  576. package/_cjs/control/Eval/api/sequenceArray.cjs +0 -17
  577. package/_cjs/control/Eval/api/sequenceArray.cjs.map +0 -1
  578. package/_mjs/collection/compat/Array/api.mjs +0 -125
  579. package/_mjs/collection/compat/Array/api.mjs.map +0 -1
  580. package/_mjs/collection/compat/Array/definition.mjs.map +0 -1
  581. package/_mjs/collection/compat/Array.mjs +0 -4
  582. package/_mjs/collection/compat/Array.mjs.map +0 -1
  583. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +0 -1
  584. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +0 -10
  585. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +0 -1
  586. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +0 -10
  587. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +0 -1
  588. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +0 -20
  589. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +0 -1
  590. package/_mjs/collection/immutable/ImmutableArray/api.mjs +0 -1284
  591. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +0 -1
  592. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +0 -46
  593. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +0 -1
  594. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +0 -35
  595. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +0 -1
  596. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +0 -1
  597. package/_mjs/collection/immutable/ImmutableArray.mjs +0 -12
  598. package/_mjs/collection/immutable/ImmutableArray.mjs.map +0 -1
  599. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +0 -437
  600. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +0 -1
  601. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +0 -1
  602. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -25
  603. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +0 -1
  604. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +0 -43
  605. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +0 -1
  606. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +0 -1
  607. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +0 -7
  608. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +0 -1
  609. package/_mjs/control/Eval/api/sequenceArray.mjs +0 -9
  610. package/_mjs/control/Eval/api/sequenceArray.mjs.map +0 -1
  611. package/_src/collection/compat/Array/api.ts +0 -134
  612. package/_src/collection/compat/Array.ts +0 -4
  613. package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +0 -8
  614. package/_src/collection/immutable/ImmutableArray/api/slice.ts +0 -8
  615. package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +0 -8
  616. package/_src/collection/immutable/ImmutableArray/api.ts +0 -1526
  617. package/_src/collection/immutable/ImmutableArray/constructors.ts +0 -47
  618. package/_src/collection/immutable/ImmutableArray/definition.ts +0 -48
  619. package/_src/collection/immutable/ImmutableArray.ts +0 -13
  620. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +0 -483
  621. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +0 -83
  622. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +0 -47
  623. package/_src/collection/immutable/ImmutableNonEmptyArray/destructors.ts +0 -41
  624. package/_src/collection/immutable/ImmutableNonEmptyArray.ts +0 -7
  625. package/_src/control/Eval/api/sequenceArray.ts +0 -6
  626. package/collection/compat/Array/api.d.ts +0 -62
  627. package/collection/compat/Array.d.ts +0 -2
  628. package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +0 -6
  629. package/collection/immutable/ImmutableArray/api/slice.d.ts +0 -6
  630. package/collection/immutable/ImmutableArray/api/splitAt.d.ts +0 -6
  631. package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +0 -7
  632. package/collection/immutable/ImmutableArray/api.d.ts +0 -602
  633. package/collection/immutable/ImmutableArray/constructors.d.ts +0 -32
  634. package/collection/immutable/ImmutableArray/definition.d.ts +0 -34
  635. package/collection/immutable/ImmutableArray/instances.d.ts +0 -87
  636. package/collection/immutable/ImmutableArray.d.ts +0 -8
  637. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +0 -186
  638. package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +0 -46
  639. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +0 -40
  640. package/collection/immutable/ImmutableNonEmptyArray/destructors.d.ts +0 -32
  641. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +0 -52
  642. package/collection/immutable/ImmutableNonEmptyArray.d.ts +0 -5
  643. package/control/Eval/api/sequenceArray.d.ts +0 -6
  644. /package/_cjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.cjs +0 -0
  645. /package/_mjs/collection/{compat/Array → immutable/ReadonlyArray}/definition.mjs +0 -0
@@ -1,7 +1,16 @@
1
1
  import type * as P from "@fncts/base/typeclass";
2
2
 
3
- import { Iterable } from "@fncts/base/collection/Iterable/definition";
4
3
  import { tuple } from "@fncts/base/data/function";
4
+ import { isNumber } from "@fncts/base/util/predicates";
5
+
6
+ type PartitionHandleResult<A> =
7
+ | {
8
+ emit: true;
9
+ value: A;
10
+ }
11
+ | {
12
+ emit: false;
13
+ };
5
14
 
6
15
  /**
7
16
  * @tsplus pipeable fncts.Iterable ap
@@ -48,73 +57,6 @@ export function append<B>(b: B) {
48
57
  };
49
58
  }
50
59
 
51
- /**
52
- * @tsplus getter fncts.Iterable toIterable
53
- */
54
- export function toIterable<A>(self: Iterable<A>): Iterable<A> {
55
- return self;
56
- }
57
-
58
- /**
59
- * @tsplus getter fncts.Iterable toArray
60
- */
61
- export function toArray<A>(self: Iterable<A>): Array<A> {
62
- return Array.from(self);
63
- }
64
-
65
- /**
66
- * @tsplus pipeable fncts.Iterable flatMap
67
- */
68
- export function flatMap<A, B>(f: (a: A) => Iterable<B>) {
69
- return (self: Iterable<A>): Iterable<B> => {
70
- return Iterable.make<B>(() => {
71
- const ia = self[Symbol.iterator]();
72
- let ib: Iterator<B>;
73
- let va: IteratorResult<A>;
74
- let vb: IteratorResult<B>;
75
- let done = false;
76
- const pullA = (onDone: () => IteratorResult<B>): IteratorResult<B> => {
77
- va = ia.next();
78
- if (va.done) {
79
- return onDone();
80
- }
81
- ib = f(va.value)[Symbol.iterator]();
82
- return pullB(onDone);
83
- };
84
- const pullB = (onDone: () => IteratorResult<B>): IteratorResult<B> => {
85
- if (!ib) {
86
- return pullA(onDone);
87
- }
88
- vb = ib!.next();
89
- if (!vb.done) {
90
- return { done, value: vb.value };
91
- }
92
- return pullA(onDone);
93
- };
94
- return {
95
- next() {
96
- if (done) {
97
- return this.return!();
98
- }
99
- return pullB(() => this.return!());
100
- },
101
- return(value?: unknown) {
102
- if (!done) {
103
- done = true;
104
- if (typeof ia.return === "function") {
105
- ia.return();
106
- }
107
- if (ib && typeof ib.return === "function") {
108
- ib.return();
109
- }
110
- }
111
- return { done, value };
112
- },
113
- };
114
- });
115
- };
116
- }
117
-
118
60
  /**
119
61
  * @tsplus pipeable fncts.Iterable concat
120
62
  */
@@ -315,6 +257,7 @@ export function filterWithIndex<A>(p: PredicateWithIndex<number, A>) {
315
257
  */
316
258
  export function find<A, B extends A>(refinement: Refinement<A, B>): (self: Iterable<A>) => Maybe<B>;
317
259
  export function find<A>(predicate: Predicate<A>): (self: Iterable<A>) => Maybe<A>;
260
+
318
261
  export function find<A>(predicate: Predicate<A>) {
319
262
  return (self: Iterable<A>): Maybe<A> => {
320
263
  for (const value of self) {
@@ -342,6 +285,68 @@ export function findIndex<A>(p: Predicate<A>) {
342
285
  };
343
286
  }
344
287
 
288
+ /**
289
+ * @tsplus pipeable fncts.Iterable flatMap
290
+ */
291
+ export function flatMap<A, B>(f: (a: A) => Iterable<B>) {
292
+ return (self: Iterable<A>): Iterable<B> => {
293
+ return Iterable.make<B>(() => {
294
+ const ia = self[Symbol.iterator]();
295
+ let ib: Iterator<B>;
296
+ let va: IteratorResult<A>;
297
+ let vb: IteratorResult<B>;
298
+ let done = false;
299
+ const pullA = (onDone: () => IteratorResult<B>): IteratorResult<B> => {
300
+ va = ia.next();
301
+ if (va.done) {
302
+ return onDone();
303
+ }
304
+ ib = f(va.value)[Symbol.iterator]();
305
+ return pullB(onDone);
306
+ };
307
+ const pullB = (onDone: () => IteratorResult<B>): IteratorResult<B> => {
308
+ if (!ib) {
309
+ return pullA(onDone);
310
+ }
311
+ vb = ib!.next();
312
+ if (!vb.done) {
313
+ return { done, value: vb.value };
314
+ }
315
+ return pullA(onDone);
316
+ };
317
+ return {
318
+ next() {
319
+ if (done) {
320
+ return this.return!();
321
+ }
322
+ return pullB(() => this.return!());
323
+ },
324
+ return(value?: unknown) {
325
+ if (!done) {
326
+ done = true;
327
+ if (typeof ia.return === "function") {
328
+ ia.return();
329
+ }
330
+ if (ib && typeof ib.return === "function") {
331
+ ib.return();
332
+ }
333
+ }
334
+ return { done, value };
335
+ },
336
+ };
337
+ });
338
+ };
339
+ }
340
+
341
+ /**
342
+ * @tsplus pipeable fncts.Iterable foldLeft
343
+ */
344
+ export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
345
+ return (self: Iterable<A>): B => {
346
+ return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
347
+ };
348
+ }
349
+
345
350
  /**
346
351
  * @tsplus pipeable fncts.Iterable foldLeftWithIndex
347
352
  */
@@ -357,15 +362,6 @@ export function foldLeftWithIndex<A, B>(b: B, f: (i: number, b: B, a: A) => B) {
357
362
  };
358
363
  }
359
364
 
360
- /**
361
- * @tsplus pipeable fncts.Iterable foldLeft
362
- */
363
- export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
364
- return (self: Iterable<A>): B => {
365
- return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
366
- };
367
- }
368
-
369
365
  /**
370
366
  * @tsplus pipeable fncts.Iterable foldMap
371
367
  */
@@ -390,6 +386,15 @@ export function foldMapWithIndex<A, M>(f: (i: number, a: A) => M, /** @tsplus au
390
386
  };
391
387
  }
392
388
 
389
+ /**
390
+ * @tsplus pipeable fncts.Iterable foldRight
391
+ */
392
+ export function foldRight<A, B>(b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>) {
393
+ return (self: Iterable<A>): Eval<B> => {
394
+ return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
395
+ };
396
+ }
397
+
393
398
  /**
394
399
  * @tsplus pipeable fncts.Iterable foldRightWithIndex
395
400
  */
@@ -409,13 +414,75 @@ export function foldRightWithIndex<A, B>(b: Eval<B>, f: (i: number, a: A, b: Eva
409
414
  };
410
415
  }
411
416
 
417
+ function handlePartition<A>(
418
+ predicate: PredicateWithIndex<number, A>,
419
+ i: number,
420
+ a: A,
421
+ h: boolean,
422
+ ): PartitionHandleResult<A> {
423
+ return h === predicate(i, a) ? { emit: true, value: a } : { emit: false };
424
+ }
425
+
426
+ function handlePartitionMap<A, B, C>(
427
+ f: (i: number, a: A) => Either<B, C>,
428
+ i: number,
429
+ a: A,
430
+ h: "Left" | "Right",
431
+ ): PartitionHandleResult<B | C> {
432
+ const bc = f(i, a);
433
+ Either.concrete(bc);
434
+ return h === "Left" && bc._tag === "Left"
435
+ ? { emit: true, value: bc.left }
436
+ : h === "Right" && bc._tag === "Right"
437
+ ? { emit: true, value: bc.right }
438
+ : { emit: false };
439
+ }
440
+
412
441
  /**
413
- * @tsplus pipeable fncts.Iterable foldRight
442
+ * @tsplus getter fncts.Iterable intrinsicSize
414
443
  */
415
- export function foldRight<A, B>(b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>) {
416
- return (self: Iterable<A>): Eval<B> => {
417
- return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
418
- };
444
+ export function intrinsicSize<A>(self: Iterable<A>): Maybe<number> {
445
+ if (self.hasProperty("size") && isNumber(self["size"])) {
446
+ return Just(self.size);
447
+ }
448
+
449
+ if (self.hasProperty("length") && isNumber(self["length"])) {
450
+ return Just(self.length);
451
+ }
452
+
453
+ return Nothing();
454
+ }
455
+
456
+ /**
457
+ * @tsplus getter fncts.Iterable isEmpty
458
+ */
459
+ export function isEmpty<A>(self: Iterable<A>): boolean {
460
+ return self.intrinsicSize.match(
461
+ () => {
462
+ for (const _ of self) {
463
+ return false;
464
+ }
465
+
466
+ return true;
467
+ },
468
+ (n) => n <= 0,
469
+ );
470
+ }
471
+
472
+ /**
473
+ * @tsplus getter fncts.Iterable isNonEmpty
474
+ */
475
+ export function isNonEmpty<A>(self: Iterable<A>): boolean {
476
+ return self.intrinsicSize.match(
477
+ () => {
478
+ for (const _ of self) {
479
+ return true;
480
+ }
481
+
482
+ return false;
483
+ },
484
+ (n) => n > 0,
485
+ );
419
486
  }
420
487
 
421
488
  /**
@@ -462,27 +529,38 @@ export function mapWithIndex<A, B>(f: (i: number, a: A) => B) {
462
529
  };
463
530
  }
464
531
 
465
- type PartitionHandleResult<A> =
466
- | {
467
- emit: true;
468
- value: A;
469
- }
470
- | {
471
- emit: false;
472
- };
473
- function handlePartitionMap<A, B, C>(
474
- f: (i: number, a: A) => Either<B, C>,
475
- i: number,
476
- a: A,
477
- h: "Left" | "Right",
478
- ): PartitionHandleResult<B | C> {
479
- const bc = f(i, a);
480
- Either.concrete(bc);
481
- return h === "Left" && bc._tag === "Left"
482
- ? { emit: true, value: bc.left }
483
- : h === "Right" && bc._tag === "Right"
484
- ? { emit: true, value: bc.right }
485
- : { emit: false };
532
+ /**
533
+ * @tsplus pipeable fncts.Iterable partition
534
+ */
535
+ export function partition<A, B extends A>(
536
+ p: Refinement<A, B>,
537
+ ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<B>];
538
+ export function partition<A>(p: Predicate<A>): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<A>];
539
+ export function partition<A>(p: Predicate<A>) {
540
+ return (self: Iterable<A>): readonly [Iterable<A>, Iterable<A>] => {
541
+ return self.partitionWithIndex((_, a) => p(a));
542
+ };
543
+ }
544
+
545
+ /**
546
+ * @tsplus pipeable fncts.Iterable partitionMap
547
+ */
548
+ export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
549
+ return (self: Iterable<A>): readonly [Iterable<B>, Iterable<C>] => {
550
+ return self.partitionMapWithIndex((_, a) => f(a));
551
+ };
552
+ }
553
+
554
+ /**
555
+ * @tsplus pipeable fncts.Iterable partitionMapWithIndex
556
+ */
557
+ export function partitionMapWithIndex<A, B, C>(f: (i: number, a: A) => Either<B, C>) {
558
+ return (self: Iterable<A>): readonly [Iterable<B>, Iterable<C>] => {
559
+ return tuple(
560
+ Iterable.make(() => partitionMapWithIndexIterator(self, f, "Left")) as Iterable<B>,
561
+ Iterable.make(() => partitionMapWithIndexIterator(self, f, "Right")) as Iterable<C>,
562
+ );
563
+ };
486
564
  }
487
565
 
488
566
  function partitionMapWithIndexIterator<A, B, C>(
@@ -524,35 +602,23 @@ function partitionMapWithIndexIterator<A, B, C>(
524
602
  }
525
603
 
526
604
  /**
527
- * @tsplus pipeable fncts.Iterable partitionMap
528
- */
529
- export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
530
- return (self: Iterable<A>): readonly [Iterable<B>, Iterable<C>] => {
531
- return self.partitionMapWithIndex((_, a) => f(a));
532
- };
533
- }
534
-
535
- /**
536
- * @tsplus pipeable fncts.Iterable partitionMapWithIndex
605
+ * @tsplus pipeable fncts.Iterable partitionWithIndex
537
606
  */
538
- export function partitionMapWithIndex<A, B, C>(f: (i: number, a: A) => Either<B, C>) {
539
- return (self: Iterable<A>): readonly [Iterable<B>, Iterable<C>] => {
607
+ export function partitionWithIndex<A, B extends A>(
608
+ p: RefinementWithIndex<number, A, B>,
609
+ ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<B>];
610
+ export function partitionWithIndex<A>(
611
+ p: PredicateWithIndex<number, A>,
612
+ ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<A>];
613
+ export function partitionWithIndex<A>(p: PredicateWithIndex<number, A>) {
614
+ return (self: Iterable<A>): readonly [Iterable<A>, Iterable<A>] => {
540
615
  return tuple(
541
- Iterable.make(() => partitionMapWithIndexIterator(self, f, "Left")) as Iterable<B>,
542
- Iterable.make(() => partitionMapWithIndexIterator(self, f, "Right")) as Iterable<C>,
616
+ Iterable.make(() => partitionWithIndexIterator(self, p, false)),
617
+ Iterable.make(() => partitionWithIndexIterator(self, p, true)),
543
618
  );
544
619
  };
545
620
  }
546
621
 
547
- function handlePartition<A>(
548
- predicate: PredicateWithIndex<number, A>,
549
- i: number,
550
- a: A,
551
- h: boolean,
552
- ): PartitionHandleResult<A> {
553
- return h === predicate(i, a) ? { emit: true, value: a } : { emit: false };
554
- }
555
-
556
622
  function partitionWithIndexIterator<A>(
557
623
  self: Iterable<A>,
558
624
  predicate: PredicateWithIndex<number, A>,
@@ -591,37 +657,6 @@ function partitionWithIndexIterator<A>(
591
657
  };
592
658
  }
593
659
 
594
- /**
595
- * @tsplus pipeable fncts.Iterable partition
596
- */
597
- export function partition<A, B extends A>(
598
- p: Refinement<A, B>,
599
- ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<B>];
600
- export function partition<A>(p: Predicate<A>): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<A>];
601
- export function partition<A>(p: Predicate<A>) {
602
- return (self: Iterable<A>): readonly [Iterable<A>, Iterable<A>] => {
603
- return self.partitionWithIndex((_, a) => p(a));
604
- };
605
- }
606
-
607
- /**
608
- * @tsplus pipeable fncts.Iterable partitionWithIndex
609
- */
610
- export function partitionWithIndex<A, B extends A>(
611
- p: RefinementWithIndex<number, A, B>,
612
- ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<B>];
613
- export function partitionWithIndex<A>(
614
- p: PredicateWithIndex<number, A>,
615
- ): (self: Iterable<A>) => readonly [Iterable<A>, Iterable<A>];
616
- export function partitionWithIndex<A>(p: PredicateWithIndex<number, A>) {
617
- return (self: Iterable<A>): readonly [Iterable<A>, Iterable<A>] => {
618
- return tuple(
619
- Iterable.make(() => partitionWithIndexIterator(self, p, false)),
620
- Iterable.make(() => partitionWithIndexIterator(self, p, true)),
621
- );
622
- };
623
- }
624
-
625
660
  /**
626
661
  * @tsplus static fncts.IterableOps replicate
627
662
  */
@@ -633,11 +668,15 @@ export function replicate<A>(n: number, a: A): Iterable<A> {
633
668
  * @tsplus getter fncts.Iterable size
634
669
  */
635
670
  export function size<A>(self: Iterable<A>): number {
636
- let len = 0;
637
- for (const _ of self) {
638
- len += 1;
639
- }
640
- return len;
671
+ return self.intrinsicSize.getOrElse(() => {
672
+ let len = 0;
673
+
674
+ for (const _ of self) {
675
+ len += 1;
676
+ }
677
+
678
+ return len;
679
+ });
641
680
  }
642
681
 
643
682
  /**
@@ -683,6 +722,20 @@ export function take(n: number) {
683
722
  };
684
723
  }
685
724
 
725
+ /**
726
+ * @tsplus getter fncts.Iterable toArray
727
+ */
728
+ export function toArray<A>(self: Iterable<A>): Array<A> {
729
+ return Array.from(self);
730
+ }
731
+
732
+ /**
733
+ * @tsplus getter fncts.Iterable toIterable
734
+ */
735
+ export function toIterable<A>(self: Iterable<A>): Iterable<A> {
736
+ return self;
737
+ }
738
+
686
739
  /**
687
740
  * @tsplus pipeable fncts.Iterable zipWith
688
741
  */
@@ -1,7 +1,5 @@
1
1
  import { Iterable } from "@fncts/base/collection/Iterable/definition";
2
2
 
3
- import {} from "./definition.js";
4
-
5
3
  /**
6
4
  * @tsplus static fncts.IterableOps make
7
5
  */
@@ -2,10 +2,10 @@ declare global {
2
2
  /**
3
3
  * @tsplus type fncts.ArrayLike
4
4
  */
5
- interface ArrayLike<T> {}
5
+ export interface ArrayLike<T> {}
6
6
 
7
7
  /**
8
8
  * @tsplus type fncts.ArrayLike
9
9
  */
10
- interface RelativeIndexable<T> {}
10
+ export interface RelativeIndexable<T> {}
11
11
  }
@@ -2,5 +2,4 @@
2
2
  // codegen:start { preset: type-barrel, include: ./compat/*.ts }
3
3
  export type {} from "./compat/Set.js";
4
4
  export type {} from "./compat/Map.js";
5
- export type {} from "./compat/Array.js";
6
5
  // codegen:end
@@ -1,4 +1,3 @@
1
- import { ImmutableArray } from "../ImmutableArray.js";
2
1
  import { ByteChunk, Chunk, Singleton } from "./definition.js";
3
2
 
4
3
  /**
@@ -27,7 +26,7 @@ export function make<A>(...as: ReadonlyArray<A>): Conc<A> {
27
26
  * @tsplus static fncts.ConcOps range
28
27
  */
29
28
  export function range(start: number, end: number): Conc<number> {
30
- return Conc.fromArray(ImmutableArray.range(start, end)._array);
29
+ return Conc.fromArray(Array.range(start, end));
31
30
  }
32
31
 
33
32
  /**
@@ -322,7 +322,9 @@ class AppendN<A> extends ConcImplementation<A> {
322
322
  }
323
323
 
324
324
  [Symbol.iterator](): Iterator<A> {
325
- return this.start.toIterable.concat(this.buffer.toIterable.take(this.bufferUsed))[Symbol.iterator]() as Iterator<A>;
325
+ return this.start.toIterable
326
+ .concat((<ArrayLike<A>>this.buffer).toIterable.take(this.bufferUsed))
327
+ [Symbol.iterator]();
326
328
  }
327
329
 
328
330
  append<A1>(a: A1): ConcImplementation<A | A1> {
@@ -382,7 +384,7 @@ class AppendN<A> extends ConcImplementation<A> {
382
384
  }
383
385
  }
384
386
 
385
- class PrependN<A> extends ConcImplementation<A> {
387
+ export class PrependN<A> extends ConcImplementation<A> {
386
388
  readonly _tag = ConcTag.PrependN;
387
389
 
388
390
  length: number;
@@ -405,10 +407,9 @@ class PrependN<A> extends ConcImplementation<A> {
405
407
  }
406
408
 
407
409
  [Symbol.iterator](): Iterator<A> {
408
- return this.buffer
409
- .slice(BUFFER_SIZE - this.bufferUsed, this.buffer.length)
410
- .toIterable.concat(this.end)
411
- [Symbol.iterator]() as Iterator<A>;
410
+ return (<ArrayLike<A>>this.buffer.slice(BUFFER_SIZE - this.bufferUsed, this.buffer.length)).toIterable
411
+ .concat(this.end)
412
+ [Symbol.iterator]();
412
413
  }
413
414
 
414
415
  prepend<A1>(a: A1): ConcImplementation<A | A1> {
@@ -353,7 +353,7 @@ export function unsafeLast<A>(self: List<A>): A {
353
353
  }
354
354
  let these = self;
355
355
  let scout = self.tail;
356
- while (!scout.isEmpty()) {
356
+ while (scout.isNonEmpty()) {
357
357
  these = scout;
358
358
  scout = scout.tail;
359
359
  }
@@ -363,7 +363,7 @@ export function unsafeLast<A>(self: List<A>): A {
363
363
  function copyToArrayWithIndex<A>(list: List<A>, arr: Array<[number, A]>): void {
364
364
  let these = list;
365
365
  let i = 0;
366
- while (!these.isEmpty()) {
366
+ while (these.isNonEmpty()) {
367
367
  arr[i] = [i, these.head];
368
368
  these = these.tail;
369
369
  i++;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @tsplus pipeable fncts.ReadonlyArray chunksOf
3
+ */
4
+ export function chunksOf(n: number) {
5
+ return <A>(self: ReadonlyArray<A>): ReadonlyArray<ReadonlyArray<A>> => {
6
+ return self.chop((as) => as.splitAt(n));
7
+ };
8
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @tsplus pipeable fncts.ReadonlyArray splitAt
3
+ */
4
+ export function splitAt(n: number) {
5
+ return <A>(as: ReadonlyArray<A>): readonly [ReadonlyArray<A>, ReadonlyArray<A>] => {
6
+ return [as.slice(0, n), as.slice(n)];
7
+ };
8
+ }
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @tsplus pipeable fncts.ImmutableArray splitWhere
2
+ * @tsplus pipeable fncts.ReadonlyArray splitWhere
3
3
  */
4
4
  export function splitWhere<A>(p: Predicate<A>) {
5
- return (self: ImmutableArray<A>): readonly [ImmutableArray<A>, ImmutableArray<A>] => {
5
+ return (self: ReadonlyArray<A>): readonly [ReadonlyArray<A>, ReadonlyArray<A>] => {
6
6
  let cont = true;
7
7
  let i = 0;
8
8
  while (cont && i < self.length) {
9
- if (p(self._array[i]!)) {
9
+ if (p(self[i]!)) {
10
10
  cont = false;
11
11
  } else {
12
12
  i++;