@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
@@ -15,19 +15,6 @@ export function ap<A>(fa: Maybe<A>) {
15
15
  };
16
16
  }
17
17
 
18
- /**
19
- * Applies `f` to the value contained in `Maybe` if it is `Just` and returns the result,
20
- * otherwise returns `Nothing`.
21
- *
22
- * @tsplus pipeable fncts.Maybe flatMap
23
- */
24
- export function flatMap<A, B>(f: (a: A) => Maybe<B>) {
25
- return (self: Maybe<A>): Maybe<B> => {
26
- self.concrete();
27
- return self._tag === MaybeTag.Just ? f(self.value) : (self as Nothing);
28
- };
29
- }
30
-
31
18
  /**
32
19
  * @tsplus pipeable fncts.Maybe elem
33
20
  */
@@ -38,28 +25,17 @@ export function elem<A>(elem: A, /** @tsplus auto */ E: Eq<A>) {
38
25
  };
39
26
  }
40
27
 
41
- /**
42
- * @tsplus pipeable fncts.Maybe some
43
- */
44
- export function some<A>(p: Predicate<A>) {
45
- return (self: Maybe<A>): boolean => {
46
- self.concrete();
47
- return self._tag === MaybeTag.Just ? p(self.value) : false;
48
- };
49
- }
50
-
51
28
  /**
52
29
  * @tsplus pipeable fncts.Maybe filter
53
30
  */
54
- export function filter<A>(p: Predicate<A>): <B>(self: Maybe<A>) => Maybe<A>;
31
+ export function filter<A>(p: Predicate<A>): (self: Maybe<A>) => Maybe<A>;
55
32
  export function filter<A, B extends A>(p: Refinement<A, B>): (self: Maybe<A>) => Maybe<B>;
56
33
  export function filter<A>(p: Predicate<A>) {
57
- return <B>(self: Maybe<A>): Maybe<A> => {
34
+ return (self: Maybe<A>): Maybe<A> => {
58
35
  self.concrete();
59
36
  return self._tag === MaybeTag.Just && p(self.value) ? self : Nothing();
60
37
  };
61
38
  }
62
-
63
39
  /**
64
40
  * @tsplus pipeable fncts.Maybe filter
65
41
  */
@@ -68,41 +44,24 @@ export function filterMap<A, B>(f: (a: A) => Maybe<B>) {
68
44
  return self.flatMap(f);
69
45
  };
70
46
  }
71
-
72
47
  /**
73
- * @tsplus getter fncts.Maybe flatten
74
- */
75
- export function flatten<A>(self: Maybe<Maybe<A>>): Maybe<A> {
76
- return self.flatMap(identity);
77
- }
78
-
79
- /**
80
- * @tsplus pipeable fncts.Maybe partition
48
+ * Applies `f` to the value contained in `Maybe` if it is `Just` and returns the result,
49
+ * otherwise returns `Nothing`.
50
+ *
51
+ * @tsplus pipeable fncts.Maybe flatMap
81
52
  */
82
- export function partition<A>(p: Predicate<A>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<A>];
83
- export function partition<A, B extends A>(p: Refinement<A, B>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<B>];
84
- export function partition<A>(p: Predicate<A>) {
85
- return (self: Maybe<A>): readonly [Maybe<A>, Maybe<A>] => {
53
+ export function flatMap<A, B>(f: (a: A) => Maybe<B>) {
54
+ return (self: Maybe<A>): Maybe<B> => {
86
55
  self.concrete();
87
- return self._tag === MaybeTag.Just && p(self.value) ? [Nothing(), self] : [self, Nothing()];
56
+ return self._tag === MaybeTag.Just ? f(self.value) : (self as Nothing);
88
57
  };
89
58
  }
90
59
 
91
60
  /**
92
- * @tsplus pipeable fncts.Maybe partitionMap
61
+ * @tsplus getter fncts.Maybe flatten
93
62
  */
94
- export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
95
- return (self: Maybe<A>): readonly [Maybe<B>, Maybe<C>] => {
96
- self.concrete();
97
- if (self._tag === MaybeTag.Just) {
98
- return f(self.value).match(
99
- (b) => [Just(b), Nothing()],
100
- (c) => [Nothing(), Just(c)],
101
- );
102
- } else {
103
- return [Nothing(), Nothing()];
104
- }
105
- };
63
+ export function flatten<A>(self: Maybe<Maybe<A>>): Maybe<A> {
64
+ return self.flatMap(identity);
106
65
  }
107
66
 
108
67
  /**
@@ -116,25 +75,23 @@ export function foldLeft<A, B>(b: B, f: (b: B, a: A) => B) {
116
75
  }
117
76
 
118
77
  /**
119
- * @tsplus pipeable fncts.Maybe foldRight
78
+ * @tsplus pipeable fncts.Maybe foldMap
120
79
  */
121
- export function foldRight<A, B>(b: B, f: (a: A, b: B) => B) {
122
- return (self: Maybe<A>): B => {
80
+ export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
81
+ return (self: Maybe<A>): M => {
123
82
  self.concrete();
124
- return self._tag === MaybeTag.Just ? f(self.value, b) : b;
83
+ return self._tag === MaybeTag.Just ? f(self.value) : M.nat;
125
84
  };
126
85
  }
127
-
128
86
  /**
129
- * @tsplus pipeable fncts.Maybe foldMap
87
+ * @tsplus pipeable fncts.Maybe foldRight
130
88
  */
131
- export function foldMap<A, M>(f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>) {
132
- return (self: Maybe<A>): M => {
89
+ export function foldRight<A, B>(b: B, f: (a: A, b: B) => B) {
90
+ return (self: Maybe<A>): B => {
133
91
  self.concrete();
134
- return self._tag === MaybeTag.Just ? f(self.value) : M.nat;
92
+ return self._tag === MaybeTag.Just ? f(self.value, b) : b;
135
93
  };
136
94
  }
137
-
138
95
  /**
139
96
  * Extracts the value from `Maybe` if it exists, or returns the result of `orElse`.
140
97
  *
@@ -147,6 +104,19 @@ export function getOrElse<B>(orElse: Lazy<B>) {
147
104
  };
148
105
  }
149
106
 
107
+ /**
108
+ * @tsplus getter fncts.Maybe getOrThrow
109
+ */
110
+ export function getOrThrow<A>(self: Maybe<A>): A {
111
+ self.concrete();
112
+ switch (self._tag) {
113
+ case MaybeTag.Nothing:
114
+ throw new NoSuchElementError("getOrThrow called on Nothing");
115
+ case MaybeTag.Just:
116
+ return self.value;
117
+ }
118
+ }
119
+
150
120
  /**
151
121
  * Applies `f` to the value contained in `Maybe` if it is `Just`, otherwise returns `Nothing`.
152
122
  *
@@ -160,7 +130,7 @@ export function map<A, B>(f: (a: A) => B) {
160
130
  }
161
131
 
162
132
  /**
163
- * `chain` + `fromNullable`
133
+ * `flatMap(fromNullable)`
164
134
  *
165
135
  * @tsplus pipeable fncts.Maybe mapNullable
166
136
  */
@@ -179,6 +149,45 @@ export function orElse<B>(fb: Lazy<Maybe<B>>) {
179
149
  return self._tag === MaybeTag.Nothing ? fb() : self;
180
150
  };
181
151
  }
152
+ /**
153
+ * @tsplus pipeable fncts.Maybe partition
154
+ */
155
+ export function partition<A>(p: Predicate<A>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<A>];
156
+ export function partition<A, B extends A>(p: Refinement<A, B>): (self: Maybe<A>) => readonly [Maybe<A>, Maybe<B>];
157
+
158
+ export function partition<A>(p: Predicate<A>) {
159
+ return (self: Maybe<A>): readonly [Maybe<A>, Maybe<A>] => {
160
+ self.concrete();
161
+ return self._tag === MaybeTag.Just && p(self.value) ? [Nothing(), self] : [self, Nothing()];
162
+ };
163
+ }
164
+
165
+ /**
166
+ * @tsplus pipeable fncts.Maybe partitionMap
167
+ */
168
+ export function partitionMap<A, B, C>(f: (a: A) => Either<B, C>) {
169
+ return (self: Maybe<A>): readonly [Maybe<B>, Maybe<C>] => {
170
+ self.concrete();
171
+ if (self._tag === MaybeTag.Just) {
172
+ return f(self.value).match(
173
+ (b) => [Just(b), Nothing()],
174
+ (c) => [Nothing(), Just(c)],
175
+ );
176
+ } else {
177
+ return [Nothing(), Nothing()];
178
+ }
179
+ };
180
+ }
181
+
182
+ /**
183
+ * @tsplus pipeable fncts.Maybe some
184
+ */
185
+ export function some<A>(p: Predicate<A>) {
186
+ return (self: Maybe<A>): boolean => {
187
+ self.concrete();
188
+ return self._tag === MaybeTag.Just ? p(self.value) : false;
189
+ };
190
+ }
182
191
 
183
192
  /**
184
193
  * Extracts the value from `Maybe` if it is `Just`, otherwise returns `undefined`
@@ -189,6 +198,15 @@ export function toUndefined<A>(self: Maybe<A>): A | undefined {
189
198
  return self.match(() => undefined, identity);
190
199
  }
191
200
 
201
+ /**
202
+ * @tsplus pipeable fncts.Maybe zip
203
+ */
204
+ export function zip<B>(that: Maybe<B>) {
205
+ return <A>(self: Maybe<A>): Maybe<Zipped.Make<A, B>> => {
206
+ return self.zipWith(that, (a, b) => Zipped(a, b));
207
+ };
208
+ }
209
+
192
210
  /**
193
211
  * @tsplus pipeable fncts.Maybe zipWith
194
212
  */
@@ -199,12 +217,3 @@ export function zipWith<A, B, C>(fb: Maybe<B>, f: (a: A, b: B) => C) {
199
217
  return self._tag === MaybeTag.Just && fb._tag === MaybeTag.Just ? Just(f(self.value, fb.value)) : Nothing();
200
218
  };
201
219
  }
202
-
203
- /**
204
- * @tsplus pipeable fncts.Maybe zip
205
- */
206
- export function zip<B>(that: Maybe<B>) {
207
- return <A>(self: Maybe<A>): Maybe<Zipped.Make<A, B>> => {
208
- return self.zipWith(that, (a, b) => Zipped(a, b));
209
- };
210
- }
@@ -1,21 +1,5 @@
1
1
  import type { Nullable } from "@fncts/base/types";
2
2
 
3
- /**
4
- * @tsplus static fncts.MaybeOps just
5
- * @tsplus static fncts.JustOps __call
6
- */
7
- export function just<A>(a: A, __tsplusTrace?: string): Maybe<A> {
8
- return new Just(a, __tsplusTrace);
9
- }
10
-
11
- /**
12
- * @tsplus static fncts.MaybeOps nothing
13
- * @tsplus static fncts.NothingOps __call
14
- */
15
- export function nothing<A = never>(__tsplusTrace?: string): Maybe<A> {
16
- return new Nothing(__tsplusTrace);
17
- }
18
-
19
3
  /**
20
4
  * @tsplus static fncts.MaybeOps fromNullable
21
5
  */
@@ -38,31 +22,19 @@ export function fromPredicate<A, B extends A>(a: A, p: Refinement<A, B>): Maybe<
38
22
  export function fromPredicate<A>(a: A, p: Predicate<A>): Maybe<A> {
39
23
  return p(a) ? Just(a) : Nothing();
40
24
  }
41
-
42
25
  /**
43
- * @tsplus static fncts.MaybeOps tryCatch
26
+ * @tsplus static fncts.MaybeOps just
27
+ * @tsplus static fncts.JustOps __call
44
28
  */
45
- export function tryCatch<A>(thunk: () => A): Maybe<A> {
46
- try {
47
- return Just(thunk());
48
- } catch {
49
- return Nothing();
50
- }
29
+ export function just<A>(a: A, __tsplusTrace?: string): Maybe<A> {
30
+ return new Just(a, __tsplusTrace);
51
31
  }
52
-
53
32
  /**
54
- * @tsplus static fncts.MaybeOps tryCatchK
33
+ * @tsplus static fncts.MaybeOps nothing
34
+ * @tsplus static fncts.NothingOps __call
55
35
  */
56
- export function tryCatchK<P extends ReadonlyArray<unknown>, A>(f: (...params: P) => A) {
57
- return (...params: P): Maybe<A> => tryCatch(() => f(...params));
58
- }
59
-
60
- class PartialException {
61
- readonly _tag = "PartialException";
62
- }
63
-
64
- function raisePartial(): never {
65
- throw new PartialException();
36
+ export function nothing<A = never>(__tsplusTrace?: string): Maybe<A> {
37
+ return new Nothing(__tsplusTrace);
66
38
  }
67
39
 
68
40
  /**
@@ -80,3 +52,29 @@ export function partial<P extends ReadonlyArray<unknown>, A>(f: (miss: () => nev
80
52
  }
81
53
  };
82
54
  }
55
+
56
+ class PartialException {
57
+ readonly _tag = "PartialException";
58
+ }
59
+
60
+ function raisePartial(): never {
61
+ throw new PartialException();
62
+ }
63
+
64
+ /**
65
+ * @tsplus static fncts.MaybeOps tryCatch
66
+ */
67
+ export function tryCatch<A>(thunk: () => A): Maybe<A> {
68
+ try {
69
+ return Just(thunk());
70
+ } catch {
71
+ return Nothing();
72
+ }
73
+ }
74
+
75
+ /**
76
+ * @tsplus static fncts.MaybeOps tryCatchK
77
+ */
78
+ export function tryCatchK<P extends ReadonlyArray<unknown>, A>(f: (...params: P) => A) {
79
+ return (...params: P): Maybe<A> => tryCatch(() => f(...params));
80
+ }
@@ -101,7 +101,7 @@ export function omit<A extends {}, N extends ReadonlyArray<keyof A>>(keys: [...N
101
101
  ): Struct<{
102
102
  readonly [P in Exclude<keyof A, N[number]>]: A[P];
103
103
  }> => {
104
- const newKeys = keys.asImmutableArray.difference(self.keys.asImmutableArray, Eq({ equals: (y) => (x) => x === y }));
104
+ const newKeys = keys.asReadonlyArray.difference(self.keys, Eq({ equals: (y) => (x) => x === y }));
105
105
  const out = {} as any;
106
106
  for (const key of newKeys) {
107
107
  out[key] = self.getStruct[key];
@@ -2,18 +2,87 @@ import type { Both, Left, Right } from "@fncts/base/data/These/definition";
2
2
  import type * as P from "@fncts/base/typeclass";
3
3
 
4
4
  import { TheseTag } from "@fncts/base/data/These/definition";
5
+
5
6
  /**
6
- * @tsplus fluent fncts.These isLeft
7
+ * @tsplus pipeable fncts.These ap
7
8
  */
8
- export function isLeft<E, A>(self: These<E, A>): self is Left<E> {
9
- return self._tag === TheseTag.Left;
9
+ export function ap<E, A>(that: These<E, A>, /** @tsplus auto */ S: P.Semigroup<E>) {
10
+ return <B>(self: These<E, (a: A) => B>): These<E, B> => {
11
+ return self.zipWith(that, (f, a) => f(a), S);
12
+ };
10
13
  }
11
14
 
12
15
  /**
13
- * @tsplus fluent fncts.These isRight
16
+ * @tsplus pipeable fncts.These bimap
14
17
  */
15
- export function isRight<E, A>(self: These<E, A>): self is Right<A> {
16
- return self._tag === TheseTag.Right;
18
+ export function bimap<E, A, E1, B>(f: (e: E) => E1, g: (a: A) => B) {
19
+ return (self: These<E, A>): These<E1, B> => {
20
+ switch (self._tag) {
21
+ case TheseTag.Left:
22
+ return These.left(f(self.left));
23
+ case TheseTag.Right:
24
+ return These.right(g(self.right));
25
+ case TheseTag.Both:
26
+ return These.both(f(self.left), g(self.right));
27
+ }
28
+ };
29
+ }
30
+
31
+ /**
32
+ * @tsplus pipeable fncts.These catchAll
33
+ */
34
+ export function catchAll<E, B>(f: (e: E) => These<E, B>) {
35
+ return <A>(self: These<E, A>): These<E, A | B> => {
36
+ if (self._tag === TheseTag.Left) {
37
+ return f(self.left);
38
+ }
39
+ return self;
40
+ };
41
+ }
42
+
43
+ /**
44
+ * @tsplus getter fncts.These condemn
45
+ */
46
+ export function condemn<E, A>(self: These<E, A>): These<E, A> {
47
+ if (self._tag === TheseTag.Both) {
48
+ return These.left(self.left);
49
+ }
50
+ return self;
51
+ }
52
+
53
+ /**
54
+ * @tsplus pipeable fncts.These condemnWhen
55
+ */
56
+ export function condemnWhen<E>(p: Predicate<E>) {
57
+ return <A>(self: These<E, A>): These<E, A> => {
58
+ if (self._tag === TheseTag.Both && p(self.left)) {
59
+ return These.left(self.left);
60
+ }
61
+ return self;
62
+ };
63
+ }
64
+
65
+ /**
66
+ * @tsplus pipeable fncts.These flatMap
67
+ */
68
+ export function flatMap<E, A, B>(f: (a: A) => These<E, B>, /** @tsplus auto */ S: P.Semigroup<E>) {
69
+ return (self: These<E, A>): These<E, B> => {
70
+ if (self._tag === TheseTag.Left) {
71
+ return self;
72
+ }
73
+ if (self._tag === TheseTag.Right) {
74
+ return f(self.right);
75
+ }
76
+ const that = f(self.right);
77
+ switch (that._tag) {
78
+ case TheseTag.Left:
79
+ return These.left(S.combine(that.left)(self.left));
80
+ case TheseTag.Right:
81
+ return These.both(self.left, that.right);
82
+ case TheseTag.Both:
83
+ return These.both(S.combine(that.left)(self.left), that.right);
84
+ }
85
+ };
17
86
  }
18
87
 
19
88
  /**
@@ -23,6 +92,20 @@ export function isBoth<E, A>(self: These<E, A>): self is Both<E, A> {
23
92
  return self._tag === TheseTag.Both;
24
93
  }
25
94
 
95
+ /**
96
+ * @tsplus fluent fncts.These isLeft
97
+ */
98
+ export function isLeft<E, A>(self: These<E, A>): self is Left<E> {
99
+ return self._tag === TheseTag.Left;
100
+ }
101
+
102
+ /**
103
+ * @tsplus fluent fncts.These isRight
104
+ */
105
+ export function isRight<E, A>(self: These<E, A>): self is Right<A> {
106
+ return self._tag === TheseTag.Right;
107
+ }
108
+
26
109
  /**
27
110
  * @tsplus pipeable fncts.These map
28
111
  */
@@ -56,18 +139,11 @@ export function mapLeft<E, E1>(f: (e: E) => E1) {
56
139
  }
57
140
 
58
141
  /**
59
- * @tsplus pipeable fncts.These bimap
142
+ * @tsplus pipeable fncts.These zip
60
143
  */
61
- export function bimap<E, A, E1, B>(f: (e: E) => E1, g: (a: A) => B) {
62
- return (self: These<E, A>): These<E1, B> => {
63
- switch (self._tag) {
64
- case TheseTag.Left:
65
- return These.left(f(self.left));
66
- case TheseTag.Right:
67
- return These.right(g(self.right));
68
- case TheseTag.Both:
69
- return These.both(f(self.left), g(self.right));
70
- }
144
+ export function zip<E, B>(that: These<E, B>, /** @tsplus auto */ S: P.Semigroup<E>) {
145
+ return <A>(self: These<E, A>): These<E, readonly [A, B]> => {
146
+ return self.zipWith(that, (a, b) => [a, b], S);
71
147
  };
72
148
  }
73
149
 
@@ -107,78 +183,3 @@ export function zipWith<E, A, B, C>(that: These<E, B>, f: (a: A, b: B) => C, /**
107
183
  }
108
184
  };
109
185
  }
110
-
111
- /**
112
- * @tsplus pipeable fncts.These zip
113
- */
114
- export function zip<E, B>(that: These<E, B>, /** @tsplus auto */ S: P.Semigroup<E>) {
115
- return <A>(self: These<E, A>): These<E, readonly [A, B]> => {
116
- return self.zipWith(that, (a, b) => [a, b], S);
117
- };
118
- }
119
-
120
- /**
121
- * @tsplus pipeable fncts.These ap
122
- */
123
- export function ap<E, A>(that: These<E, A>, /** @tsplus auto */ S: P.Semigroup<E>) {
124
- return <B>(self: These<E, (a: A) => B>): These<E, B> => {
125
- return self.zipWith(that, (f, a) => f(a), S);
126
- };
127
- }
128
-
129
- /**
130
- * @tsplus pipeable fncts.These flatMap
131
- */
132
- export function flatMap<E, A, B>(f: (a: A) => These<E, B>, /** @tsplus auto */ S: P.Semigroup<E>) {
133
- return (self: These<E, A>): These<E, B> => {
134
- if (self._tag === TheseTag.Left) {
135
- return self;
136
- }
137
- if (self._tag === TheseTag.Right) {
138
- return f(self.right);
139
- }
140
- const that = f(self.right);
141
- switch (that._tag) {
142
- case TheseTag.Left:
143
- return These.left(S.combine(that.left)(self.left));
144
- case TheseTag.Right:
145
- return These.both(self.left, that.right);
146
- case TheseTag.Both:
147
- return These.both(S.combine(that.left)(self.left), that.right);
148
- }
149
- };
150
- }
151
-
152
- /**
153
- * @tsplus pipeable fncts.These catchAll
154
- */
155
- export function catchAll<E, B>(f: (e: E) => These<E, B>) {
156
- return <A>(self: These<E, A>): These<E, A | B> => {
157
- if (self._tag === TheseTag.Left) {
158
- return f(self.left);
159
- }
160
- return self;
161
- };
162
- }
163
-
164
- /**
165
- * @tsplus getter fncts.These condemn
166
- */
167
- export function condemn<E, A>(self: These<E, A>): These<E, A> {
168
- if (self._tag === TheseTag.Both) {
169
- return These.left(self.left);
170
- }
171
- return self;
172
- }
173
-
174
- /**
175
- * @tsplus pipeable fncts.These condemnWhen
176
- */
177
- export function condemnWhen<E>(p: Predicate<E>) {
178
- return <A>(self: These<E, A>): These<E, A> => {
179
- if (self._tag === TheseTag.Both && p(self.left)) {
180
- return These.left(self.left);
181
- }
182
- return self;
183
- };
184
- }
package/_src/data.ts CHANGED
@@ -38,6 +38,7 @@ export type {} from "./data/Environment.js";
38
38
  export type {} from "./data/Either.js";
39
39
  export type {} from "./data/Duration.js";
40
40
  export type {} from "./data/DatumEither.js";
41
+ export type {} from "./data/Datum.js";
41
42
  export type {} from "./data/Date.js";
42
43
  export type {} from "./data/Data.js";
43
44
  export type {} from "./data/Const.js";
package/_src/global.ts CHANGED
@@ -3,10 +3,6 @@
3
3
  */
4
4
  import type {} from "@fncts/base";
5
5
 
6
- /**
7
- * @tsplus global
8
- */
9
- import {} from "@fncts/base/collection/compat/Array";
10
6
  /**
11
7
  * @tsplus global
12
8
  */
@@ -26,23 +22,22 @@ import { HashSet } from "@fncts/base/collection/immutable/HashSet/definition";
26
22
  /**
27
23
  * @tsplus global
28
24
  */
29
- import { ImmutableArray } from "@fncts/base/collection/immutable/ImmutableArray/definition";
25
+ import { Cons, List, Nil } from "@fncts/base/collection/immutable/List/definition";
30
26
  /**
31
27
  * @tsplus global
32
28
  */
33
- import {
34
- ImmutableNonEmptyArray,
35
- NonEmptyArray,
36
- ReadonlyNonEmptyArray,
37
- } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
29
+ import { Queue as ImmutableQueue } from "@fncts/base/collection/immutable/Queue/definition";
38
30
  /**
39
31
  * @tsplus global
40
32
  */
41
- import { Cons, List, Nil } from "@fncts/base/collection/immutable/List/definition";
33
+ import {} from "@fncts/base/collection/immutable/ReadonlyArray/definition";
42
34
  /**
43
35
  * @tsplus global
44
36
  */
45
- import { Queue as ImmutableQueue } from "@fncts/base/collection/immutable/Queue/definition";
37
+ import {
38
+ NonEmptyArray,
39
+ ReadonlyNonEmptyArray,
40
+ } from "@fncts/base/collection/immutable/ReadonlyNonEmptyArray/definition";
46
41
  /**
47
42
  * @tsplus global
48
43
  */
@@ -13,6 +13,9 @@ export class Stack<A> {
13
13
  get isEmpty(): boolean {
14
14
  return !this.hasNext;
15
15
  }
16
+ get size(): number {
17
+ return this.node?.size ?? 0;
18
+ }
16
19
  peek(): A | undefined {
17
20
  if (this.node) {
18
21
  return this.node.value;
@@ -26,13 +29,14 @@ export class Stack<A> {
26
29
  }
27
30
  }
28
31
  push(value: A): void {
29
- this.node = { value, previous: this.node };
32
+ this.node = { value, previous: this.node, size: (this.node?.size ?? 0) + 1 };
30
33
  }
31
34
  }
32
35
 
33
36
  interface Node<A> {
34
37
  readonly value: A;
35
38
  readonly previous?: Node<A>;
39
+ readonly size: number;
36
40
  }
37
41
 
38
42
  /**
@@ -46,5 +50,5 @@ export function makeStack<A>(): Stack<A> {
46
50
  * @tsplus static fncts.StackOps single
47
51
  */
48
52
  export function single<A>(value: A): Stack<A> {
49
- return new Stack({ value });
53
+ return new Stack({ value, size: 1 });
50
54
  }
@@ -27,7 +27,7 @@ export function array<A = never>(): Index<ReadonlyArray<A>, number, A> {
27
27
  index: (i) =>
28
28
  Optional({
29
29
  getOrModify: (s) => (i in s ? Either.right(s[i]!) : Either.left(s)),
30
- set: (a) => (s) => s.updateAt(i, a),
30
+ set: (a) => (s) => s.unsafeUpdateAt(i, a),
31
31
  }),
32
32
  });
33
33
  }
@@ -3,8 +3,8 @@ export class AssertionError extends Error {
3
3
  super(`Assertion Failed: ${message}`);
4
4
  }
5
5
  }
6
- export function assert(assertion: boolean, message: string): asserts assertion {
6
+ export function assert(assertion: boolean, message?: string): asserts assertion {
7
7
  if (!assertion) {
8
- throw new AssertionError(message);
8
+ throw new AssertionError(message ?? "");
9
9
  }
10
10
  }