@fncts/base 0.0.3 → 0.0.6

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 (812) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +21 -15
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/Iterable/api.cjs +23 -37
  4. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  5. package/_cjs/collection/compat/Array/api.cjs +1 -1
  6. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  7. package/_cjs/collection/immutable/Conc/api.cjs +41 -53
  8. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  9. package/_cjs/collection/immutable/Conc/definition.cjs +49 -39
  10. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  11. package/_cjs/collection/immutable/Dictionary/definition.cjs +4 -2
  12. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  13. package/_cjs/collection/immutable/HashMap/api.cjs +35 -108
  14. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  15. package/_cjs/collection/immutable/HashMap/definition.cjs +19 -15
  16. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  17. package/_cjs/collection/immutable/HashSet/api.cjs +10 -10
  18. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  19. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs +22 -0
  20. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +1 -0
  21. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs +20 -0
  22. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +1 -0
  23. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs +20 -0
  24. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +1 -0
  25. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs +33 -0
  26. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +1 -0
  27. package/_cjs/collection/immutable/ImmutableArray/api.cjs +252 -409
  28. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  29. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +12 -10
  30. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  31. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +153 -157
  32. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  33. package/_cjs/collection/immutable/ImmutableArray.cjs +52 -0
  34. package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
  35. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +125 -184
  36. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  37. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +2 -4
  38. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +1 -1
  39. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +25 -2
  40. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  41. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs +5 -3
  42. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +1 -1
  43. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +45 -81
  44. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  45. package/_cjs/collection/immutable/List/api.cjs +4 -7
  46. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  47. package/_cjs/collection/immutable/RoseTree/api.cjs +484 -0
  48. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -0
  49. package/_cjs/collection/immutable/RoseTree/definition.cjs +58 -0
  50. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -0
  51. package/_cjs/collection/immutable/RoseTree.cjs +32 -0
  52. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -0
  53. package/_cjs/collection/immutable/SortedMap/api.cjs +65 -65
  54. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  55. package/_cjs/collection/immutable/Vector/api.cjs +70 -15
  56. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  57. package/_cjs/collection/immutable/Vector/definition.cjs +13 -11
  58. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  59. package/_cjs/collection/mutable/HashMap.cjs +5 -5
  60. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  61. package/_cjs/collection/mutable/HashSet.cjs +4 -4
  62. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  63. package/_cjs/control/Eval/api.cjs +6 -0
  64. package/_cjs/control/Eval/api.cjs.map +1 -1
  65. package/_cjs/control/Eval/definition.cjs +7 -0
  66. package/_cjs/control/Eval/definition.cjs.map +1 -1
  67. package/_cjs/control/Eval/instance.cjs +14 -25
  68. package/_cjs/control/Eval/instance.cjs.map +1 -1
  69. package/_cjs/control/Z/definition.cjs +9 -3
  70. package/_cjs/control/Z/definition.cjs.map +1 -1
  71. package/_cjs/control/Z/instances.cjs +6 -13
  72. package/_cjs/control/Z/instances.cjs.map +1 -1
  73. package/_cjs/data/Branded/definition.cjs +29 -0
  74. package/_cjs/data/Branded/definition.cjs.map +1 -0
  75. package/_cjs/data/Branded/derivations.cjs +58 -0
  76. package/_cjs/data/Branded/derivations.cjs.map +1 -0
  77. package/_cjs/data/Branded.cjs +32 -0
  78. package/_cjs/data/Branded.cjs.map +1 -0
  79. package/_cjs/data/CaseClass.cjs +4 -2
  80. package/_cjs/data/CaseClass.cjs.map +1 -1
  81. package/_cjs/data/Cause/api/fold.cjs +2 -0
  82. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  83. package/_cjs/data/Cause/api.cjs +23 -0
  84. package/_cjs/data/Cause/api.cjs.map +1 -1
  85. package/_cjs/data/Const/api.cjs +3 -7
  86. package/_cjs/data/Const/api.cjs.map +1 -1
  87. package/_cjs/data/Const/definition.cjs +19 -1
  88. package/_cjs/data/Const/definition.cjs.map +1 -1
  89. package/_cjs/data/Const/instances.cjs +9 -20
  90. package/_cjs/data/Const/instances.cjs.map +1 -1
  91. package/_cjs/data/DecodeError/definition.cjs +308 -0
  92. package/_cjs/data/DecodeError/definition.cjs.map +1 -0
  93. package/_cjs/data/DecodeError.cjs +19 -0
  94. package/_cjs/data/DecodeError.cjs.map +1 -0
  95. package/_cjs/data/Decoder/api.cjs +217 -0
  96. package/_cjs/data/Decoder/api.cjs.map +1 -0
  97. package/_cjs/data/Decoder/definition.cjs +41 -0
  98. package/_cjs/data/Decoder/definition.cjs.map +1 -0
  99. package/_cjs/data/Decoder.cjs +32 -0
  100. package/_cjs/data/Decoder.cjs.map +1 -0
  101. package/_cjs/data/Duration/api.cjs +22 -9
  102. package/_cjs/data/Duration/api.cjs.map +1 -1
  103. package/_cjs/data/Either/api/alignWith.cjs +2 -0
  104. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  105. package/_cjs/data/Either/api.cjs +105 -42
  106. package/_cjs/data/Either/api.cjs.map +1 -1
  107. package/_cjs/data/Either/definition.cjs +39 -10
  108. package/_cjs/data/Either/definition.cjs.map +1 -1
  109. package/_cjs/data/Either/destructors.cjs +2 -0
  110. package/_cjs/data/Either/destructors.cjs.map +1 -1
  111. package/_cjs/data/Either/instances.cjs +123 -40
  112. package/_cjs/data/Either/instances.cjs.map +1 -1
  113. package/_cjs/data/Environment/api.cjs +29 -8
  114. package/_cjs/data/Environment/api.cjs.map +1 -1
  115. package/_cjs/data/Identity/api.cjs +35 -6
  116. package/_cjs/data/Identity/api.cjs.map +1 -1
  117. package/_cjs/data/Identity/definition.cjs +10 -1
  118. package/_cjs/data/Identity/definition.cjs.map +1 -1
  119. package/_cjs/data/Identity/instances.cjs +11 -25
  120. package/_cjs/data/Identity/instances.cjs.map +1 -1
  121. package/_cjs/data/Interval.cjs +154 -0
  122. package/_cjs/data/Interval.cjs.map +1 -0
  123. package/_cjs/data/Maybe/api.cjs +30 -43
  124. package/_cjs/data/Maybe/api.cjs.map +1 -1
  125. package/_cjs/data/Maybe/definition.cjs +45 -18
  126. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  127. package/_cjs/data/Maybe/destructors.cjs +1 -0
  128. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  129. package/_cjs/data/Maybe/instances.cjs +62 -42
  130. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  131. package/_cjs/data/Newtype.cjs +5 -3
  132. package/_cjs/data/Newtype.cjs.map +1 -1
  133. package/_cjs/data/Patch/api.cjs +1 -1
  134. package/_cjs/data/Patch/api.cjs.map +1 -1
  135. package/_cjs/data/Refinement/api.cjs +0 -4
  136. package/_cjs/data/Refinement/api.cjs.map +1 -1
  137. package/_cjs/data/Struct/definition.cjs +4 -2
  138. package/_cjs/data/Struct/definition.cjs.map +1 -1
  139. package/_cjs/data/These/api.cjs +299 -0
  140. package/_cjs/data/These/api.cjs.map +1 -0
  141. package/_cjs/data/These/constructors.cjs +24 -4
  142. package/_cjs/data/These/constructors.cjs.map +1 -1
  143. package/_cjs/data/These/definition.cjs +16 -0
  144. package/_cjs/data/These/definition.cjs.map +1 -1
  145. package/_cjs/data/These/destructors.cjs +70 -0
  146. package/_cjs/data/These/destructors.cjs.map +1 -1
  147. package/_cjs/data/These/instances.cjs +54 -0
  148. package/_cjs/data/These/instances.cjs.map +1 -0
  149. package/_cjs/data/These.cjs +13 -0
  150. package/_cjs/data/These.cjs.map +1 -1
  151. package/_cjs/data/bigint/definition.cjs +6 -0
  152. package/_cjs/data/bigint/definition.cjs.map +1 -0
  153. package/_cjs/data/bigint/instances.cjs +24 -0
  154. package/_cjs/data/bigint/instances.cjs.map +1 -0
  155. package/_cjs/data/bigint.cjs +32 -0
  156. package/_cjs/data/bigint.cjs.map +1 -0
  157. package/_cjs/data/boolean/definition.cjs +6 -0
  158. package/_cjs/data/boolean/definition.cjs.map +1 -0
  159. package/_cjs/data/boolean/instances.cjs +24 -0
  160. package/_cjs/data/boolean/instances.cjs.map +1 -0
  161. package/_cjs/data/boolean.cjs +32 -0
  162. package/_cjs/data/boolean.cjs.map +1 -0
  163. package/_cjs/data/number/instances.cjs +18 -5
  164. package/_cjs/data/number/instances.cjs.map +1 -1
  165. package/_cjs/data/object/instances.cjs +24 -0
  166. package/_cjs/data/object/instances.cjs.map +1 -0
  167. package/_cjs/data/string/instances.cjs +24 -9
  168. package/_cjs/data/string/instances.cjs.map +1 -1
  169. package/_cjs/internal/Stack.cjs +4 -0
  170. package/_cjs/internal/Stack.cjs.map +1 -1
  171. package/_cjs/json/EitherJson.cjs +33 -0
  172. package/_cjs/json/EitherJson.cjs.map +1 -0
  173. package/_cjs/json/MaybeJson.cjs +31 -0
  174. package/_cjs/json/MaybeJson.cjs.map +1 -0
  175. package/_cjs/json/TheseJson.cjs +37 -0
  176. package/_cjs/json/TheseJson.cjs.map +1 -0
  177. package/_cjs/optics/Optional/definition.cjs +6 -4
  178. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  179. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  180. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  181. package/_cjs/optics/Traversal/api/fromTraversable.cjs +4 -4
  182. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  183. package/_cjs/optics/Traversal/definition.cjs +17 -12
  184. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  185. package/_cjs/typeclass/Align.cjs +0 -20
  186. package/_cjs/typeclass/Align.cjs.map +1 -1
  187. package/_cjs/typeclass/Alt.cjs +5 -15
  188. package/_cjs/typeclass/Alt.cjs.map +1 -1
  189. package/_cjs/typeclass/Alternative.cjs +0 -23
  190. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  191. package/_cjs/typeclass/Applicative.cjs +0 -22
  192. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  193. package/_cjs/typeclass/ApplicativeExcept.cjs +40 -34
  194. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  195. package/_cjs/typeclass/Apply.cjs +93 -49
  196. package/_cjs/typeclass/Apply.cjs.map +1 -1
  197. package/_cjs/typeclass/Chain.cjs +40 -17
  198. package/_cjs/typeclass/Chain.cjs.map +1 -1
  199. package/_cjs/typeclass/Closure.cjs +1 -4
  200. package/_cjs/typeclass/Closure.cjs.map +1 -1
  201. package/_cjs/typeclass/Eq/definition.cjs +18 -0
  202. package/_cjs/typeclass/Eq/definition.cjs.map +1 -0
  203. package/_cjs/typeclass/Eq/derivations.cjs +59 -0
  204. package/_cjs/typeclass/Eq/derivations.cjs.map +1 -0
  205. package/_cjs/typeclass/Eq.cjs +11 -13
  206. package/_cjs/typeclass/Eq.cjs.map +1 -1
  207. package/_cjs/typeclass/Fail.cjs +6 -12
  208. package/_cjs/typeclass/Fail.cjs.map +1 -1
  209. package/_cjs/typeclass/Filterable.cjs +31 -18
  210. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  211. package/_cjs/typeclass/FilterableWithIndex.cjs +0 -26
  212. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  213. package/_cjs/typeclass/Foldable.cjs +33 -19
  214. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  215. package/_cjs/typeclass/FoldableWithIndex.cjs +33 -21
  216. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  217. package/_cjs/typeclass/Functor.cjs +19 -16
  218. package/_cjs/typeclass/Functor.cjs.map +1 -1
  219. package/_cjs/typeclass/FunctorWithIndex.cjs +0 -21
  220. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  221. package/_cjs/typeclass/Guard/api.cjs +40 -0
  222. package/_cjs/typeclass/Guard/api.cjs.map +1 -0
  223. package/_cjs/typeclass/Guard/definition.cjs +40 -0
  224. package/_cjs/typeclass/Guard/definition.cjs.map +1 -0
  225. package/_cjs/typeclass/Guard/derivations.cjs +85 -0
  226. package/_cjs/typeclass/Guard/derivations.cjs.map +1 -0
  227. package/_cjs/typeclass/Guard.cjs +32 -0
  228. package/_cjs/typeclass/Guard.cjs.map +1 -0
  229. package/_cjs/typeclass/HashEq.cjs +3 -3
  230. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  231. package/_cjs/typeclass/Monad.cjs +0 -22
  232. package/_cjs/typeclass/Monad.cjs.map +1 -1
  233. package/_cjs/typeclass/MonadExcept.cjs +12 -19
  234. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  235. package/_cjs/typeclass/Monoid.cjs +56 -2
  236. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  237. package/_cjs/typeclass/Nil.cjs +10 -0
  238. package/_cjs/typeclass/Nil.cjs.map +1 -1
  239. package/_cjs/typeclass/Ord/api/contramap.cjs +2 -4
  240. package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
  241. package/_cjs/typeclass/Ord/api/max.cjs +1 -1
  242. package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
  243. package/_cjs/typeclass/Ord/api/min.cjs +1 -1
  244. package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
  245. package/_cjs/typeclass/Ord/definition.cjs +2 -3
  246. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  247. package/_cjs/typeclass/Ord/instances.cjs +7 -7
  248. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  249. package/_cjs/typeclass/Pointed.cjs +6 -11
  250. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  251. package/_cjs/typeclass/Semialign.cjs +77 -94
  252. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  253. package/_cjs/typeclass/Semigroup/api.cjs +2 -2
  254. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  255. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  256. package/_cjs/typeclass/Semigroup/derivations.cjs +63 -0
  257. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -0
  258. package/_cjs/typeclass/Semimonoidal.cjs +9 -13
  259. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  260. package/_cjs/typeclass/Showable/show.cjs +11 -11
  261. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  262. package/_cjs/typeclass/Traversable.cjs +26 -34
  263. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  264. package/_cjs/typeclass/TraversableWithIndex.cjs +7 -38
  265. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  266. package/_cjs/typeclass/Witherable.cjs +41 -42
  267. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  268. package/_cjs/typeclass/WitherableWithIndex.cjs +41 -50
  269. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  270. package/_cjs/typeclass.cjs +13 -0
  271. package/_cjs/typeclass.cjs.map +1 -1
  272. package/_cjs/util/predicates.cjs +5 -0
  273. package/_cjs/util/predicates.cjs.map +1 -1
  274. package/_mjs/collection/Iterable/api/traverseConc.mjs +20 -15
  275. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  276. package/_mjs/collection/Iterable/api.mjs +21 -31
  277. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  278. package/_mjs/collection/compat/Array/api.mjs +1 -1
  279. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  280. package/_mjs/collection/immutable/Conc/api.mjs +35 -36
  281. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  282. package/_mjs/collection/immutable/Conc/definition.mjs +48 -39
  283. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  284. package/_mjs/collection/immutable/Dictionary/definition.mjs +3 -2
  285. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  286. package/_mjs/collection/immutable/HashMap/api.mjs +26 -66
  287. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  288. package/_mjs/collection/immutable/HashMap/definition.mjs +18 -15
  289. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  290. package/_mjs/collection/immutable/HashSet/api.mjs +5 -5
  291. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  292. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs +10 -0
  293. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +1 -0
  294. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs +9 -0
  295. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +1 -0
  296. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs +9 -0
  297. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +1 -0
  298. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs +21 -0
  299. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +1 -0
  300. package/_mjs/collection/immutable/ImmutableArray/api.mjs +229 -326
  301. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  302. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +11 -10
  303. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  304. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +151 -138
  305. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  306. package/_mjs/collection/immutable/ImmutableArray.mjs +7 -1
  307. package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
  308. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +113 -145
  309. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  310. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs +7 -7
  311. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +1 -1
  312. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +20 -2
  313. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  314. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs +4 -3
  315. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +1 -1
  316. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +46 -67
  317. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  318. package/_mjs/collection/immutable/List/api.mjs +4 -5
  319. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  320. package/_mjs/collection/immutable/RoseTree/api.mjs +447 -0
  321. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -0
  322. package/_mjs/collection/immutable/RoseTree/definition.mjs +35 -0
  323. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -0
  324. package/_mjs/collection/immutable/RoseTree.mjs +4 -0
  325. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -0
  326. package/_mjs/collection/immutable/SortedMap/api.mjs +65 -65
  327. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  328. package/_mjs/collection/immutable/Vector/api.mjs +59 -15
  329. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  330. package/_mjs/collection/immutable/Vector/definition.mjs +12 -11
  331. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  332. package/_mjs/collection/mutable/HashMap.mjs +5 -5
  333. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  334. package/_mjs/collection/mutable/HashSet.mjs +4 -4
  335. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  336. package/_mjs/control/Eval/api.mjs +5 -2
  337. package/_mjs/control/Eval/api.mjs.map +1 -1
  338. package/_mjs/control/Eval/definition.mjs +1 -0
  339. package/_mjs/control/Eval/definition.mjs.map +1 -1
  340. package/_mjs/control/Eval/instance.mjs +15 -18
  341. package/_mjs/control/Eval/instance.mjs.map +1 -1
  342. package/_mjs/control/Z/definition.mjs +2 -0
  343. package/_mjs/control/Z/definition.mjs.map +1 -1
  344. package/_mjs/control/Z/instances.mjs +7 -8
  345. package/_mjs/control/Z/instances.mjs.map +1 -1
  346. package/_mjs/data/Branded/definition.mjs +18 -0
  347. package/_mjs/data/Branded/definition.mjs.map +1 -0
  348. package/_mjs/data/Branded/derivations.mjs +39 -0
  349. package/_mjs/data/Branded/derivations.mjs.map +1 -0
  350. package/_mjs/data/Branded.mjs +4 -0
  351. package/_mjs/data/Branded.mjs.map +1 -0
  352. package/_mjs/data/CaseClass.mjs +3 -2
  353. package/_mjs/data/CaseClass.mjs.map +1 -1
  354. package/_mjs/data/Cause/api/fold.mjs +2 -0
  355. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  356. package/_mjs/data/Cause/api.mjs +20 -0
  357. package/_mjs/data/Cause/api.mjs.map +1 -1
  358. package/_mjs/data/Const/api.mjs +3 -3
  359. package/_mjs/data/Const/api.mjs.map +1 -1
  360. package/_mjs/data/Const/definition.mjs +13 -1
  361. package/_mjs/data/Const/definition.mjs.map +1 -1
  362. package/_mjs/data/Const/instances.mjs +7 -15
  363. package/_mjs/data/Const/instances.mjs.map +1 -1
  364. package/_mjs/data/DecodeError/definition.mjs +226 -0
  365. package/_mjs/data/DecodeError/definition.mjs.map +1 -0
  366. package/_mjs/data/DecodeError.mjs +3 -0
  367. package/_mjs/data/DecodeError.mjs.map +1 -0
  368. package/_mjs/data/Decoder/api.mjs +179 -0
  369. package/_mjs/data/Decoder/api.mjs.map +1 -0
  370. package/_mjs/data/Decoder/definition.mjs +24 -0
  371. package/_mjs/data/Decoder/definition.mjs.map +1 -0
  372. package/_mjs/data/Decoder.mjs +4 -0
  373. package/_mjs/data/Decoder.mjs.map +1 -0
  374. package/_mjs/data/Duration/api.mjs +17 -8
  375. package/_mjs/data/Duration/api.mjs.map +1 -1
  376. package/_mjs/data/Either/api/alignWith.mjs +2 -0
  377. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  378. package/_mjs/data/Either/api.mjs +91 -21
  379. package/_mjs/data/Either/api.mjs.map +1 -1
  380. package/_mjs/data/Either/definition.mjs +25 -5
  381. package/_mjs/data/Either/definition.mjs.map +1 -1
  382. package/_mjs/data/Either/destructors.mjs +2 -0
  383. package/_mjs/data/Either/destructors.mjs.map +1 -1
  384. package/_mjs/data/Either/instances.mjs +109 -39
  385. package/_mjs/data/Either/instances.mjs.map +1 -1
  386. package/_mjs/data/Environment/api.mjs +23 -7
  387. package/_mjs/data/Environment/api.mjs.map +1 -1
  388. package/_mjs/data/Identity/api.mjs +24 -5
  389. package/_mjs/data/Identity/api.mjs.map +1 -1
  390. package/_mjs/data/Identity/definition.mjs +3 -1
  391. package/_mjs/data/Identity/definition.mjs.map +1 -1
  392. package/_mjs/data/Identity/instances.mjs +12 -18
  393. package/_mjs/data/Identity/instances.mjs.map +1 -1
  394. package/_mjs/data/Interval.mjs +114 -0
  395. package/_mjs/data/Interval.mjs.map +1 -0
  396. package/_mjs/data/Maybe/api.mjs +30 -35
  397. package/_mjs/data/Maybe/api.mjs.map +1 -1
  398. package/_mjs/data/Maybe/definition.mjs +37 -14
  399. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  400. package/_mjs/data/Maybe/destructors.mjs +1 -0
  401. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  402. package/_mjs/data/Maybe/instances.mjs +56 -39
  403. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  404. package/_mjs/data/Newtype.mjs +4 -3
  405. package/_mjs/data/Newtype.mjs.map +1 -1
  406. package/_mjs/data/Patch/api.mjs +1 -1
  407. package/_mjs/data/Patch/api.mjs.map +1 -1
  408. package/_mjs/data/Refinement/api.mjs +0 -4
  409. package/_mjs/data/Refinement/api.mjs.map +1 -1
  410. package/_mjs/data/Struct/definition.mjs +3 -2
  411. package/_mjs/data/Struct/definition.mjs.map +1 -1
  412. package/_mjs/data/These/api.mjs +262 -0
  413. package/_mjs/data/These/api.mjs.map +1 -0
  414. package/_mjs/data/These/constructors.mjs +14 -2
  415. package/_mjs/data/These/constructors.mjs.map +1 -1
  416. package/_mjs/data/These/definition.mjs +8 -0
  417. package/_mjs/data/These/definition.mjs.map +1 -1
  418. package/_mjs/data/These/destructors.mjs +53 -0
  419. package/_mjs/data/These/destructors.mjs.map +1 -1
  420. package/_mjs/data/These/instances.mjs +36 -0
  421. package/_mjs/data/These/instances.mjs.map +1 -0
  422. package/_mjs/data/These.mjs +1 -0
  423. package/_mjs/data/These.mjs.map +1 -1
  424. package/_mjs/data/bigint/definition.mjs +2 -0
  425. package/_mjs/data/bigint/definition.mjs.map +1 -0
  426. package/_mjs/data/bigint/instances.mjs +10 -0
  427. package/_mjs/data/bigint/instances.mjs.map +1 -0
  428. package/_mjs/data/bigint.mjs +4 -0
  429. package/_mjs/data/bigint.mjs.map +1 -0
  430. package/_mjs/data/boolean/definition.mjs +2 -0
  431. package/_mjs/data/boolean/definition.mjs.map +1 -0
  432. package/_mjs/data/boolean/instances.mjs +10 -0
  433. package/_mjs/data/boolean/instances.mjs.map +1 -0
  434. package/_mjs/data/boolean.mjs +4 -0
  435. package/_mjs/data/boolean.mjs.map +1 -0
  436. package/_mjs/data/number/instances.mjs +14 -4
  437. package/_mjs/data/number/instances.mjs.map +1 -1
  438. package/_mjs/data/object/instances.mjs +10 -0
  439. package/_mjs/data/object/instances.mjs.map +1 -0
  440. package/_mjs/data/string/instances.mjs +20 -8
  441. package/_mjs/data/string/instances.mjs.map +1 -1
  442. package/_mjs/internal/Stack.mjs +4 -0
  443. package/_mjs/internal/Stack.mjs.map +1 -1
  444. package/_mjs/json/EitherJson.mjs +18 -0
  445. package/_mjs/json/EitherJson.mjs.map +1 -0
  446. package/_mjs/json/MaybeJson.mjs +16 -0
  447. package/_mjs/json/MaybeJson.mjs.map +1 -0
  448. package/_mjs/json/TheseJson.mjs +22 -0
  449. package/_mjs/json/TheseJson.mjs.map +1 -0
  450. package/_mjs/optics/Optional/definition.mjs +5 -4
  451. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  452. package/_mjs/optics/Traversal/api/compose.mjs +1 -1
  453. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  454. package/_mjs/optics/Traversal/api/fromTraversable.mjs +5 -4
  455. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  456. package/_mjs/optics/Traversal/definition.mjs +14 -12
  457. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  458. package/_mjs/typeclass/Align.mjs +0 -11
  459. package/_mjs/typeclass/Align.mjs.map +1 -1
  460. package/_mjs/typeclass/Alt.mjs +4 -7
  461. package/_mjs/typeclass/Alt.mjs.map +1 -1
  462. package/_mjs/typeclass/Alternative.mjs +0 -13
  463. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  464. package/_mjs/typeclass/Applicative.mjs +0 -12
  465. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  466. package/_mjs/typeclass/ApplicativeExcept.mjs +32 -24
  467. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  468. package/_mjs/typeclass/Apply.mjs +85 -42
  469. package/_mjs/typeclass/Apply.mjs.map +1 -1
  470. package/_mjs/typeclass/Chain.mjs +33 -12
  471. package/_mjs/typeclass/Chain.mjs.map +1 -1
  472. package/_mjs/typeclass/Closure.mjs +1 -4
  473. package/_mjs/typeclass/Closure.mjs.map +1 -1
  474. package/_mjs/typeclass/Eq/definition.mjs +9 -0
  475. package/_mjs/typeclass/Eq/definition.mjs.map +1 -0
  476. package/_mjs/typeclass/Eq/derivations.mjs +46 -0
  477. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -0
  478. package/_mjs/typeclass/Eq.mjs +1 -11
  479. package/_mjs/typeclass/Eq.mjs.map +1 -1
  480. package/_mjs/typeclass/Fail.mjs +5 -7
  481. package/_mjs/typeclass/Fail.mjs.map +1 -1
  482. package/_mjs/typeclass/Filterable.mjs +27 -13
  483. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  484. package/_mjs/typeclass/FilterableWithIndex.mjs +0 -16
  485. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  486. package/_mjs/typeclass/Foldable.mjs +29 -12
  487. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  488. package/_mjs/typeclass/FoldableWithIndex.mjs +29 -13
  489. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  490. package/_mjs/typeclass/Functor.mjs +16 -9
  491. package/_mjs/typeclass/Functor.mjs.map +1 -1
  492. package/_mjs/typeclass/FunctorWithIndex.mjs +0 -12
  493. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  494. package/_mjs/typeclass/Guard/api.mjs +23 -0
  495. package/_mjs/typeclass/Guard/api.mjs.map +1 -0
  496. package/_mjs/typeclass/Guard/definition.mjs +23 -0
  497. package/_mjs/typeclass/Guard/definition.mjs.map +1 -0
  498. package/_mjs/typeclass/Guard/derivations.mjs +67 -0
  499. package/_mjs/typeclass/Guard/derivations.mjs.map +1 -0
  500. package/_mjs/typeclass/Guard.mjs +4 -0
  501. package/_mjs/typeclass/Guard.mjs.map +1 -0
  502. package/_mjs/typeclass/HashEq.mjs +3 -3
  503. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  504. package/_mjs/typeclass/Monad.mjs +0 -12
  505. package/_mjs/typeclass/Monad.mjs.map +1 -1
  506. package/_mjs/typeclass/MonadExcept.mjs +9 -13
  507. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  508. package/_mjs/typeclass/Monoid.mjs +50 -1
  509. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  510. package/_mjs/typeclass/Nil.mjs +8 -1
  511. package/_mjs/typeclass/Nil.mjs.map +1 -1
  512. package/_mjs/typeclass/Ord/api/contramap.mjs +2 -4
  513. package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
  514. package/_mjs/typeclass/Ord/api/max.mjs +1 -1
  515. package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
  516. package/_mjs/typeclass/Ord/api/min.mjs +1 -1
  517. package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
  518. package/_mjs/typeclass/Ord/definition.mjs +2 -3
  519. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  520. package/_mjs/typeclass/Ord/instances.mjs +7 -7
  521. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  522. package/_mjs/typeclass/Pointed.mjs +5 -4
  523. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  524. package/_mjs/typeclass/Semialign.mjs +67 -74
  525. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  526. package/_mjs/typeclass/Semigroup/api.mjs +2 -2
  527. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  528. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  529. package/_mjs/typeclass/Semigroup/derivations.mjs +50 -0
  530. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -0
  531. package/_mjs/typeclass/Semigroup.mjs +1 -1
  532. package/_mjs/typeclass/Semimonoidal.mjs +8 -6
  533. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  534. package/_mjs/typeclass/Showable/show.mjs +11 -11
  535. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  536. package/_mjs/typeclass/Traversable.mjs +25 -24
  537. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  538. package/_mjs/typeclass/TraversableWithIndex.mjs +6 -24
  539. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  540. package/_mjs/typeclass/Witherable.mjs +39 -32
  541. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  542. package/_mjs/typeclass/WitherableWithIndex.mjs +39 -37
  543. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  544. package/_mjs/typeclass.mjs +1 -0
  545. package/_mjs/typeclass.mjs.map +1 -1
  546. package/_mjs/util/predicates.mjs +3 -0
  547. package/_mjs/util/predicates.mjs.map +1 -1
  548. package/_src/collection/Iterable/api/traverseConc.ts +21 -29
  549. package/_src/collection/Iterable/api.ts +20 -34
  550. package/_src/collection/compat/Array/api.ts +1 -1
  551. package/_src/collection/immutable/Conc/api.ts +26 -46
  552. package/_src/collection/immutable/Conc/definition.ts +19 -8
  553. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  554. package/_src/collection/immutable/HashMap/api.ts +24 -81
  555. package/_src/collection/immutable/HashMap/definition.ts +7 -9
  556. package/_src/collection/immutable/HashMap/internal.ts +1 -1
  557. package/_src/collection/immutable/HashSet/api.ts +4 -4
  558. package/_src/collection/immutable/ImmutableArray/api/chunksOf.ts +6 -0
  559. package/_src/collection/immutable/ImmutableArray/api/slice.ts +6 -0
  560. package/_src/collection/immutable/ImmutableArray/api/splitAt.ts +6 -0
  561. package/_src/collection/immutable/ImmutableArray/api/splitWhere.ts +18 -0
  562. package/_src/collection/immutable/ImmutableArray/api.ts +181 -267
  563. package/_src/collection/immutable/ImmutableArray/definition.ts +6 -8
  564. package/_src/collection/immutable/ImmutableArray/instances.ts +156 -134
  565. package/_src/collection/immutable/ImmutableArray.ts +7 -0
  566. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +87 -157
  567. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +2 -0
  568. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +18 -6
  569. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +39 -49
  570. package/_src/collection/immutable/List/api.ts +2 -6
  571. package/_src/collection/immutable/RoseTree/api.ts +272 -0
  572. package/_src/collection/immutable/RoseTree/definition.ts +29 -0
  573. package/_src/collection/immutable/RoseTree.ts +4 -0
  574. package/_src/collection/immutable/SortedMap/api.ts +56 -53
  575. package/_src/collection/immutable/Vector/api.ts +57 -17
  576. package/_src/collection/immutable/Vector/definition.ts +10 -0
  577. package/_src/collection/mutable/HashMap.ts +5 -5
  578. package/_src/collection/mutable/HashSet.ts +4 -4
  579. package/_src/control/Eval/api.ts +5 -1
  580. package/_src/control/Eval/definition.ts +5 -8
  581. package/_src/control/Eval/instance.ts +16 -15
  582. package/_src/control/Z/definition.ts +26 -19
  583. package/_src/control/Z/instances.ts +9 -8
  584. package/_src/data/Branded/definition.ts +47 -0
  585. package/_src/data/Branded/derivations.ts +57 -0
  586. package/_src/data/Branded.ts +4 -0
  587. package/_src/data/CaseClass.ts +2 -2
  588. package/_src/data/Cause/api/fold.ts +1 -0
  589. package/_src/data/Cause/api.ts +18 -0
  590. package/_src/data/Const/api.ts +3 -3
  591. package/_src/data/Const/definition.ts +22 -5
  592. package/_src/data/Const/instances.ts +12 -21
  593. package/_src/data/DecodeError/definition.ts +227 -0
  594. package/_src/data/DecodeError.ts +3 -0
  595. package/_src/data/Decoder/api.ts +198 -0
  596. package/_src/data/Decoder/definition.ts +25 -0
  597. package/_src/data/Decoder.ts +4 -0
  598. package/_src/data/Duration/api.ts +21 -14
  599. package/_src/data/Either/api/alignWith.ts +2 -0
  600. package/_src/data/Either/api.ts +85 -30
  601. package/_src/data/Either/definition.ts +41 -19
  602. package/_src/data/Either/destructors.ts +1 -0
  603. package/_src/data/Either/instances.ts +102 -51
  604. package/_src/data/Environment/api.ts +19 -4
  605. package/_src/data/Identity/api.ts +19 -4
  606. package/_src/data/Identity/definition.ts +7 -3
  607. package/_src/data/Identity/instances.ts +15 -8
  608. package/_src/data/Interval.ts +103 -0
  609. package/_src/data/Maybe/api.ts +21 -31
  610. package/_src/data/Maybe/definition.ts +31 -19
  611. package/_src/data/Maybe/destructors.ts +1 -0
  612. package/_src/data/Maybe/instances.ts +61 -34
  613. package/_src/data/Newtype.ts +11 -32
  614. package/_src/data/Patch/api.ts +1 -1
  615. package/_src/data/Refinement/api.ts +4 -2
  616. package/_src/data/Struct/definition.ts +1 -1
  617. package/_src/data/These/api.ts +184 -0
  618. package/_src/data/These/constructors.ts +10 -0
  619. package/_src/data/These/definition.ts +7 -0
  620. package/_src/data/These/destructors.ts +45 -0
  621. package/_src/data/These/instances.ts +43 -0
  622. package/_src/data/These.ts +1 -0
  623. package/_src/data/bigint/definition.ts +13 -0
  624. package/_src/data/bigint/instances.ts +8 -0
  625. package/_src/data/bigint.ts +4 -0
  626. package/_src/data/boolean/definition.ts +13 -0
  627. package/_src/data/boolean/instances.ts +8 -0
  628. package/_src/data/boolean.ts +4 -0
  629. package/_src/data/number/instances.ts +13 -3
  630. package/_src/data/object/instances.ts +7 -0
  631. package/_src/data/string/instances.ts +17 -5
  632. package/_src/internal/Stack.ts +4 -0
  633. package/_src/json/EitherJson.ts +28 -0
  634. package/_src/json/MaybeJson.ts +27 -0
  635. package/_src/json/TheseJson.ts +31 -0
  636. package/_src/optics/Optional/definition.ts +2 -2
  637. package/_src/optics/Traversal/api/compose.ts +1 -1
  638. package/_src/optics/Traversal/api/fromTraversable.ts +15 -41
  639. package/_src/optics/Traversal/definition.ts +21 -23
  640. package/_src/typeclass/Align.ts +4 -18
  641. package/_src/typeclass/Alt.ts +59 -90
  642. package/_src/typeclass/Alternative.ts +4 -20
  643. package/_src/typeclass/Applicative.ts +3 -23
  644. package/_src/typeclass/ApplicativeExcept.ts +94 -193
  645. package/_src/typeclass/Apply.ts +319 -509
  646. package/_src/typeclass/Chain.ts +127 -199
  647. package/_src/typeclass/Closure.ts +4 -20
  648. package/_src/typeclass/Eq/definition.ts +20 -0
  649. package/_src/typeclass/Eq/derivations.ts +61 -0
  650. package/_src/typeclass/Eq.ts +2 -36
  651. package/_src/typeclass/Fail.ts +28 -27
  652. package/_src/typeclass/Filterable.ts +70 -117
  653. package/_src/typeclass/FilterableWithIndex.ts +27 -131
  654. package/_src/typeclass/Foldable.ts +35 -52
  655. package/_src/typeclass/FoldableWithIndex.ts +40 -75
  656. package/_src/typeclass/Functor.ts +21 -59
  657. package/_src/typeclass/FunctorWithIndex.ts +6 -34
  658. package/_src/typeclass/Guard/api.ts +32 -0
  659. package/_src/typeclass/Guard/definition.ts +23 -0
  660. package/_src/typeclass/Guard/derivations.ts +80 -0
  661. package/_src/typeclass/Guard.ts +5 -0
  662. package/_src/typeclass/HashEq.ts +3 -4
  663. package/_src/typeclass/Monad.ts +3 -18
  664. package/_src/typeclass/MonadExcept.ts +9 -32
  665. package/_src/typeclass/Monoid.ts +60 -2
  666. package/_src/typeclass/Nil.ts +26 -17
  667. package/_src/typeclass/Ord/api/contramap.ts +2 -4
  668. package/_src/typeclass/Ord/api/max.ts +1 -1
  669. package/_src/typeclass/Ord/api/min.ts +1 -1
  670. package/_src/typeclass/Ord/definition.ts +3 -19
  671. package/_src/typeclass/Ord/instances.ts +6 -6
  672. package/_src/typeclass/Pointed.ts +29 -25
  673. package/_src/typeclass/Semialign.ts +308 -444
  674. package/_src/typeclass/Semigroup/api.ts +2 -2
  675. package/_src/typeclass/Semigroup/definition.ts +2 -6
  676. package/_src/typeclass/Semigroup/derivations.ts +64 -0
  677. package/_src/typeclass/Semigroup.ts +1 -1
  678. package/_src/typeclass/Semimonoidal.ts +55 -84
  679. package/_src/typeclass/Showable/show.ts +6 -8
  680. package/_src/typeclass/Traversable.ts +67 -157
  681. package/_src/typeclass/TraversableWithIndex.ts +37 -127
  682. package/_src/typeclass/Witherable.ts +120 -279
  683. package/_src/typeclass/WitherableWithIndex.ts +129 -337
  684. package/_src/typeclass.ts +2 -0
  685. package/_src/util/predicates.ts +4 -0
  686. package/collection/Iterable/api/traverseConc.d.ts +6 -4
  687. package/collection/Iterable/api.d.ts +5 -13
  688. package/collection/immutable/Conc/api.d.ts +15 -23
  689. package/collection/immutable/Conc/definition.d.ts +14 -7
  690. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  691. package/collection/immutable/HashMap/api.d.ts +15 -27
  692. package/collection/immutable/HashMap/definition.d.ts +7 -9
  693. package/collection/immutable/HashMap/internal.d.ts +2 -2
  694. package/collection/immutable/HashSet/definition.d.ts +1 -0
  695. package/collection/immutable/ImmutableArray/api/chunksOf.d.ts +6 -0
  696. package/collection/immutable/ImmutableArray/api/slice.d.ts +6 -0
  697. package/collection/immutable/ImmutableArray/api/splitAt.d.ts +6 -0
  698. package/collection/immutable/ImmutableArray/api/splitWhere.d.ts +7 -0
  699. package/collection/immutable/ImmutableArray/api.d.ts +42 -119
  700. package/collection/immutable/ImmutableArray/definition.d.ts +6 -7
  701. package/collection/immutable/ImmutableArray/instances.d.ts +86 -17
  702. package/collection/immutable/ImmutableArray.d.ts +4 -0
  703. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +27 -48
  704. package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +2 -1
  705. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +15 -7
  706. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +1 -1
  707. package/collection/immutable/List/api.d.ts +1 -2
  708. package/collection/immutable/RoseTree/api.d.ts +63 -0
  709. package/collection/immutable/RoseTree/definition.d.ts +24 -0
  710. package/collection/immutable/RoseTree.d.ts +2 -0
  711. package/collection/immutable/SortedMap/api.d.ts +2 -1
  712. package/collection/immutable/SortedMap/iterator.d.ts +1 -1
  713. package/collection/immutable/Vector/api.d.ts +31 -8
  714. package/collection/immutable/Vector/definition.d.ts +13 -0
  715. package/collection/mutable/HashMap.d.ts +2 -1
  716. package/collection/mutable/HashSet.d.ts +1 -0
  717. package/collection/mutable/ListBuffer.d.ts +1 -0
  718. package/control/Eval/api.d.ts +1 -0
  719. package/control/Eval/definition.d.ts +5 -7
  720. package/control/Eval/instance.d.ts +4 -1
  721. package/control/Z/definition.d.ts +23 -17
  722. package/control/Z/instances.d.ts +4 -3
  723. package/data/Branded/definition.d.ts +36 -0
  724. package/data/Branded/derivations.d.ts +24 -0
  725. package/data/Branded.d.ts +2 -0
  726. package/data/Cause/api.d.ts +7 -1
  727. package/data/Const/api.d.ts +1 -1
  728. package/data/Const/definition.d.ts +24 -7
  729. package/data/Const/instances.d.ts +4 -12
  730. package/data/DecodeError/definition.d.ts +141 -0
  731. package/data/DecodeError.d.ts +1 -0
  732. package/data/Decoder/api.d.ts +65 -0
  733. package/data/Decoder/definition.d.ts +25 -0
  734. package/data/Decoder.d.ts +2 -0
  735. package/data/Duration/api.d.ts +12 -8
  736. package/data/Either/api.d.ts +29 -17
  737. package/data/Either/definition.d.ts +32 -14
  738. package/data/Either/instances.d.ts +26 -11
  739. package/data/Environment/api.d.ts +5 -0
  740. package/data/Exit/definition.d.ts +1 -0
  741. package/data/Identity/api.d.ts +11 -0
  742. package/data/Identity/definition.d.ts +8 -2
  743. package/data/Identity/instances.d.ts +5 -9
  744. package/data/Interval.d.ts +71 -0
  745. package/data/Maybe/api.d.ts +3 -17
  746. package/data/Maybe/definition.d.ts +23 -14
  747. package/data/Maybe/instances.d.ts +14 -8
  748. package/data/Newtype.d.ts +8 -9
  749. package/data/Refinement/api.d.ts +2 -0
  750. package/data/Struct/definition.d.ts +1 -1
  751. package/data/These/api.d.ts +73 -0
  752. package/data/These/constructors.d.ts +7 -1
  753. package/data/These/definition.d.ts +5 -0
  754. package/data/These/destructors.d.ts +27 -1
  755. package/data/These/instances.d.ts +13 -0
  756. package/data/These.d.ts +1 -0
  757. package/data/bigint/definition.d.ts +13 -0
  758. package/data/bigint/instances.d.ts +7 -0
  759. package/data/bigint.d.ts +2 -0
  760. package/data/boolean/definition.d.ts +13 -0
  761. package/data/boolean/instances.d.ts +7 -0
  762. package/data/boolean.d.ts +2 -0
  763. package/data/number/instances.d.ts +8 -0
  764. package/data/object/instances.d.ts +7 -0
  765. package/data/string/instances.d.ts +10 -0
  766. package/internal/Stack.d.ts +1 -0
  767. package/json/EitherJson.d.ts +24 -0
  768. package/json/MaybeJson.d.ts +23 -0
  769. package/json/TheseJson.d.ts +26 -0
  770. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  771. package/optics/Traversal/definition.d.ts +4 -9
  772. package/package.json +2 -2
  773. package/typeclass/Align.d.ts +3 -10
  774. package/typeclass/Alt.d.ts +6 -19
  775. package/typeclass/Alternative.d.ts +4 -12
  776. package/typeclass/Applicative.d.ts +3 -12
  777. package/typeclass/ApplicativeExcept.d.ts +14 -39
  778. package/typeclass/Apply.d.ts +41 -72
  779. package/typeclass/Chain.d.ts +18 -28
  780. package/typeclass/Closure.d.ts +2 -12
  781. package/typeclass/Eq/definition.d.ts +17 -0
  782. package/typeclass/Eq/derivations.d.ts +24 -0
  783. package/typeclass/Eq.d.ts +2 -27
  784. package/typeclass/Fail.d.ts +4 -10
  785. package/typeclass/Filterable.d.ts +30 -51
  786. package/typeclass/FilterableWithIndex.d.ts +10 -53
  787. package/typeclass/Foldable.d.ts +19 -31
  788. package/typeclass/FoldableWithIndex.d.ts +20 -33
  789. package/typeclass/Functor.d.ts +11 -22
  790. package/typeclass/FunctorWithIndex.d.ts +3 -19
  791. package/typeclass/Guard/api.d.ts +20 -0
  792. package/typeclass/Guard/definition.d.ts +23 -0
  793. package/typeclass/Guard/derivations.d.ts +36 -0
  794. package/typeclass/Guard.d.ts +2 -0
  795. package/typeclass/HashEq.d.ts +1 -2
  796. package/typeclass/Monad.d.ts +3 -11
  797. package/typeclass/MonadExcept.d.ts +6 -17
  798. package/typeclass/Monoid.d.ts +24 -2
  799. package/typeclass/Nil.d.ts +7 -8
  800. package/typeclass/Ord/definition.d.ts +2 -14
  801. package/typeclass/Pointed.d.ts +4 -10
  802. package/typeclass/Semialign.d.ts +51 -63
  803. package/typeclass/Semigroup/definition.d.ts +3 -5
  804. package/typeclass/Semigroup/derivations.d.ts +25 -0
  805. package/typeclass/Semimonoidal.d.ts +5 -14
  806. package/typeclass/Showable/show.d.ts +1 -0
  807. package/typeclass/Traversable.d.ts +17 -57
  808. package/typeclass/TraversableWithIndex.d.ts +9 -52
  809. package/typeclass/Witherable.d.ts +22 -82
  810. package/typeclass/WitherableWithIndex.d.ts +26 -98
  811. package/typeclass.d.ts +1 -0
  812. package/util/predicates.d.ts +1 -0
@@ -19,7 +19,7 @@ export function find_<K, V>(m: SortedMap<K, V>, key: K, direction: 0 | 1 = 0): S
19
19
  return {
20
20
  ord: m.ord,
21
21
  [Symbol.iterator]() {
22
- const cmp = m.ord.compare_;
22
+ const cmp = m.ord.compare;
23
23
  let n = m.root;
24
24
  const stack: Array<Node<K, V>> = [];
25
25
  while (n) {
@@ -124,7 +124,7 @@ export function forEachGt_<K, V>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V)
124
124
  * @tsplus fluent fncts.SortedMap get
125
125
  */
126
126
  export function get_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
127
- const cmp = m.ord.compare_;
127
+ const cmp = m.ord.compare;
128
128
  let n = m.root;
129
129
  while (n) {
130
130
  const d = cmp(key, n.key);
@@ -151,7 +151,7 @@ export function get_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
151
151
  * @tsplus fluent fncts.SortedMap getGt
152
152
  */
153
153
  export function getGt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
154
- const cmp = m.ord.compare_;
154
+ const cmp = m.ord.compare;
155
155
  let n = m.root;
156
156
  let lastValue = Nothing<V>();
157
157
  while (n) {
@@ -175,7 +175,7 @@ export function getGt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
175
175
  * @tsplus fluent fncts.SortedMap getLt
176
176
  */
177
177
  export function getLt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
178
- const cmp = m.ord.compare_;
178
+ const cmp = m.ord.compare;
179
179
  let n = m.root;
180
180
  let lastValue = Nothing<V>();
181
181
  while (n) {
@@ -198,7 +198,7 @@ export function getLt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
198
198
  * @tsplus fluent fncts.SortedMap getLte
199
199
  */
200
200
  export function getLte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
201
- const cmp = m.ord.compare_;
201
+ const cmp = m.ord.compare;
202
202
  let n = m.root;
203
203
  let lastValue = Nothing<V>();
204
204
  while (n) {
@@ -222,7 +222,7 @@ export function getLte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
222
222
  * @tsplus fluent fncts.SortedMap getGte
223
223
  */
224
224
  export function getGte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
225
- const cmp = m.ord.compare_;
225
+ const cmp = m.ord.compare;
226
226
  let n = m.root;
227
227
  let lastValue = Nothing<V>();
228
228
  while (n) {
@@ -251,7 +251,7 @@ export function insert_<K, V>(m: SortedMap<K, V>, key: K, value: V): SortedMap<K
251
251
  if (isEmptyNode(m.root)) {
252
252
  return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
253
253
  }
254
- const cmp = m.ord.compare_;
254
+ const cmp = m.ord.compare;
255
255
  const nodeStack: Array<Node<K, V>> = [];
256
256
  const orderStack: Array<Ordering> = [];
257
257
  let n: RBNode<K, V> = m.root;
@@ -277,49 +277,52 @@ export function insert_<K, V>(m: SortedMap<K, V>, key: K, value: V): SortedMap<K
277
277
  * Inserts an element into the correct position in the map, combining the values of keys of equal ordering
278
278
  * with a `Semigroup` instance
279
279
  */
280
- export function insertWith_<V>(S: Semigroup<V>) {
281
- return <K>(m: SortedMap<K, V>, key: K, value: V) => {
282
- if (isEmptyNode(m.root)) {
283
- return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
284
- }
285
- const com = S.combine_;
286
- const cmp = m.ord.compare_;
287
- const nodeStack: Array<Node<K, V>> = [];
288
- const orderStack: Array<1 | -1> = [];
289
- let n: RBNode<K, V> = m.root;
290
- let cv: V | null = null;
291
- while (n && !cv) {
292
- const d = cmp(key, n.key);
293
- nodeStack.push(n);
294
- switch (d) {
295
- case -1: {
296
- orderStack.push(d);
297
- n = n.left;
298
- break;
299
- }
300
- case 1: {
301
- orderStack.push(d);
302
- n = n.right;
303
- break;
304
- }
305
- case 0: {
306
- cv = com(n.value, value);
307
- break;
308
- }
280
+ export function insertWith_<K, V>(
281
+ m: SortedMap<K, V>,
282
+ key: K,
283
+ value: V,
284
+ /** @tsplus auto */ S: Semigroup<V>,
285
+ ): SortedMap<K, V> {
286
+ if (isEmptyNode(m.root)) {
287
+ return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
288
+ }
289
+ const com = S.combine;
290
+ const cmp = m.ord.compare;
291
+ const nodeStack: Array<Node<K, V>> = [];
292
+ const orderStack: Array<1 | -1> = [];
293
+ let n: RBNode<K, V> = m.root;
294
+ let cv: V | null = null;
295
+ while (n && !cv) {
296
+ const d = cmp(key, n.key);
297
+ nodeStack.push(n);
298
+ switch (d) {
299
+ case -1: {
300
+ orderStack.push(d);
301
+ n = n.left;
302
+ break;
303
+ }
304
+ case 1: {
305
+ orderStack.push(d);
306
+ n = n.right;
307
+ break;
308
+ }
309
+ case 0: {
310
+ cv = com(n.value, value);
311
+ break;
309
312
  }
310
313
  }
311
- if (cv) {
312
- const u = nodeStack[nodeStack.length - 1]!;
313
- const updated = new Node(u.color, u.left, u.key, cv, u.right, u.count);
314
- nodeStack[nodeStack.length - 1] = updated;
315
- rebuildModifiedPath(nodeStack, orderStack, 0);
316
- } else {
317
- nodeStack.push(new Node(Color.R, Leaf, key, value, Leaf, 1));
318
- rebuildModifiedPath(nodeStack, orderStack);
319
- balanceModifiedPath(nodeStack);
320
- }
321
- return new SortedMap(m.ord, nodeStack[0]!);
322
- };
314
+ }
315
+ if (cv) {
316
+ const u = nodeStack[nodeStack.length - 1]!;
317
+ const updated = new Node(u.color, u.left, u.key, cv, u.right, u.count);
318
+ nodeStack[nodeStack.length - 1] = updated;
319
+ rebuildModifiedPath(nodeStack, orderStack, 0);
320
+ } else {
321
+ nodeStack.push(new Node(Color.R, Leaf, key, value, Leaf, 1));
322
+ rebuildModifiedPath(nodeStack, orderStack);
323
+ balanceModifiedPath(nodeStack);
324
+ }
325
+ return new SortedMap(m.ord, nodeStack[0]!);
323
326
  }
324
327
 
325
328
  /**
@@ -386,7 +389,7 @@ export function visitLte<K, V, A>(m: SortedMap<K, V>, max: K, visit: (k: K, v: V
386
389
  let current: RBNode<K, V> = m.root;
387
390
  const stack: Stack<Node<K, V>> = Stack();
388
391
  let done = false;
389
- const cmp = m.ord.compare_;
392
+ const cmp = m.ord.compare;
390
393
 
391
394
  while (!done) {
392
395
  if (current) {
@@ -416,7 +419,7 @@ export function visitLt<K, V, A>(m: SortedMap<K, V>, max: K, visit: (k: K, v: V)
416
419
  let current: RBNode<K, V> = m.root;
417
420
  const stack: Stack<Node<K, V>> = Stack();
418
421
  let done = false;
419
- const cmp = m.ord.compare_;
422
+ const cmp = m.ord.compare;
420
423
 
421
424
  while (!done) {
422
425
  if (current) {
@@ -446,7 +449,7 @@ export function visitGte<K, V, A>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V
446
449
  let current: RBNode<K, V> = m.root;
447
450
  const stack: Stack<Node<K, V>> = Stack();
448
451
  let done = false;
449
- const cmp = m.ord.compare_;
452
+ const cmp = m.ord.compare;
450
453
 
451
454
  while (!done) {
452
455
  if (current) {
@@ -479,7 +482,7 @@ export function visitGt<K, V, A>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V)
479
482
  let current: RBNode<K, V> = m.root;
480
483
  const stack: Stack<Node<K, V>> = Stack();
481
484
  let done = false;
482
- const cmp = m.ord.compare_;
485
+ const cmp = m.ord.compare;
483
486
 
484
487
  while (!done) {
485
488
  if (current) {
@@ -512,7 +515,7 @@ export function visitBetween<K, V, A>(m: SortedMap<K, V>, min: K, max: K, visit:
512
515
  let current: RBNode<K, V> = m.root;
513
516
  const stack: Stack<Node<K, V>> = Stack();
514
517
  let done = false;
515
- const cmp = m.ord.compare_;
518
+ const cmp = m.ord.compare;
516
519
 
517
520
  while (!done) {
518
521
  if (current) {
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable prefer-const */
2
- import type { MutableVector } from "@fncts/base/collection/immutable/Vector/definition";
3
- import type { Eq, Monoid, Ord, Ordering } from "@fncts/base/typeclass";
2
+ import type { MutableVector, VectorF } from "@fncts/base/collection/immutable/Vector/definition";
3
+ import type { Eq, Monoid, Ord, Ordering, Traversable, TraversableWithIndex } from "@fncts/base/typeclass";
4
4
 
5
5
  import {
6
6
  affixPush,
@@ -36,6 +36,7 @@ import {
36
36
  nodeNth,
37
37
  nodeNthDense,
38
38
  prependNodeToTree,
39
+ push,
39
40
  reverseArray,
40
41
  setDepth,
41
42
  setPrefix,
@@ -54,6 +55,7 @@ import {
54
55
  * @complexity O(n)
55
56
  *
56
57
  * @tsplus fluent fncts.Vector append
58
+ * @tsplus operator fncts.Vector +
57
59
  */
58
60
  export function append_<A>(as: Vector<A>, a: A): Vector<A> {
59
61
  const suffixSize = getSuffixSize(as);
@@ -111,6 +113,7 @@ export function chunksOf_<A>(as: Vector<A>, size: number): Vector<Vector<A>> {
111
113
  *
112
114
  * @complexity O(log(n))
113
115
  * @tsplus fluent fncts.Vector concat
116
+ * @tsplus operator fncts.Vector + 1
114
117
  */
115
118
  export function concat_<A, B>(self: Vector<A>, that: Vector<B>): Vector<A | B>;
116
119
  export function concat_<A>(self: Vector<A>, that: Vector<A>): Vector<A> {
@@ -267,7 +270,7 @@ function elemCb(value: any, state: ElemState): boolean {
267
270
  */
268
271
  export function elem_<A>(self: Vector<A>) {
269
272
  return (E: Eq<A>) => {
270
- const elemState: ElemState = { equals: E.equals_, element: undefined, result: false };
273
+ const elemState: ElemState = { equals: E.equals, element: undefined, result: false };
271
274
  return (a: A): boolean => {
272
275
  elemState.element = a;
273
276
  return foldLeftCb(elemCb, elemState, self).result;
@@ -506,21 +509,21 @@ export function foldRightWhile_<A, B>(fa: Vector<A>, b: B, cont: Predicate<B>, f
506
509
  }
507
510
 
508
511
  /**
509
- * @tsplus getter fncts.Vector foldMap
512
+ * @tsplus fluent fncts.Vector foldMap
510
513
  */
511
- export function foldMap_<A>(self: Vector<A>) {
512
- return <M>(M: Monoid<M>) =>
513
- (f: (a: A) => M): M =>
514
- self.foldMapWithIndex(M)((_, a) => f(a));
514
+ export function foldMap_<A, M>(self: Vector<A>, f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>): M {
515
+ return self.foldMapWithIndex((_, a) => f(a), M);
515
516
  }
516
517
 
517
518
  /**
518
- * @tsplus getter fncts.Vector foldMapWithIndex
519
+ * @tsplus fluent fncts.Vector foldMapWithIndex
519
520
  */
520
- export function foldMapWithIndex_<A>(self: Vector<A>) {
521
- return <M>(M: Monoid<M>) =>
522
- (f: (i: number, a: A) => M): M =>
523
- self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine_(b, f(i, a)));
521
+ export function foldMapWithIndex_<A, M>(
522
+ self: Vector<A>,
523
+ f: (i: number, a: A) => M,
524
+ /** @tsplus auto */ M: Monoid<M>,
525
+ ): M {
526
+ return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
524
527
  }
525
528
 
526
529
  /**
@@ -857,6 +860,13 @@ export function prepend_<A>(as: Vector<A>, a: A): Vector<A> {
857
860
  }
858
861
  }
859
862
 
863
+ /**
864
+ * @tsplus operator fncts.Vector +
865
+ */
866
+ export function prependOperator<A>(a: A, as: Vector<A>): Vector<A> {
867
+ return as.prepend(a);
868
+ }
869
+
860
870
  /**
861
871
  * Returns a Vector of numbers between an inclusive lower bound and an exclusive upper bound.
862
872
  *
@@ -900,6 +910,13 @@ export function replicate<A>(n: number, a: A): Vector<A> {
900
910
  return l;
901
911
  }
902
912
 
913
+ /**
914
+ * @tsplus getter fncts.Vector reverse
915
+ */
916
+ export function reverse<A>(self: Vector<A>): Vector<A> {
917
+ return self.foldLeft(Vector.empty(), (vec, elem) => vec.prepend(elem));
918
+ }
919
+
903
920
  /**
904
921
  * Folds a function over a Vector from left to right while collecting
905
922
  * all the intermediate steps in a resulting Vector.
@@ -1039,10 +1056,10 @@ export function slice_<A>(as: Vector<A>, from: number, to: number): Vector<A> {
1039
1056
  }
1040
1057
 
1041
1058
  /**
1042
- * @tsplus getter fncts.Vector sort
1059
+ * @tsplus fluent fncts.Vector sort
1043
1060
  */
1044
- export function sort_<A>(self: Vector<A>) {
1045
- return (O: Ord<A>): Vector<A> => self.sortWith(O.compare_);
1061
+ export function sort_<A>(self: Vector<A>, /** @tsplus auto */ O: Ord<A>): Vector<A> {
1062
+ return self.sortWith(O.compare);
1046
1063
  }
1047
1064
 
1048
1065
  /**
@@ -1183,6 +1200,29 @@ export function toList<A>(self: Vector<A>): List<A> {
1183
1200
  return buffer.toList;
1184
1201
  }
1185
1202
 
1203
+ /**
1204
+ * @tsplus fluent fncts.Vector traverseWithIndex
1205
+ */
1206
+ export const traverseWithIndex: TraversableWithIndex<VectorF>["traverseWithIndex"] = (self, f, G) => {
1207
+ return self.foldLeftWithIndex(G.pure(Vector.emptyPushable()), (i, b, a) =>
1208
+ b.zipWith(
1209
+ f(i, a),
1210
+ (v, b) => {
1211
+ push(v, b);
1212
+ return v;
1213
+ },
1214
+ G,
1215
+ ),
1216
+ );
1217
+ };
1218
+
1219
+ /**
1220
+ * @tsplus fluent fncts.Vector traverse
1221
+ */
1222
+ export const traverse: Traversable<VectorF>["traverse"] = (self, f, G) => {
1223
+ return self.traverseWithIndex((_, a) => f(a));
1224
+ };
1225
+
1186
1226
  /**
1187
1227
  * Returns a new Vector without repeated elements by using the given
1188
1228
  * Eq instance to determine when elements are equal
@@ -1191,7 +1231,7 @@ export function toList<A>(self: Vector<A>): List<A> {
1191
1231
  * @tsplus getter fncts.Vector uniq
1192
1232
  */
1193
1233
  export function uniq<A>(as: Vector<A>) {
1194
- return (E: Eq<A>) => as.dropRepeatsWith(E.equals_);
1234
+ return (E: Eq<A>) => as.dropRepeatsWith(E.equals);
1195
1235
  }
1196
1236
 
1197
1237
  /**
@@ -8,6 +8,8 @@ import { ForwardVectorIterator } from "@fncts/base/collection/immutable/Vector/i
8
8
  export const VectorTypeId = Symbol.for("fncts.Vector");
9
9
  export type VectorTypeId = typeof VectorTypeId;
10
10
 
11
+ export interface VectorF extends Vector<any> {}
12
+
11
13
  /**
12
14
  * Represents a Vector of elements.
13
15
  *
@@ -16,6 +18,10 @@ export type VectorTypeId = typeof VectorTypeId;
16
18
  */
17
19
  export class Vector<A> implements Iterable<A> {
18
20
  readonly _typeId: VectorTypeId = VectorTypeId;
21
+ readonly [HKT.F]!: VectorF;
22
+ readonly [HKT.A]!: () => A;
23
+ readonly [HKT.T]!: Vector<HKT._A<this>>;
24
+ readonly [HKT.Ix]!: number
19
25
  constructor(
20
26
  /** @private */
21
27
  readonly bits: number,
@@ -48,6 +54,10 @@ export class Vector<A> implements Iterable<A> {
48
54
  */
49
55
  export interface MutableVector<A> {
50
56
  readonly _typeId: VectorTypeId;
57
+ readonly [HKT.F]: VectorF;
58
+ readonly [HKT.A]: () => A;
59
+ readonly [HKT.T]: Vector<HKT._A<this>>;
60
+ readonly [HKT.Ix]: number
51
61
  bits: number;
52
62
  offset: number;
53
63
  length: number;
@@ -80,7 +80,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]> {
80
80
  let prev: Node<K, V> | undefined = undefined;
81
81
  let nd: Node<K, V> | undefined = n;
82
82
  while (nd) {
83
- if (hash === nd.hash && this.config.equals_(key, nd.key)) {
83
+ if (hash === nd.hash && this.config.equals(key, nd.key)) {
84
84
  previousNode = prev;
85
85
  foundNode = nd;
86
86
  break;
@@ -158,7 +158,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]> {
158
158
  const old = n;
159
159
  let prev: Node<K, V> | undefined = undefined;
160
160
  while (n !== undefined && n.hash <= hash) {
161
- if (n.hash === hash && this.config.equals_(key, n.key)) {
161
+ if (n.hash === hash && this.config.equals(key, n.key)) {
162
162
  const old = n.value;
163
163
  n.value = value;
164
164
  if (getOld) return Just(old);
@@ -186,7 +186,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]> {
186
186
  const nd = this.table[idx];
187
187
  if (nd === undefined) {
188
188
  return undefined;
189
- } else if (nd.hash === hash && this.config.equals_(nd.key, key)) {
189
+ } else if (nd.hash === hash && this.config.equals(nd.key, key)) {
190
190
  this.table[idx] = nd.next;
191
191
  this.contentSize -= 1;
192
192
  return nd;
@@ -194,7 +194,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]> {
194
194
  let prev = nd;
195
195
  let next = nd.next;
196
196
  while (next && next.hash <= hash) {
197
- if (next.hash === hash && this.config.equals_(next.key, key)) {
197
+ if (next.hash === hash && this.config.equals(next.key, key)) {
198
198
  prev.next = next.next;
199
199
  this.contentSize -= 1;
200
200
  return next;
@@ -221,7 +221,7 @@ export class HashMap<K, V> implements Iterable<readonly [K, V]> {
221
221
  private findNode(key: K): Node<K, V> | undefined {
222
222
  const hash = this.computeHash(key);
223
223
  const n = this.table[this.index(hash)];
224
- return n === undefined ? n : n.findNode(key, hash, this.config.equals_);
224
+ return n === undefined ? n : n.findNode(key, hash, this.config.equals);
225
225
  }
226
226
 
227
227
  private growTable(newLen: number) {
@@ -81,7 +81,7 @@ export class HashSet<A> implements Iterable<A> {
81
81
  const old = n;
82
82
  let prev: Node<A> | undefined = undefined;
83
83
  while (n !== undefined && n.hash <= hash) {
84
- if (n.hash === hash && this.config.equals_(elem, n.key)) {
84
+ if (n.hash === hash && this.config.equals(elem, n.key)) {
85
85
  return false;
86
86
  }
87
87
  prev = n;
@@ -102,7 +102,7 @@ export class HashSet<A> implements Iterable<A> {
102
102
  const n = this.table[idx];
103
103
  if (n === undefined) {
104
104
  return false;
105
- } else if (n.hash === hash && this.config.equals_(n.key, elem)) {
105
+ } else if (n.hash === hash && this.config.equals(n.key, elem)) {
106
106
  this.table[idx] = n.next;
107
107
  this.contentSize -= 1;
108
108
  return true;
@@ -110,7 +110,7 @@ export class HashSet<A> implements Iterable<A> {
110
110
  let prev = n;
111
111
  let next = n.next;
112
112
  while (next && next.hash <= hash) {
113
- if (next.hash === hash && this.config.equals_(next.key, elem)) {
113
+ if (next.hash === hash && this.config.equals(next.key, elem)) {
114
114
  prev.next = next.next;
115
115
  this.contentSize -= 1;
116
116
  return true;
@@ -137,7 +137,7 @@ export class HashSet<A> implements Iterable<A> {
137
137
  private findNode(key: A): Node<A> | undefined {
138
138
  const hash = this.computeHash(key);
139
139
  const n = this.table[this.index(hash)];
140
- return n === undefined ? n : n.findNode(key, hash, this.config.equals_);
140
+ return n === undefined ? n : n.findNode(key, hash, this.config.equals);
141
141
  }
142
142
 
143
143
  private growTable(newLen: number) {
@@ -1,7 +1,7 @@
1
1
  import type { _A } from "@fncts/base/types";
2
2
 
3
3
  import { Chain } from "@fncts/base/control/Eval/definition";
4
- import { identity } from "@fncts/base/data/function";
4
+ import { identity, tuple } from "@fncts/base/data/function";
5
5
 
6
6
  /**
7
7
  * @tsplus fluent fncts.control.Eval and
@@ -38,6 +38,10 @@ export function zipWith_<A, B, C>(self: Eval<A>, fb: Eval<B>, f: (a: A, b: B) =>
38
38
  return self.flatMap((a) => fb.map((b) => f(a, b)));
39
39
  }
40
40
 
41
+ export function zip_<A, B>(self: Eval<A>, fb: Eval<B>): Eval<readonly [A, B]> {
42
+ return self.zipWith(fb, tuple);
43
+ }
44
+
41
45
  /**
42
46
  * @tsplus fluent fncts.control.Eval ap
43
47
  */
@@ -1,12 +1,16 @@
1
1
  export const EvalTypeId = Symbol.for("@fncts.base/control/Eval");
2
2
  export type EvalTypeId = typeof EvalTypeId;
3
3
 
4
+ export interface EvalF extends Eval<any> {}
5
+
4
6
  /**
5
7
  * @tsplus type fncts.control.Eval
6
8
  */
7
9
  export interface Eval<A> {
8
10
  readonly _typeId: EvalTypeId;
9
- readonly _A: () => A;
11
+ [HKT.F]?: EvalF;
12
+ [HKT.A]?: () => A;
13
+ [HKT.T]?: Eval<HKT._A<this>>;
10
14
  }
11
15
 
12
16
  /**
@@ -58,10 +62,3 @@ export function concrete(_: Eval<any>): asserts _ is Concrete {
58
62
  export function unifyEval<X extends Eval<any>>(self: X): Eval<[X] extends [Eval<infer A>] ? A : never> {
59
63
  return self;
60
64
  }
61
-
62
- export interface EvalF extends HKT {
63
- readonly type: Eval<this["A"]>;
64
- readonly variance: {
65
- readonly A: "-";
66
- };
67
- }
@@ -1,31 +1,32 @@
1
1
  import type { EvalF } from "@fncts/base/control/Eval/definition";
2
+ import type * as P from "@fncts/base/typeclass";
2
3
 
3
- import { ap_, map_, zipWith_ } from "@fncts/base/control/Eval/api";
4
+ import { ap_, map_, zip_, zipWith_ } from "@fncts/base/control/Eval/api";
4
5
  import { now } from "@fncts/base/control/Eval/constructors";
5
- import * as P from "@fncts/base/typeclass";
6
6
 
7
7
  /**
8
8
  * @tsplus static fncts.control.EvalOps Functor
9
+ * @tsplus implicit
9
10
  */
10
- export const Functor: P.Functor<EvalF> = P.Functor({
11
- map_,
12
- });
11
+ export const Functor: P.Functor<EvalF> = {
12
+ map: map_,
13
+ };
13
14
 
14
15
  /**
15
16
  * @tsplus static fncts.control.EvalOps Apply
17
+ * @tsplus implicit
16
18
  */
17
- export const Apply: P.Apply<EvalF> = P.Apply({
18
- map_,
19
- ap_,
20
- zipWith_,
21
- });
19
+ export const Apply: P.Apply<EvalF> = {
20
+ map: map_,
21
+ zip: zip_,
22
+ zipWith: zipWith_,
23
+ };
22
24
 
23
25
  /**
24
26
  * @tsplus static fncts.control.EvalOps Applicative
27
+ * @tsplus implicit
25
28
  */
26
- export const Applicative: P.Applicative<EvalF> = P.Applicative({
27
- map_,
28
- ap_,
29
- zipWith_,
29
+ export const Applicative: P.Applicative<EvalF> = {
30
+ ...Apply,
30
31
  pure: now,
31
- });
32
+ };
@@ -1,17 +1,8 @@
1
- import type { _A, _E, _R, _S1, _S2, _W } from "../../types.js";
2
-
3
1
  import { hasTypeId } from "../../util/predicates.js";
4
2
 
5
- export interface ZF extends HKT {
6
- readonly type: Z<this["W"], this["S"], this["S"], this["R"], this["E"], this["A"]>;
7
- readonly variance: {
8
- readonly W: "_";
9
- readonly S: "_";
10
- readonly R: "-";
11
- readonly E: "+";
12
- readonly A: "+";
13
- };
14
- }
3
+ export interface ZF extends Z<any, any, any, any, any, any> {}
4
+
5
+ export interface ZFixedF extends ZFixed<any, any, any, any, any> {}
15
6
 
16
7
  export const ZTypeId = Symbol.for("@principia/base/Z");
17
8
  export type ZTypeId = typeof ZTypeId;
@@ -31,18 +22,34 @@ export type ZTypeId = typeof ZTypeId;
31
22
  */
32
23
  export abstract class Z<W, S1, S2, R, E, A> {
33
24
  readonly _typeId: ZTypeId = ZTypeId;
34
- readonly _W!: () => W;
35
- readonly _S1!: (_: S1) => void;
36
- readonly _S2!: () => S2;
37
- readonly _R!: (_: R) => void;
38
- readonly _E!: () => E;
39
- readonly _A!: () => A;
25
+ readonly [HKT.F]!: ZF;
26
+ readonly [HKT.W]!: () => W;
27
+ readonly [HKT.Q]!: (_: S1) => void;
28
+ readonly [HKT.S]!: () => S2;
29
+ readonly [HKT.R]!: (_: R) => void;
30
+ readonly [HKT.E]!: () => E;
31
+ readonly [HKT.A]!: () => A;
32
+ readonly [HKT.T]!: Z<HKT._W<this>, HKT._Q<this>, HKT._S<this>, HKT._R<this>, HKT._E<this>, HKT._A<this>>;
33
+ }
34
+
35
+ export interface ZFixed<W, S, R, E, A> {
36
+ readonly _typeId: ZTypeId;
37
+ readonly [HKT.F]: ZF;
38
+ readonly [HKT.W]: () => W;
39
+ readonly [HKT.Q]: (_: S) => void;
40
+ readonly [HKT.S]: () => S;
41
+ readonly [HKT.R]: (_: R) => void;
42
+ readonly [HKT.E]: () => E;
43
+ readonly [HKT.A]: () => A;
44
+ readonly [HKT.T]: Z<HKT._W<this>, HKT._S<this>, HKT._S<this>, HKT._R<this>, HKT._E<this>, HKT._A<this>>;
40
45
  }
41
46
 
42
47
  /**
43
48
  * @tsplus unify fncts.control.Z
44
49
  */
45
- export function unifyZ<X extends Z<any, any, any, any, any, any>>(_: X): Z<_W<X>, _S1<X>, _S2<X>, _R<X>, _E<X>, _A<X>> {
50
+ export function unifyZ<X extends Z<any, any, any, any, any, any>>(
51
+ _: X,
52
+ ): Z<HKT._W<X>, HKT._Q<X>, HKT._S<X>, HKT._R<X>, HKT._E<X>, HKT._A<X>> {
46
53
  return _;
47
54
  }
48
55
 
@@ -1,14 +1,15 @@
1
- import type { ZF } from "./definition.js";
1
+ import type * as P from "../../typeclass.js";
2
+ import type { ZFixedF } from "./definition.js";
2
3
 
3
- import * as P from "../../typeclass.js";
4
- import { ap_, crossWith_, map_, succeedNow } from "./api.js";
4
+ import { map_, succeedNow, zip_, zipWith_ } from "./api.js";
5
5
 
6
6
  /**
7
7
  * @tsplus static fncts.control.ZOps Applicative
8
+ * @tsplus implicit
8
9
  */
9
- export const Applicative: P.Applicative<ZF> = P.Applicative({
10
- map_,
11
- ap_,
12
- zipWith_: crossWith_,
10
+ export const Applicative: P.Applicative<ZFixedF> = {
11
+ map: map_,
12
+ zip: zip_,
13
+ zipWith: zipWith_,
13
14
  pure: succeedNow,
14
- });
15
+ };