@fncts/base 0.0.3 → 0.0.4

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 (760) 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.cjs +153 -248
  20. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  21. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +12 -10
  22. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  23. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +153 -157
  24. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  25. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +118 -181
  26. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  27. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +3 -0
  28. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  29. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +45 -81
  30. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  31. package/_cjs/collection/immutable/List/api.cjs +4 -7
  32. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  33. package/_cjs/collection/immutable/RoseTree/api.cjs +485 -0
  34. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -0
  35. package/_cjs/collection/immutable/RoseTree/definition.cjs +58 -0
  36. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -0
  37. package/_cjs/collection/immutable/RoseTree.cjs +32 -0
  38. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -0
  39. package/_cjs/collection/immutable/SortedMap/api.cjs +65 -65
  40. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  41. package/_cjs/collection/immutable/Vector/api.cjs +70 -15
  42. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  43. package/_cjs/collection/immutable/Vector/definition.cjs +13 -11
  44. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  45. package/_cjs/collection/mutable/HashMap.cjs +5 -5
  46. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  47. package/_cjs/collection/mutable/HashSet.cjs +4 -4
  48. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  49. package/_cjs/control/Eval/api.cjs +6 -0
  50. package/_cjs/control/Eval/api.cjs.map +1 -1
  51. package/_cjs/control/Eval/definition.cjs +7 -0
  52. package/_cjs/control/Eval/definition.cjs.map +1 -1
  53. package/_cjs/control/Eval/instance.cjs +14 -25
  54. package/_cjs/control/Eval/instance.cjs.map +1 -1
  55. package/_cjs/control/Z/definition.cjs +9 -3
  56. package/_cjs/control/Z/definition.cjs.map +1 -1
  57. package/_cjs/control/Z/instances.cjs +6 -13
  58. package/_cjs/control/Z/instances.cjs.map +1 -1
  59. package/_cjs/data/Branded/definition.cjs +29 -0
  60. package/_cjs/data/Branded/definition.cjs.map +1 -0
  61. package/_cjs/data/Branded/derivations.cjs +58 -0
  62. package/_cjs/data/Branded/derivations.cjs.map +1 -0
  63. package/_cjs/data/Branded.cjs +32 -0
  64. package/_cjs/data/Branded.cjs.map +1 -0
  65. package/_cjs/data/Cause/api/fold.cjs +2 -0
  66. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  67. package/_cjs/data/Cause/api.cjs +23 -0
  68. package/_cjs/data/Cause/api.cjs.map +1 -1
  69. package/_cjs/data/Const/api.cjs +3 -7
  70. package/_cjs/data/Const/api.cjs.map +1 -1
  71. package/_cjs/data/Const/definition.cjs +19 -1
  72. package/_cjs/data/Const/definition.cjs.map +1 -1
  73. package/_cjs/data/Const/instances.cjs +9 -20
  74. package/_cjs/data/Const/instances.cjs.map +1 -1
  75. package/_cjs/data/DecodeError/definition.cjs +308 -0
  76. package/_cjs/data/DecodeError/definition.cjs.map +1 -0
  77. package/_cjs/data/DecodeError.cjs +19 -0
  78. package/_cjs/data/DecodeError.cjs.map +1 -0
  79. package/_cjs/data/Decoder/api.cjs +217 -0
  80. package/_cjs/data/Decoder/api.cjs.map +1 -0
  81. package/_cjs/data/Decoder/definition.cjs +41 -0
  82. package/_cjs/data/Decoder/definition.cjs.map +1 -0
  83. package/_cjs/data/Decoder.cjs +32 -0
  84. package/_cjs/data/Decoder.cjs.map +1 -0
  85. package/_cjs/data/Duration/api.cjs +22 -9
  86. package/_cjs/data/Duration/api.cjs.map +1 -1
  87. package/_cjs/data/Either/api/alignWith.cjs +2 -0
  88. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  89. package/_cjs/data/Either/api.cjs +105 -42
  90. package/_cjs/data/Either/api.cjs.map +1 -1
  91. package/_cjs/data/Either/definition.cjs +39 -10
  92. package/_cjs/data/Either/definition.cjs.map +1 -1
  93. package/_cjs/data/Either/destructors.cjs +2 -0
  94. package/_cjs/data/Either/destructors.cjs.map +1 -1
  95. package/_cjs/data/Either/instances.cjs +123 -40
  96. package/_cjs/data/Either/instances.cjs.map +1 -1
  97. package/_cjs/data/Environment/api.cjs +29 -8
  98. package/_cjs/data/Environment/api.cjs.map +1 -1
  99. package/_cjs/data/Identity/api.cjs +35 -6
  100. package/_cjs/data/Identity/api.cjs.map +1 -1
  101. package/_cjs/data/Identity/definition.cjs +10 -1
  102. package/_cjs/data/Identity/definition.cjs.map +1 -1
  103. package/_cjs/data/Identity/instances.cjs +11 -25
  104. package/_cjs/data/Identity/instances.cjs.map +1 -1
  105. package/_cjs/data/Interval.cjs +154 -0
  106. package/_cjs/data/Interval.cjs.map +1 -0
  107. package/_cjs/data/Maybe/api.cjs +30 -43
  108. package/_cjs/data/Maybe/api.cjs.map +1 -1
  109. package/_cjs/data/Maybe/definition.cjs +45 -18
  110. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  111. package/_cjs/data/Maybe/destructors.cjs +1 -0
  112. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  113. package/_cjs/data/Maybe/instances.cjs +62 -42
  114. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  115. package/_cjs/data/Newtype.cjs +5 -3
  116. package/_cjs/data/Newtype.cjs.map +1 -1
  117. package/_cjs/data/Patch/api.cjs +1 -1
  118. package/_cjs/data/Patch/api.cjs.map +1 -1
  119. package/_cjs/data/Refinement/api.cjs +0 -4
  120. package/_cjs/data/Refinement/api.cjs.map +1 -1
  121. package/_cjs/data/Struct/definition.cjs +4 -2
  122. package/_cjs/data/Struct/definition.cjs.map +1 -1
  123. package/_cjs/data/These/api.cjs +299 -0
  124. package/_cjs/data/These/api.cjs.map +1 -0
  125. package/_cjs/data/These/constructors.cjs +24 -4
  126. package/_cjs/data/These/constructors.cjs.map +1 -1
  127. package/_cjs/data/These/definition.cjs +16 -0
  128. package/_cjs/data/These/definition.cjs.map +1 -1
  129. package/_cjs/data/These/destructors.cjs +70 -0
  130. package/_cjs/data/These/destructors.cjs.map +1 -1
  131. package/_cjs/data/These/instances.cjs +54 -0
  132. package/_cjs/data/These/instances.cjs.map +1 -0
  133. package/_cjs/data/These.cjs +13 -0
  134. package/_cjs/data/These.cjs.map +1 -1
  135. package/_cjs/data/bigint/definition.cjs +6 -0
  136. package/_cjs/data/bigint/definition.cjs.map +1 -0
  137. package/_cjs/data/bigint/instances.cjs +24 -0
  138. package/_cjs/data/bigint/instances.cjs.map +1 -0
  139. package/_cjs/data/bigint.cjs +32 -0
  140. package/_cjs/data/bigint.cjs.map +1 -0
  141. package/_cjs/data/boolean/definition.cjs +6 -0
  142. package/_cjs/data/boolean/definition.cjs.map +1 -0
  143. package/_cjs/data/boolean/instances.cjs +24 -0
  144. package/_cjs/data/boolean/instances.cjs.map +1 -0
  145. package/_cjs/data/boolean.cjs +32 -0
  146. package/_cjs/data/boolean.cjs.map +1 -0
  147. package/_cjs/data/number/instances.cjs +18 -5
  148. package/_cjs/data/number/instances.cjs.map +1 -1
  149. package/_cjs/data/object/instances.cjs +24 -0
  150. package/_cjs/data/object/instances.cjs.map +1 -0
  151. package/_cjs/data/string/instances.cjs +24 -9
  152. package/_cjs/data/string/instances.cjs.map +1 -1
  153. package/_cjs/internal/Stack.cjs +4 -0
  154. package/_cjs/internal/Stack.cjs.map +1 -1
  155. package/_cjs/json/EitherJson.cjs +33 -0
  156. package/_cjs/json/EitherJson.cjs.map +1 -0
  157. package/_cjs/json/MaybeJson.cjs +31 -0
  158. package/_cjs/json/MaybeJson.cjs.map +1 -0
  159. package/_cjs/json/TheseJson.cjs +37 -0
  160. package/_cjs/json/TheseJson.cjs.map +1 -0
  161. package/_cjs/optics/Optional/definition.cjs +6 -4
  162. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  163. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  164. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  165. package/_cjs/optics/Traversal/api/fromTraversable.cjs +4 -4
  166. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  167. package/_cjs/optics/Traversal/definition.cjs +17 -12
  168. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  169. package/_cjs/typeclass/Align.cjs +0 -20
  170. package/_cjs/typeclass/Align.cjs.map +1 -1
  171. package/_cjs/typeclass/Alt.cjs +5 -15
  172. package/_cjs/typeclass/Alt.cjs.map +1 -1
  173. package/_cjs/typeclass/Alternative.cjs +0 -23
  174. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  175. package/_cjs/typeclass/Applicative.cjs +0 -22
  176. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  177. package/_cjs/typeclass/ApplicativeExcept.cjs +40 -34
  178. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  179. package/_cjs/typeclass/Apply.cjs +93 -49
  180. package/_cjs/typeclass/Apply.cjs.map +1 -1
  181. package/_cjs/typeclass/Chain.cjs +40 -17
  182. package/_cjs/typeclass/Chain.cjs.map +1 -1
  183. package/_cjs/typeclass/Closure.cjs +1 -4
  184. package/_cjs/typeclass/Closure.cjs.map +1 -1
  185. package/_cjs/typeclass/Eq/definition.cjs +18 -0
  186. package/_cjs/typeclass/Eq/definition.cjs.map +1 -0
  187. package/_cjs/typeclass/Eq/derivations.cjs +59 -0
  188. package/_cjs/typeclass/Eq/derivations.cjs.map +1 -0
  189. package/_cjs/typeclass/Eq.cjs +11 -13
  190. package/_cjs/typeclass/Eq.cjs.map +1 -1
  191. package/_cjs/typeclass/Fail.cjs +6 -12
  192. package/_cjs/typeclass/Fail.cjs.map +1 -1
  193. package/_cjs/typeclass/Filterable.cjs +31 -18
  194. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  195. package/_cjs/typeclass/FilterableWithIndex.cjs +0 -26
  196. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  197. package/_cjs/typeclass/Foldable.cjs +33 -19
  198. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  199. package/_cjs/typeclass/FoldableWithIndex.cjs +33 -21
  200. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  201. package/_cjs/typeclass/Functor.cjs +19 -16
  202. package/_cjs/typeclass/Functor.cjs.map +1 -1
  203. package/_cjs/typeclass/FunctorWithIndex.cjs +0 -21
  204. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  205. package/_cjs/typeclass/Guard/api.cjs +40 -0
  206. package/_cjs/typeclass/Guard/api.cjs.map +1 -0
  207. package/_cjs/typeclass/Guard/definition.cjs +40 -0
  208. package/_cjs/typeclass/Guard/definition.cjs.map +1 -0
  209. package/_cjs/typeclass/Guard/derivations.cjs +85 -0
  210. package/_cjs/typeclass/Guard/derivations.cjs.map +1 -0
  211. package/_cjs/typeclass/Guard.cjs +32 -0
  212. package/_cjs/typeclass/Guard.cjs.map +1 -0
  213. package/_cjs/typeclass/HashEq.cjs +3 -3
  214. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  215. package/_cjs/typeclass/Monad.cjs +0 -22
  216. package/_cjs/typeclass/Monad.cjs.map +1 -1
  217. package/_cjs/typeclass/MonadExcept.cjs +12 -19
  218. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  219. package/_cjs/typeclass/Monoid.cjs +56 -2
  220. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  221. package/_cjs/typeclass/Nil.cjs +10 -0
  222. package/_cjs/typeclass/Nil.cjs.map +1 -1
  223. package/_cjs/typeclass/Ord/api/contramap.cjs +2 -4
  224. package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
  225. package/_cjs/typeclass/Ord/api/max.cjs +1 -1
  226. package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
  227. package/_cjs/typeclass/Ord/api/min.cjs +1 -1
  228. package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
  229. package/_cjs/typeclass/Ord/definition.cjs +2 -3
  230. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  231. package/_cjs/typeclass/Ord/instances.cjs +7 -7
  232. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  233. package/_cjs/typeclass/Pointed.cjs +6 -11
  234. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  235. package/_cjs/typeclass/Semialign.cjs +77 -94
  236. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  237. package/_cjs/typeclass/Semigroup/api.cjs +2 -2
  238. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  239. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  240. package/_cjs/typeclass/Semigroup/derivations.cjs +63 -0
  241. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -0
  242. package/_cjs/typeclass/Semimonoidal.cjs +9 -13
  243. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  244. package/_cjs/typeclass/Showable/show.cjs +11 -11
  245. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  246. package/_cjs/typeclass/Traversable.cjs +26 -34
  247. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  248. package/_cjs/typeclass/TraversableWithIndex.cjs +7 -38
  249. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  250. package/_cjs/typeclass/Witherable.cjs +41 -42
  251. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  252. package/_cjs/typeclass/WitherableWithIndex.cjs +41 -50
  253. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  254. package/_cjs/typeclass.cjs +13 -0
  255. package/_cjs/typeclass.cjs.map +1 -1
  256. package/_cjs/util/predicates.cjs +5 -0
  257. package/_cjs/util/predicates.cjs.map +1 -1
  258. package/_mjs/collection/Iterable/api/traverseConc.mjs +20 -15
  259. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  260. package/_mjs/collection/Iterable/api.mjs +21 -31
  261. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  262. package/_mjs/collection/compat/Array/api.mjs +1 -1
  263. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  264. package/_mjs/collection/immutable/Conc/api.mjs +35 -36
  265. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  266. package/_mjs/collection/immutable/Conc/definition.mjs +48 -39
  267. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  268. package/_mjs/collection/immutable/Dictionary/definition.mjs +3 -2
  269. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  270. package/_mjs/collection/immutable/HashMap/api.mjs +26 -66
  271. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  272. package/_mjs/collection/immutable/HashMap/definition.mjs +18 -15
  273. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  274. package/_mjs/collection/immutable/HashSet/api.mjs +5 -5
  275. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  276. package/_mjs/collection/immutable/ImmutableArray/api.mjs +135 -177
  277. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  278. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +11 -10
  279. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  280. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +151 -138
  281. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  282. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +108 -142
  283. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  284. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +2 -0
  285. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  286. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +46 -67
  287. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  288. package/_mjs/collection/immutable/List/api.mjs +4 -5
  289. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  290. package/_mjs/collection/immutable/RoseTree/api.mjs +447 -0
  291. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -0
  292. package/_mjs/collection/immutable/RoseTree/definition.mjs +35 -0
  293. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -0
  294. package/_mjs/collection/immutable/RoseTree.mjs +4 -0
  295. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -0
  296. package/_mjs/collection/immutable/SortedMap/api.mjs +65 -65
  297. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  298. package/_mjs/collection/immutable/Vector/api.mjs +59 -15
  299. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  300. package/_mjs/collection/immutable/Vector/definition.mjs +12 -11
  301. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  302. package/_mjs/collection/mutable/HashMap.mjs +5 -5
  303. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  304. package/_mjs/collection/mutable/HashSet.mjs +4 -4
  305. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  306. package/_mjs/control/Eval/api.mjs +5 -2
  307. package/_mjs/control/Eval/api.mjs.map +1 -1
  308. package/_mjs/control/Eval/definition.mjs +1 -0
  309. package/_mjs/control/Eval/definition.mjs.map +1 -1
  310. package/_mjs/control/Eval/instance.mjs +15 -18
  311. package/_mjs/control/Eval/instance.mjs.map +1 -1
  312. package/_mjs/control/Z/definition.mjs +2 -0
  313. package/_mjs/control/Z/definition.mjs.map +1 -1
  314. package/_mjs/control/Z/instances.mjs +7 -8
  315. package/_mjs/control/Z/instances.mjs.map +1 -1
  316. package/_mjs/data/Branded/definition.mjs +18 -0
  317. package/_mjs/data/Branded/definition.mjs.map +1 -0
  318. package/_mjs/data/Branded/derivations.mjs +39 -0
  319. package/_mjs/data/Branded/derivations.mjs.map +1 -0
  320. package/_mjs/data/Branded.mjs +4 -0
  321. package/_mjs/data/Branded.mjs.map +1 -0
  322. package/_mjs/data/Cause/api/fold.mjs +2 -0
  323. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  324. package/_mjs/data/Cause/api.mjs +20 -0
  325. package/_mjs/data/Cause/api.mjs.map +1 -1
  326. package/_mjs/data/Const/api.mjs +3 -3
  327. package/_mjs/data/Const/api.mjs.map +1 -1
  328. package/_mjs/data/Const/definition.mjs +13 -1
  329. package/_mjs/data/Const/definition.mjs.map +1 -1
  330. package/_mjs/data/Const/instances.mjs +7 -15
  331. package/_mjs/data/Const/instances.mjs.map +1 -1
  332. package/_mjs/data/DecodeError/definition.mjs +226 -0
  333. package/_mjs/data/DecodeError/definition.mjs.map +1 -0
  334. package/_mjs/data/DecodeError.mjs +3 -0
  335. package/_mjs/data/DecodeError.mjs.map +1 -0
  336. package/_mjs/data/Decoder/api.mjs +179 -0
  337. package/_mjs/data/Decoder/api.mjs.map +1 -0
  338. package/_mjs/data/Decoder/definition.mjs +24 -0
  339. package/_mjs/data/Decoder/definition.mjs.map +1 -0
  340. package/_mjs/data/Decoder.mjs +4 -0
  341. package/_mjs/data/Decoder.mjs.map +1 -0
  342. package/_mjs/data/Duration/api.mjs +17 -8
  343. package/_mjs/data/Duration/api.mjs.map +1 -1
  344. package/_mjs/data/Either/api/alignWith.mjs +2 -0
  345. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  346. package/_mjs/data/Either/api.mjs +91 -21
  347. package/_mjs/data/Either/api.mjs.map +1 -1
  348. package/_mjs/data/Either/definition.mjs +25 -5
  349. package/_mjs/data/Either/definition.mjs.map +1 -1
  350. package/_mjs/data/Either/destructors.mjs +2 -0
  351. package/_mjs/data/Either/destructors.mjs.map +1 -1
  352. package/_mjs/data/Either/instances.mjs +109 -39
  353. package/_mjs/data/Either/instances.mjs.map +1 -1
  354. package/_mjs/data/Environment/api.mjs +23 -7
  355. package/_mjs/data/Environment/api.mjs.map +1 -1
  356. package/_mjs/data/Identity/api.mjs +24 -5
  357. package/_mjs/data/Identity/api.mjs.map +1 -1
  358. package/_mjs/data/Identity/definition.mjs +3 -1
  359. package/_mjs/data/Identity/definition.mjs.map +1 -1
  360. package/_mjs/data/Identity/instances.mjs +12 -18
  361. package/_mjs/data/Identity/instances.mjs.map +1 -1
  362. package/_mjs/data/Interval.mjs +114 -0
  363. package/_mjs/data/Interval.mjs.map +1 -0
  364. package/_mjs/data/Maybe/api.mjs +30 -35
  365. package/_mjs/data/Maybe/api.mjs.map +1 -1
  366. package/_mjs/data/Maybe/definition.mjs +37 -14
  367. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  368. package/_mjs/data/Maybe/destructors.mjs +1 -0
  369. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  370. package/_mjs/data/Maybe/instances.mjs +56 -39
  371. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  372. package/_mjs/data/Newtype.mjs +4 -3
  373. package/_mjs/data/Newtype.mjs.map +1 -1
  374. package/_mjs/data/Patch/api.mjs +1 -1
  375. package/_mjs/data/Patch/api.mjs.map +1 -1
  376. package/_mjs/data/Refinement/api.mjs +0 -4
  377. package/_mjs/data/Refinement/api.mjs.map +1 -1
  378. package/_mjs/data/Struct/definition.mjs +3 -2
  379. package/_mjs/data/Struct/definition.mjs.map +1 -1
  380. package/_mjs/data/These/api.mjs +262 -0
  381. package/_mjs/data/These/api.mjs.map +1 -0
  382. package/_mjs/data/These/constructors.mjs +14 -2
  383. package/_mjs/data/These/constructors.mjs.map +1 -1
  384. package/_mjs/data/These/definition.mjs +8 -0
  385. package/_mjs/data/These/definition.mjs.map +1 -1
  386. package/_mjs/data/These/destructors.mjs +53 -0
  387. package/_mjs/data/These/destructors.mjs.map +1 -1
  388. package/_mjs/data/These/instances.mjs +36 -0
  389. package/_mjs/data/These/instances.mjs.map +1 -0
  390. package/_mjs/data/These.mjs +1 -0
  391. package/_mjs/data/These.mjs.map +1 -1
  392. package/_mjs/data/bigint/definition.mjs +2 -0
  393. package/_mjs/data/bigint/definition.mjs.map +1 -0
  394. package/_mjs/data/bigint/instances.mjs +10 -0
  395. package/_mjs/data/bigint/instances.mjs.map +1 -0
  396. package/_mjs/data/bigint.mjs +4 -0
  397. package/_mjs/data/bigint.mjs.map +1 -0
  398. package/_mjs/data/boolean/definition.mjs +2 -0
  399. package/_mjs/data/boolean/definition.mjs.map +1 -0
  400. package/_mjs/data/boolean/instances.mjs +10 -0
  401. package/_mjs/data/boolean/instances.mjs.map +1 -0
  402. package/_mjs/data/boolean.mjs +4 -0
  403. package/_mjs/data/boolean.mjs.map +1 -0
  404. package/_mjs/data/number/instances.mjs +14 -4
  405. package/_mjs/data/number/instances.mjs.map +1 -1
  406. package/_mjs/data/object/instances.mjs +10 -0
  407. package/_mjs/data/object/instances.mjs.map +1 -0
  408. package/_mjs/data/string/instances.mjs +20 -8
  409. package/_mjs/data/string/instances.mjs.map +1 -1
  410. package/_mjs/internal/Stack.mjs +4 -0
  411. package/_mjs/internal/Stack.mjs.map +1 -1
  412. package/_mjs/json/EitherJson.mjs +18 -0
  413. package/_mjs/json/EitherJson.mjs.map +1 -0
  414. package/_mjs/json/MaybeJson.mjs +16 -0
  415. package/_mjs/json/MaybeJson.mjs.map +1 -0
  416. package/_mjs/json/TheseJson.mjs +22 -0
  417. package/_mjs/json/TheseJson.mjs.map +1 -0
  418. package/_mjs/optics/Optional/definition.mjs +5 -4
  419. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  420. package/_mjs/optics/Traversal/api/compose.mjs +1 -1
  421. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  422. package/_mjs/optics/Traversal/api/fromTraversable.mjs +5 -4
  423. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  424. package/_mjs/optics/Traversal/definition.mjs +14 -12
  425. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  426. package/_mjs/typeclass/Align.mjs +0 -11
  427. package/_mjs/typeclass/Align.mjs.map +1 -1
  428. package/_mjs/typeclass/Alt.mjs +4 -7
  429. package/_mjs/typeclass/Alt.mjs.map +1 -1
  430. package/_mjs/typeclass/Alternative.mjs +0 -13
  431. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  432. package/_mjs/typeclass/Applicative.mjs +0 -12
  433. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  434. package/_mjs/typeclass/ApplicativeExcept.mjs +32 -24
  435. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  436. package/_mjs/typeclass/Apply.mjs +85 -42
  437. package/_mjs/typeclass/Apply.mjs.map +1 -1
  438. package/_mjs/typeclass/Chain.mjs +33 -12
  439. package/_mjs/typeclass/Chain.mjs.map +1 -1
  440. package/_mjs/typeclass/Closure.mjs +1 -4
  441. package/_mjs/typeclass/Closure.mjs.map +1 -1
  442. package/_mjs/typeclass/Eq/definition.mjs +9 -0
  443. package/_mjs/typeclass/Eq/definition.mjs.map +1 -0
  444. package/_mjs/typeclass/Eq/derivations.mjs +46 -0
  445. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -0
  446. package/_mjs/typeclass/Eq.mjs +1 -11
  447. package/_mjs/typeclass/Eq.mjs.map +1 -1
  448. package/_mjs/typeclass/Fail.mjs +5 -7
  449. package/_mjs/typeclass/Fail.mjs.map +1 -1
  450. package/_mjs/typeclass/Filterable.mjs +27 -13
  451. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  452. package/_mjs/typeclass/FilterableWithIndex.mjs +0 -16
  453. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  454. package/_mjs/typeclass/Foldable.mjs +29 -12
  455. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  456. package/_mjs/typeclass/FoldableWithIndex.mjs +29 -13
  457. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  458. package/_mjs/typeclass/Functor.mjs +16 -9
  459. package/_mjs/typeclass/Functor.mjs.map +1 -1
  460. package/_mjs/typeclass/FunctorWithIndex.mjs +0 -12
  461. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  462. package/_mjs/typeclass/Guard/api.mjs +23 -0
  463. package/_mjs/typeclass/Guard/api.mjs.map +1 -0
  464. package/_mjs/typeclass/Guard/definition.mjs +23 -0
  465. package/_mjs/typeclass/Guard/definition.mjs.map +1 -0
  466. package/_mjs/typeclass/Guard/derivations.mjs +67 -0
  467. package/_mjs/typeclass/Guard/derivations.mjs.map +1 -0
  468. package/_mjs/typeclass/Guard.mjs +4 -0
  469. package/_mjs/typeclass/Guard.mjs.map +1 -0
  470. package/_mjs/typeclass/HashEq.mjs +3 -3
  471. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  472. package/_mjs/typeclass/Monad.mjs +0 -12
  473. package/_mjs/typeclass/Monad.mjs.map +1 -1
  474. package/_mjs/typeclass/MonadExcept.mjs +9 -13
  475. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  476. package/_mjs/typeclass/Monoid.mjs +50 -1
  477. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  478. package/_mjs/typeclass/Nil.mjs +8 -1
  479. package/_mjs/typeclass/Nil.mjs.map +1 -1
  480. package/_mjs/typeclass/Ord/api/contramap.mjs +2 -4
  481. package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
  482. package/_mjs/typeclass/Ord/api/max.mjs +1 -1
  483. package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
  484. package/_mjs/typeclass/Ord/api/min.mjs +1 -1
  485. package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
  486. package/_mjs/typeclass/Ord/definition.mjs +2 -3
  487. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  488. package/_mjs/typeclass/Ord/instances.mjs +7 -7
  489. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  490. package/_mjs/typeclass/Pointed.mjs +5 -4
  491. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  492. package/_mjs/typeclass/Semialign.mjs +67 -74
  493. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  494. package/_mjs/typeclass/Semigroup/api.mjs +2 -2
  495. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  496. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  497. package/_mjs/typeclass/Semigroup/derivations.mjs +50 -0
  498. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -0
  499. package/_mjs/typeclass/Semigroup.mjs +1 -1
  500. package/_mjs/typeclass/Semimonoidal.mjs +8 -6
  501. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  502. package/_mjs/typeclass/Showable/show.mjs +11 -11
  503. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  504. package/_mjs/typeclass/Traversable.mjs +25 -24
  505. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  506. package/_mjs/typeclass/TraversableWithIndex.mjs +6 -24
  507. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  508. package/_mjs/typeclass/Witherable.mjs +39 -32
  509. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  510. package/_mjs/typeclass/WitherableWithIndex.mjs +39 -37
  511. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  512. package/_mjs/typeclass.mjs +1 -0
  513. package/_mjs/typeclass.mjs.map +1 -1
  514. package/_mjs/util/predicates.mjs +3 -0
  515. package/_mjs/util/predicates.mjs.map +1 -1
  516. package/_src/collection/Iterable/api/traverseConc.ts +21 -29
  517. package/_src/collection/Iterable/api.ts +20 -34
  518. package/_src/collection/compat/Array/api.ts +1 -1
  519. package/_src/collection/immutable/Conc/api.ts +26 -46
  520. package/_src/collection/immutable/Conc/definition.ts +19 -8
  521. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  522. package/_src/collection/immutable/HashMap/api.ts +24 -81
  523. package/_src/collection/immutable/HashMap/definition.ts +7 -9
  524. package/_src/collection/immutable/HashMap/internal.ts +1 -1
  525. package/_src/collection/immutable/HashSet/api.ts +4 -4
  526. package/_src/collection/immutable/ImmutableArray/api.ts +180 -219
  527. package/_src/collection/immutable/ImmutableArray/definition.ts +6 -8
  528. package/_src/collection/immutable/ImmutableArray/instances.ts +156 -134
  529. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +87 -158
  530. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +4 -8
  531. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +39 -49
  532. package/_src/collection/immutable/List/api.ts +2 -6
  533. package/_src/collection/immutable/RoseTree/api.ts +278 -0
  534. package/_src/collection/immutable/RoseTree/definition.ts +29 -0
  535. package/_src/collection/immutable/RoseTree.ts +4 -0
  536. package/_src/collection/immutable/SortedMap/api.ts +56 -53
  537. package/_src/collection/immutable/Vector/api.ts +57 -17
  538. package/_src/collection/immutable/Vector/definition.ts +10 -0
  539. package/_src/collection/mutable/HashMap.ts +5 -5
  540. package/_src/collection/mutable/HashSet.ts +4 -4
  541. package/_src/control/Eval/api.ts +5 -1
  542. package/_src/control/Eval/definition.ts +5 -8
  543. package/_src/control/Eval/instance.ts +16 -15
  544. package/_src/control/Z/definition.ts +26 -19
  545. package/_src/control/Z/instances.ts +9 -8
  546. package/_src/data/Branded/definition.ts +47 -0
  547. package/_src/data/Branded/derivations.ts +57 -0
  548. package/_src/data/Branded.ts +4 -0
  549. package/_src/data/Cause/api/fold.ts +1 -0
  550. package/_src/data/Cause/api.ts +18 -0
  551. package/_src/data/Const/api.ts +3 -3
  552. package/_src/data/Const/definition.ts +22 -5
  553. package/_src/data/Const/instances.ts +12 -21
  554. package/_src/data/DecodeError/definition.ts +227 -0
  555. package/_src/data/DecodeError.ts +3 -0
  556. package/_src/data/Decoder/api.ts +198 -0
  557. package/_src/data/Decoder/definition.ts +25 -0
  558. package/_src/data/Decoder.ts +4 -0
  559. package/_src/data/Duration/api.ts +21 -14
  560. package/_src/data/Either/api/alignWith.ts +2 -0
  561. package/_src/data/Either/api.ts +85 -30
  562. package/_src/data/Either/definition.ts +41 -19
  563. package/_src/data/Either/destructors.ts +1 -0
  564. package/_src/data/Either/instances.ts +102 -51
  565. package/_src/data/Environment/api.ts +19 -4
  566. package/_src/data/Identity/api.ts +19 -4
  567. package/_src/data/Identity/definition.ts +7 -3
  568. package/_src/data/Identity/instances.ts +15 -8
  569. package/_src/data/Interval.ts +103 -0
  570. package/_src/data/Maybe/api.ts +21 -31
  571. package/_src/data/Maybe/definition.ts +31 -19
  572. package/_src/data/Maybe/destructors.ts +1 -0
  573. package/_src/data/Maybe/instances.ts +61 -34
  574. package/_src/data/Newtype.ts +11 -32
  575. package/_src/data/Patch/api.ts +1 -1
  576. package/_src/data/Refinement/api.ts +4 -2
  577. package/_src/data/Struct/definition.ts +1 -1
  578. package/_src/data/These/api.ts +184 -0
  579. package/_src/data/These/constructors.ts +10 -0
  580. package/_src/data/These/definition.ts +7 -0
  581. package/_src/data/These/destructors.ts +45 -0
  582. package/_src/data/These/instances.ts +43 -0
  583. package/_src/data/These.ts +1 -0
  584. package/_src/data/bigint/definition.ts +13 -0
  585. package/_src/data/bigint/instances.ts +8 -0
  586. package/_src/data/bigint.ts +4 -0
  587. package/_src/data/boolean/definition.ts +13 -0
  588. package/_src/data/boolean/instances.ts +8 -0
  589. package/_src/data/boolean.ts +4 -0
  590. package/_src/data/number/instances.ts +13 -3
  591. package/_src/data/object/instances.ts +7 -0
  592. package/_src/data/string/instances.ts +17 -5
  593. package/_src/internal/Stack.ts +4 -0
  594. package/_src/json/EitherJson.ts +28 -0
  595. package/_src/json/MaybeJson.ts +27 -0
  596. package/_src/json/TheseJson.ts +31 -0
  597. package/_src/optics/Optional/definition.ts +2 -2
  598. package/_src/optics/Traversal/api/compose.ts +1 -1
  599. package/_src/optics/Traversal/api/fromTraversable.ts +15 -41
  600. package/_src/optics/Traversal/definition.ts +21 -23
  601. package/_src/typeclass/Align.ts +4 -18
  602. package/_src/typeclass/Alt.ts +59 -90
  603. package/_src/typeclass/Alternative.ts +4 -20
  604. package/_src/typeclass/Applicative.ts +3 -23
  605. package/_src/typeclass/ApplicativeExcept.ts +94 -193
  606. package/_src/typeclass/Apply.ts +319 -509
  607. package/_src/typeclass/Chain.ts +127 -199
  608. package/_src/typeclass/Closure.ts +4 -20
  609. package/_src/typeclass/Eq/definition.ts +20 -0
  610. package/_src/typeclass/Eq/derivations.ts +61 -0
  611. package/_src/typeclass/Eq.ts +2 -36
  612. package/_src/typeclass/Fail.ts +28 -27
  613. package/_src/typeclass/Filterable.ts +70 -117
  614. package/_src/typeclass/FilterableWithIndex.ts +27 -131
  615. package/_src/typeclass/Foldable.ts +35 -52
  616. package/_src/typeclass/FoldableWithIndex.ts +40 -75
  617. package/_src/typeclass/Functor.ts +21 -59
  618. package/_src/typeclass/FunctorWithIndex.ts +6 -34
  619. package/_src/typeclass/Guard/api.ts +32 -0
  620. package/_src/typeclass/Guard/definition.ts +23 -0
  621. package/_src/typeclass/Guard/derivations.ts +80 -0
  622. package/_src/typeclass/Guard.ts +5 -0
  623. package/_src/typeclass/HashEq.ts +3 -4
  624. package/_src/typeclass/Monad.ts +3 -18
  625. package/_src/typeclass/MonadExcept.ts +9 -32
  626. package/_src/typeclass/Monoid.ts +60 -2
  627. package/_src/typeclass/Nil.ts +26 -17
  628. package/_src/typeclass/Ord/api/contramap.ts +2 -4
  629. package/_src/typeclass/Ord/api/max.ts +1 -1
  630. package/_src/typeclass/Ord/api/min.ts +1 -1
  631. package/_src/typeclass/Ord/definition.ts +3 -19
  632. package/_src/typeclass/Ord/instances.ts +6 -6
  633. package/_src/typeclass/Pointed.ts +29 -25
  634. package/_src/typeclass/Semialign.ts +308 -444
  635. package/_src/typeclass/Semigroup/api.ts +2 -2
  636. package/_src/typeclass/Semigroup/definition.ts +2 -6
  637. package/_src/typeclass/Semigroup/derivations.ts +64 -0
  638. package/_src/typeclass/Semigroup.ts +1 -1
  639. package/_src/typeclass/Semimonoidal.ts +55 -84
  640. package/_src/typeclass/Showable/show.ts +6 -8
  641. package/_src/typeclass/Traversable.ts +67 -157
  642. package/_src/typeclass/TraversableWithIndex.ts +37 -127
  643. package/_src/typeclass/Witherable.ts +120 -279
  644. package/_src/typeclass/WitherableWithIndex.ts +129 -337
  645. package/_src/typeclass.ts +2 -0
  646. package/_src/util/predicates.ts +4 -0
  647. package/collection/Iterable/api/traverseConc.d.ts +6 -4
  648. package/collection/Iterable/api.d.ts +5 -13
  649. package/collection/immutable/Conc/api.d.ts +15 -23
  650. package/collection/immutable/Conc/definition.d.ts +10 -7
  651. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  652. package/collection/immutable/HashMap/api.d.ts +15 -27
  653. package/collection/immutable/HashMap/definition.d.ts +6 -9
  654. package/collection/immutable/HashMap/internal.d.ts +1 -1
  655. package/collection/immutable/ImmutableArray/api.d.ts +42 -94
  656. package/collection/immutable/ImmutableArray/definition.d.ts +6 -8
  657. package/collection/immutable/ImmutableArray/instances.d.ts +86 -17
  658. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +26 -47
  659. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +4 -8
  660. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +1 -1
  661. package/collection/immutable/List/api.d.ts +1 -2
  662. package/collection/immutable/RoseTree/api.d.ts +63 -0
  663. package/collection/immutable/RoseTree/definition.d.ts +23 -0
  664. package/collection/immutable/RoseTree.d.ts +2 -0
  665. package/collection/immutable/SortedMap/api.d.ts +2 -1
  666. package/collection/immutable/Vector/api.d.ts +31 -8
  667. package/collection/immutable/Vector/definition.d.ts +10 -0
  668. package/control/Eval/api.d.ts +1 -0
  669. package/control/Eval/definition.d.ts +5 -8
  670. package/control/Eval/instance.d.ts +4 -1
  671. package/control/Z/definition.d.ts +23 -18
  672. package/control/Z/instances.d.ts +4 -3
  673. package/data/Branded/definition.d.ts +36 -0
  674. package/data/Branded/derivations.d.ts +24 -0
  675. package/data/Branded.d.ts +2 -0
  676. package/data/Cause/api.d.ts +7 -1
  677. package/data/Const/api.d.ts +1 -1
  678. package/data/Const/definition.d.ts +23 -7
  679. package/data/Const/instances.d.ts +4 -12
  680. package/data/DecodeError/definition.d.ts +141 -0
  681. package/data/DecodeError.d.ts +1 -0
  682. package/data/Decoder/api.d.ts +65 -0
  683. package/data/Decoder/definition.d.ts +24 -0
  684. package/data/Decoder.d.ts +2 -0
  685. package/data/Duration/api.d.ts +12 -8
  686. package/data/Either/api.d.ts +29 -17
  687. package/data/Either/definition.d.ts +31 -14
  688. package/data/Either/instances.d.ts +26 -11
  689. package/data/Environment/api.d.ts +5 -0
  690. package/data/Identity/api.d.ts +11 -0
  691. package/data/Identity/definition.d.ts +7 -2
  692. package/data/Identity/instances.d.ts +5 -9
  693. package/data/Interval.d.ts +71 -0
  694. package/data/Maybe/api.d.ts +3 -17
  695. package/data/Maybe/definition.d.ts +20 -14
  696. package/data/Maybe/instances.d.ts +14 -8
  697. package/data/Newtype.d.ts +8 -9
  698. package/data/Refinement/api.d.ts +2 -0
  699. package/data/Struct/definition.d.ts +1 -1
  700. package/data/These/api.d.ts +73 -0
  701. package/data/These/constructors.d.ts +7 -1
  702. package/data/These/definition.d.ts +5 -0
  703. package/data/These/destructors.d.ts +27 -1
  704. package/data/These/instances.d.ts +13 -0
  705. package/data/These.d.ts +1 -0
  706. package/data/bigint/definition.d.ts +13 -0
  707. package/data/bigint/instances.d.ts +7 -0
  708. package/data/bigint.d.ts +2 -0
  709. package/data/boolean/definition.d.ts +13 -0
  710. package/data/boolean/instances.d.ts +7 -0
  711. package/data/boolean.d.ts +2 -0
  712. package/data/number/instances.d.ts +8 -0
  713. package/data/object/instances.d.ts +7 -0
  714. package/data/string/instances.d.ts +10 -0
  715. package/internal/Stack.d.ts +1 -0
  716. package/json/EitherJson.d.ts +24 -0
  717. package/json/MaybeJson.d.ts +23 -0
  718. package/json/TheseJson.d.ts +26 -0
  719. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  720. package/optics/Traversal/definition.d.ts +4 -9
  721. package/package.json +2 -2
  722. package/typeclass/Align.d.ts +3 -10
  723. package/typeclass/Alt.d.ts +6 -19
  724. package/typeclass/Alternative.d.ts +4 -12
  725. package/typeclass/Applicative.d.ts +3 -12
  726. package/typeclass/ApplicativeExcept.d.ts +14 -39
  727. package/typeclass/Apply.d.ts +41 -72
  728. package/typeclass/Chain.d.ts +18 -28
  729. package/typeclass/Closure.d.ts +2 -12
  730. package/typeclass/Eq/definition.d.ts +17 -0
  731. package/typeclass/Eq/derivations.d.ts +24 -0
  732. package/typeclass/Eq.d.ts +2 -27
  733. package/typeclass/Fail.d.ts +4 -10
  734. package/typeclass/Filterable.d.ts +30 -51
  735. package/typeclass/FilterableWithIndex.d.ts +10 -53
  736. package/typeclass/Foldable.d.ts +19 -31
  737. package/typeclass/FoldableWithIndex.d.ts +20 -33
  738. package/typeclass/Functor.d.ts +11 -22
  739. package/typeclass/FunctorWithIndex.d.ts +3 -19
  740. package/typeclass/Guard/api.d.ts +20 -0
  741. package/typeclass/Guard/definition.d.ts +22 -0
  742. package/typeclass/Guard/derivations.d.ts +36 -0
  743. package/typeclass/Guard.d.ts +2 -0
  744. package/typeclass/HashEq.d.ts +1 -2
  745. package/typeclass/Monad.d.ts +3 -11
  746. package/typeclass/MonadExcept.d.ts +6 -17
  747. package/typeclass/Monoid.d.ts +24 -2
  748. package/typeclass/Nil.d.ts +7 -8
  749. package/typeclass/Ord/definition.d.ts +2 -14
  750. package/typeclass/Pointed.d.ts +4 -10
  751. package/typeclass/Semialign.d.ts +51 -63
  752. package/typeclass/Semigroup/definition.d.ts +3 -5
  753. package/typeclass/Semigroup/derivations.d.ts +25 -0
  754. package/typeclass/Semimonoidal.d.ts +5 -14
  755. package/typeclass/Traversable.d.ts +17 -57
  756. package/typeclass/TraversableWithIndex.d.ts +9 -52
  757. package/typeclass/Witherable.d.ts +22 -82
  758. package/typeclass/WitherableWithIndex.d.ts +26 -98
  759. package/typeclass.d.ts +1 -0
  760. package/util/predicates.d.ts +1 -0
@@ -81,6 +81,13 @@ export function crossWith_<A, B, C>(
81
81
  return self.flatMap((a) => fb.map((b) => f(a, b)));
82
82
  }
83
83
 
84
+ /**
85
+ * @tsplus fluent fncts.ImmutableArray cross
86
+ */
87
+ export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<readonly [A, B]> {
88
+ return self.crossWith(fb, tuple);
89
+ }
90
+
84
91
  /**
85
92
  * @tsplus static fncts.ImmutableArrayOps chainRecDepthFirst
86
93
  */
@@ -90,6 +97,7 @@ export function chainRecDepthFirst<A, B>(a: A, f: (a: A) => ImmutableArray<Eithe
90
97
 
91
98
  while (buffer.length > 0) {
92
99
  const e = buffer.shift()!;
100
+ Either.concrete(e);
93
101
  if (e._tag === EitherTag.Left) {
94
102
  buffer.unshift(...f(e.left));
95
103
  } else {
@@ -109,6 +117,7 @@ export function chainRecBreadthFirst<A, B>(a: A, f: (a: A) => ImmutableArray<Eit
109
117
  const out: Array<B> = [];
110
118
 
111
119
  function go(e: Either<A, B>): void {
120
+ Either.concrete(e);
112
121
  if (e._tag === "Left") {
113
122
  f(e.left).forEach((v) => buffer.push(v));
114
123
  } else {
@@ -226,9 +235,7 @@ function comprehensionLoop<A, R>(
226
235
  if (input.length === 0) {
227
236
  return g(...scope) ? Eval.now(ImmutableArray(f(...scope))) : Eval.now(ImmutableArray.empty());
228
237
  } else {
229
- return input[0]!
230
- .traverse(Eval.Applicative)((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g))
231
- .map((rs) => rs.flatten);
238
+ return input[0]!.traverse((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g)).map((rs) => rs.flatten);
232
239
  }
233
240
  }
234
241
 
@@ -266,7 +273,6 @@ export function comprehension<A, R>(
266
273
  /**
267
274
  * @tsplus fluent fncts.ImmutableArray concat
268
275
  * @tsplus operator fncts.ImmutableArray +
269
- * @tsplus operator fncts.base.MutableArray +
270
276
  */
271
277
  export function concat_<A, B>(self: ImmutableArray<A>, that: ImmutableArray<B>): ImmutableArray<A | B> {
272
278
  const lenx = self._array.length;
@@ -295,20 +301,14 @@ export function deleteAt_<A>(as: ImmutableArray<A>, i: number): Maybe<ImmutableA
295
301
  }
296
302
 
297
303
  /**
298
- * @constrained
299
- */
300
- export function difference_<A>(E: P.Eq<A>) {
301
- const elemE_ = elem_(E);
302
- return (self: ImmutableArray<A>, ys: ImmutableArray<A>): ImmutableArray<A> => self.filter((a) => !elemE_(ys, a));
303
- }
304
-
305
- /**
306
- * @tsplus getter fncts.ImmutableArray difference
304
+ * @tsplus fluent fncts.ImmutableArray difference
307
305
  */
308
- export function differenceSelf<A>(self: ImmutableArray<A>) {
309
- return (E: P.Eq<A>) =>
310
- (that: ImmutableArray<A>): ImmutableArray<A> =>
311
- difference_(E)(self, that);
306
+ export function difference_<A>(
307
+ self: ImmutableArray<A>,
308
+ ys: ImmutableArray<A>,
309
+ /** @tsplus auto */ E: P.Eq<A>,
310
+ ): ImmutableArray<A> {
311
+ return self.filter((a) => !ys.elem(a, E));
312
312
  }
313
313
 
314
314
  /**
@@ -344,32 +344,17 @@ export function dropLastWhile_<A>(as: ImmutableArray<A>, p: Predicate<A>): Immut
344
344
  * argument which returns the function to use to search for a value of type `A` in
345
345
  * an array of type `ImmutableArray<A>`.
346
346
  *
347
- * @constrained
348
- */
349
- export function elem_<A>(E: P.Eq<A>) {
350
- return (as: ImmutableArray<A>, a: A): boolean => {
351
- const predicate = (element: A) => E.equals_(element, a);
352
- const len = as.length;
353
- for (let i = 0; i < len; i++) {
354
- if (predicate(as._array[i]!)) {
355
- return true;
356
- }
357
- }
358
- return false;
359
- };
360
- }
361
-
362
- /**
363
- * Test if a value is a member of an array. Takes an `Eq<A>` as a single
364
- * argument which returns the function to use to search for a value of type `A` in
365
- * an array of type `ImmutableArray<A>`.
366
- *
367
- * @tsplus getter fncts.ImmutableArray elem
347
+ * @tsplus fluent fncts.ImmutableArray elem
368
348
  */
369
- export function elemSelf<A>(self: ImmutableArray<A>) {
370
- return (E: P.Eq<A>) =>
371
- (a: A): boolean =>
372
- elem_(E)(self, a);
349
+ export function elem_<A>(as: ImmutableArray<A>, a: A, /** @tsplus auto */ E: P.Eq<A>): boolean {
350
+ const predicate = (element: A) => E.equals(element, a);
351
+ const len = as.length;
352
+ for (let i = 0; i < len; i++) {
353
+ if (predicate(as._array[i]!)) {
354
+ return true;
355
+ }
356
+ }
357
+ return false;
373
358
  }
374
359
 
375
360
  /**
@@ -604,59 +589,33 @@ export function foldLeftWithIndexWhile_<A, B>(
604
589
  return out;
605
590
  }
606
591
 
607
- export function fold<M>(M: Monoid<M>) {
608
- return (self: ImmutableArray<M>): M => self.foldLeft(M.nat, M.combine_);
609
- }
610
-
611
592
  /**
612
593
  * @tsplus fluent fncts.ImmutableArray fold
613
- * @tsplus fluent fncts.base.MutableArray fold
614
594
  */
615
- export function foldSelf<M>(self: ImmutableArray<M>, M: Monoid<M>): M {
616
- return self.foldLeft(M.nat, M.combine_);
595
+ export function fold<M>(self: ImmutableArray<M>, /** @tsplus auto */ M: Monoid<M>): M {
596
+ return self.foldLeft(M.nat, M.combine);
617
597
  }
618
598
 
619
599
  /**
620
- * @constrained
600
+ * @tsplus fluent fncts.ImmutableArray foldMapWithIndex
621
601
  */
622
- export function foldMapWithIndex_<M>(M: Monoid<M>) {
623
- return <A>(self: ImmutableArray<A>, f: (i: number, a: A) => M): M => {
624
- return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine_(b, f(i, a)));
625
- };
626
- }
627
-
628
- /**
629
- * @tsplus getter fncts.ImmutableArray foldMapWithIndex
630
- * @tsplus getter fncts.base.MutableArray foldMapWithIndex
631
- */
632
- export function foldMapWithIndexSelf<A>(self: ImmutableArray<A>) {
633
- return <M>(M: Monoid<M>) =>
634
- (f: (i: number, a: A) => M): M =>
635
- foldMapWithIndex_(M)(self, f);
636
- }
637
-
638
- /**
639
- * @constrained
640
- */
641
- export function foldMap_<M>(M: Monoid<M>) {
642
- return <A>(self: ImmutableArray<A>, f: (a: A) => M): M => {
643
- return self.foldMapWithIndex(M)((_, a) => f(a));
644
- };
602
+ export function foldMapWithIndex_<A, M>(
603
+ self: ImmutableArray<A>,
604
+ f: (i: number, a: A) => M,
605
+ /** @tsplus auto */ M: Monoid<M>,
606
+ ): M {
607
+ return self.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
645
608
  }
646
609
 
647
610
  /**
648
- * @tsplus getter fncts.ImmutableArray foldMap
649
- * @tsplus getter fncts.base.MutableArray foldMap
611
+ * @tsplus fluent fncts.ImmutableArray foldMap
650
612
  */
651
- export function foldMapSelf<A>(self: ImmutableArray<A>) {
652
- return <M>(M: Monoid<M>) =>
653
- (f: (a: A) => M): M =>
654
- self.foldMapWithIndex(M)((_, a) => f(a));
613
+ export function foldMap_<A, M>(self: ImmutableArray<A>, f: (a: A) => M, /** @tsplus auto */ M: Monoid<M>): M {
614
+ return self.foldMapWithIndex((_, a) => f(a), M);
655
615
  }
656
616
 
657
617
  /**
658
618
  * @tsplus fluent fncts.ImmutableArray foldRightWithIndex
659
- * @tsplus fluent fncts.base.MutableArray foldRightWithIndex
660
619
  */
661
620
  export function foldRightWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i: number, a: A, b: B) => B): B {
662
621
  let r = b;
@@ -668,7 +627,6 @@ export function foldRightWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i:
668
627
 
669
628
  /**
670
629
  * @tsplus fluent fncts.ImmutableArray foldRight
671
- * @tsplus fluent fncts.base.MutableArray foldRight
672
630
  */
673
631
  export function foldRight_<A, B>(self: ImmutableArray<A>, b: B, f: (a: A, b: B) => B): B {
674
632
  return self.foldRightWithIndex(b, (_, a, b) => f(a, b));
@@ -676,7 +634,6 @@ export function foldRight_<A, B>(self: ImmutableArray<A>, b: B, f: (a: A, b: B)
676
634
 
677
635
  /**
678
636
  * @tsplus fluent fncts.ImmutableArray foldRighWhile
679
- * @tsplus fluent fncts.base.MutableArray foldRightWhile
680
637
  */
681
638
  export function foldRightWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicate<B>, f: (a: A, b: B) => B): B {
682
639
  return self.foldRightWithIndexWhile(b, p, (_, a, b) => f(a, b));
@@ -684,7 +641,6 @@ export function foldRightWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicat
684
641
 
685
642
  /**
686
643
  * @tsplus fluent fncts.ImmutableArray foldRightWithIndexWhile
687
- * @tsplus fluent fncts.base.MutableArray foldRightWithIndexWhile
688
644
  */
689
645
  export function foldRightWithIndexWhile_<A, B>(
690
646
  self: ImmutableArray<A>,
@@ -723,7 +679,7 @@ export function group<A>(E: P.Eq<A>): (self: ImmutableArray<A>) => ImmutableArra
723
679
  let i = 1;
724
680
  for (; i < self.length; i++) {
725
681
  const a = self._array[i]!;
726
- if (E.equals_(a, h)) {
682
+ if (E.equals(a, h)) {
727
683
  out.push(a);
728
684
  } else {
729
685
  break;
@@ -782,18 +738,15 @@ export function insertAt_<A>(self: ImmutableArray<A>, i: number, a: A): Maybe<Im
782
738
  return self.isOutOfBound(i) ? Nothing() : Just(self.unsafeInsertAt(i, a));
783
739
  }
784
740
 
785
- export function intersection_<A>(E: P.Eq<A>) {
786
- const elemE = elem_(E);
787
- return (self: ImmutableArray<A>, that: ImmutableArray<A>): ImmutableArray<A> => self.filter((a) => elemE(that, a));
788
- }
789
-
790
741
  /**
791
- * @tsplus getter fncts.ImmutableArray intersection
742
+ * @tsplus fluent fncts.ImmutableArray intersection
792
743
  */
793
- export function intersectionSelf<A>(self: ImmutableArray<A>) {
794
- return (E: P.Eq<A>) =>
795
- (that: ImmutableArray<A>): ImmutableArray<A> =>
796
- intersection_(E)(self, that);
744
+ export function intersection_<A>(
745
+ self: ImmutableArray<A>,
746
+ that: ImmutableArray<A>,
747
+ /** @tsplus auto */ E: P.Eq<A>,
748
+ ): ImmutableArray<A> {
749
+ return self.filter((a) => that.elem(a, E));
797
750
  }
798
751
 
799
752
  export function intersperse_<A>(self: ImmutableArray<A>, a: A): ImmutableArray<A> {
@@ -850,6 +803,7 @@ export function lefts<E, A>(self: ImmutableArray<Either<E, A>>): ImmutableArray<
850
803
  const ls: Array<E> = [];
851
804
  for (let i = 0; i < self.length; i++) {
852
805
  const a = self._array[i]!;
806
+ Either.concrete(a);
853
807
  if (a._tag === EitherTag.Left) {
854
808
  ls.push(a.left);
855
809
  }
@@ -974,6 +928,7 @@ export function partitionMapWithIndex_<A, B, C>(
974
928
  const right = [] as Array<C>;
975
929
  for (let i = 0; i < self.length; i++) {
976
930
  const ea = f(i, self._array[i]!);
931
+ Either.concrete(ea);
977
932
  switch (ea._tag) {
978
933
  case EitherTag.Left:
979
934
  left.push(ea.left);
@@ -1045,6 +1000,7 @@ export function rights<E, A>(self: ImmutableArray<Either<E, A>>): ImmutableArray
1045
1000
  const rs: Array<A> = [];
1046
1001
  for (let i = 0; i < self.length; i++) {
1047
1002
  const a = self._array[i]!;
1003
+ Either.concrete(a);
1048
1004
  if (a._tag === EitherTag.Right) {
1049
1005
  rs.push(a.right);
1050
1006
  }
@@ -1095,14 +1051,14 @@ export function scanRight_<A, B>(self: ImmutableArray<A>, b: B, f: (a: A, b: B)
1095
1051
  /**
1096
1052
  * @tsplus fluent fncts.ImmutableArray sort
1097
1053
  */
1098
- export function sort<A extends B, B>(self: ImmutableArray<A>, O: P.Ord<B>): ImmutableArray<A> {
1099
- return self.isEmpty() || self.length === 1 ? self : self._array.slice().sort(O.compare_).asImmutableArray;
1054
+ export function sort<A>(self: ImmutableArray<A>, /** @tsplus auto */ O: P.Ord<A>): ImmutableArray<A> {
1055
+ return self.isEmpty() || self.length === 1 ? self : self._array.slice().sort(O.compare).asImmutableArray;
1100
1056
  }
1101
1057
 
1102
1058
  /**
1103
1059
  * @tsplus fluent fncts.ImmutableArray sortBy
1104
1060
  */
1105
- export function sortBy<A extends B, B>(self: ImmutableArray<A>, Os: ImmutableArray<P.Ord<B>>): ImmutableArray<A> {
1061
+ export function sortBy<A>(self: ImmutableArray<A>, Os: ImmutableArray<P.Ord<A>>): ImmutableArray<A> {
1106
1062
  return self.sort(Os.fold(P.Ord.getMonoid()));
1107
1063
  }
1108
1064
 
@@ -1219,14 +1175,6 @@ export function splitWhere_<A>(
1219
1175
  return self.splitAt(i);
1220
1176
  }
1221
1177
 
1222
- export const sequence: P.sequence<ImmutableArrayF> = (A) => (self) => self.traverse(A)(identity);
1223
-
1224
- /**
1225
- * @tsplus getter fncts.ImmutableArray sequence
1226
- */
1227
- export const sequenceSelf: P.sequenceSelf<ImmutableArrayF> = (self) => (A) =>
1228
- unsafeCoerce(self.traverse(A)(unsafeCoerce(identity)));
1229
-
1230
1178
  /**
1231
1179
  * @tsplus getter fncts.ImmutableArray tail
1232
1180
  */
@@ -1262,67 +1210,45 @@ export function takeWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): Immutab
1262
1210
  return init.asImmutableArray;
1263
1211
  }
1264
1212
 
1265
- export const traverseWithIndex_: P.traverseWithIndex_<ImmutableArrayF> = P.mkTraverseWithIndex_<ImmutableArrayF>()(
1266
- (_) => (A) => (ta, f) =>
1267
- ta.foldLeftWithIndex(A.pure(ImmutableArray.empty<typeof _.B>()), (i, fbs, a) =>
1268
- A.zipWith_(fbs, f(i, a), (bs, b) => bs.append(b)),
1269
- ),
1270
- );
1271
-
1272
1213
  /**
1273
- * @tsplus dataFirst traverseWithIndex_
1214
+ * @tsplus fluent fncts.ImmutableArray traverseWithIndex
1274
1215
  */
1275
- export const traverseWithIndex: P.traverseWithIndex<ImmutableArrayF> = (A) => (f) => (self) =>
1276
- traverseWithIndex_(A)(self, f);
1216
+ export const traverseWithIndex_: P.TraversableWithIndex<ImmutableArrayF>["traverseWithIndex"] = (ta, f, G) =>
1217
+ ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) => fbs.zipWith(f(i, a), (bs, b) => bs.append(b), G));
1277
1218
 
1278
1219
  /**
1279
- * @tsplus getter fncts.ImmutableArray traverseWithIndex
1220
+ * @tsplus fluent fncts.ImmutableArray traverse
1280
1221
  */
1281
- export const traverseWithIndexSelf: P.traverseWithIndexSelf<ImmutableArrayF> = (self) => (A) => (f) =>
1282
- traverseWithIndex_(A)(self, f);
1283
-
1284
- export const traverse_: P.traverse_<ImmutableArrayF> = (A) => (self, f) => self.traverseWithIndex(A)((_, a) => f(a));
1222
+ export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self, f, G) =>
1223
+ self.traverseWithIndex((_, a) => f(a), G);
1285
1224
 
1286
1225
  /**
1287
- * @tsplus dataFirst traverse_
1226
+ * @tsplus fluent fncts.ImmutableArray union
1288
1227
  */
1289
- export const traverse: P.traverse<ImmutableArrayF> = (A) => (f) => (self) => self.traverseWithIndex(A)((_, a) => f(a));
1290
-
1291
- /**
1292
- * @tsplus getter fncts.ImmutableArray traverse
1293
- */
1294
- export const traverseSelf: P.traverseSelf<ImmutableArrayF> = (self) => (A) => (f) =>
1295
- self.traverseWithIndex(A)((_, a) => f(a));
1296
-
1297
- export function union_<A>(E: P.Eq<A>) {
1298
- const elemE = elem_(E);
1299
- return (self: ImmutableArray<A>, that: ImmutableArray<A>): ImmutableArray<A> =>
1300
- self.concat(that.filter((a) => !elemE(self, a)));
1301
- }
1302
-
1303
- export function uniq<A>(E: P.Eq<A>) {
1304
- return (self: ImmutableArray<A>): ImmutableArray<A> => {
1305
- if (self.length === 1) {
1306
- return self;
1307
- }
1308
- const elemE_ = elem_(E);
1309
- const out = [] as Array<A>;
1310
- const len = self.length;
1311
- for (let i = 0; i < len; i++) {
1312
- const a = self._array[i]!;
1313
- if (!elemE_(out.asImmutableArray, a)) {
1314
- out.push(a);
1315
- }
1316
- }
1317
- return out.asImmutableArray;
1318
- };
1228
+ export function union_<A>(
1229
+ self: ImmutableArray<A>,
1230
+ that: ImmutableArray<A>,
1231
+ /** @tsplus auto */ E: P.Eq<A>,
1232
+ ): ImmutableArray<A> {
1233
+ return self.concat(that.filter((a) => !self.elem(a, E)));
1319
1234
  }
1320
1235
 
1321
1236
  /**
1322
1237
  * @tsplus fluent fncts.ImmutableArray uniq
1323
1238
  */
1324
- export function uniqSelf<A>(self: ImmutableArray<A>, E: P.Eq<A>): ImmutableArray<A> {
1325
- return uniq(E)(self);
1239
+ export function uniq<A>(self: ImmutableArray<A>, /** @tsplus auto */ E: P.Eq<A>): ImmutableArray<A> {
1240
+ if (self.length === 1) {
1241
+ return self;
1242
+ }
1243
+ const out = [] as Array<A>;
1244
+ const len = self.length;
1245
+ for (let i = 0; i < len; i++) {
1246
+ const a = self._array[i]!;
1247
+ if (!out.asImmutableArray.elem(a, E)) {
1248
+ out.push(a);
1249
+ }
1250
+ }
1251
+ return out.asImmutableArray;
1326
1252
  }
1327
1253
 
1328
1254
  /**
@@ -1412,88 +1338,123 @@ export function updateAt_<A>(as: ImmutableArray<A>, i: number, a: A): Maybe<Immu
1412
1338
  return as.isOutOfBound(i) ? Nothing() : Just(as.unsafeUpdateAt(i, a));
1413
1339
  }
1414
1340
 
1415
- export const wilt_: P.wilt_<ImmutableArrayF> = (A) => (self, f) => self.wiltWithIndex(A)((_, a) => f(a));
1416
-
1417
- /**
1418
- * @tsplus pipeable fncts.ImmutableArray wilt_
1419
- */
1420
- export const wilt: P.wilt<ImmutableArrayF> = (A) => (f) => (self) => self.wiltWithIndex(A)((_, a) => f(a));
1421
-
1422
1341
  /**
1423
1342
  * @tsplus fluent fncts.ImmutableArray wilt
1424
1343
  */
1425
- export const wiltSelf: P.wiltSelf<ImmutableArrayF> = (self) => (A) => (f) => self.wiltWithIndex(A)((_, a) => f(a));
1426
-
1427
- export const wiltWithIndex_: P.wiltWithIndex_<ImmutableArrayF> = P.mkWiltWithIndex_<ImmutableArrayF>()(
1428
- (_) => (A) => (self, f) =>
1429
- A.map_(
1430
- self.foldLeftWithIndex(A.pure([[] as Array<typeof _.B>, [] as Array<typeof _.B2>] as const), (i, fbs, a) =>
1431
- A.zipWith_(f(i, a), fbs, (eb, r) =>
1432
- eb.match(
1433
- (b1) => {
1434
- r[0].push(b1);
1435
- return r;
1436
- },
1437
- (b2) => {
1438
- r[1].push(b2);
1439
- return r;
1440
- },
1441
- ),
1344
+ export function wilt_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1345
+ self: ImmutableArray<A>,
1346
+ f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1347
+ /** @tsplus auto */
1348
+ G: P.Applicative<G>,
1349
+ ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1350
+ return self
1351
+ .foldLeft(
1352
+ G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1353
+ G,
1354
+ KG,
1355
+ QG,
1356
+ WG,
1357
+ XG,
1358
+ IG,
1359
+ SG,
1360
+ RG,
1361
+ EG,
1362
+ readonly [B[], B1[]]
1363
+ >,
1364
+ (fbs, a) =>
1365
+ f(a).zipWith(
1366
+ fbs,
1367
+ (eb, r) =>
1368
+ eb.match(
1369
+ (b1) => {
1370
+ r[0].push(b1);
1371
+ return r;
1372
+ },
1373
+ (b2) => {
1374
+ r[1].push(b2);
1375
+ return r;
1376
+ },
1377
+ ),
1378
+ G,
1442
1379
  ),
1443
- ),
1444
- ([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray],
1445
- ),
1446
- );
1447
-
1448
- /**
1449
- * @tsplus dataFirst wiltWithIndex_
1450
- */
1451
- export const wiltWithIndex: P.wiltWithIndex<ImmutableArrayF> = (A) => (f) => (self) => wiltWithIndex_(A)(self, f);
1452
-
1453
- /**
1454
- * @tsplus getter fncts.ImmutableArray wiltWithIndex
1455
- */
1456
- export const wiltWithIndexSelf: P.wiltWithIndexSelf<ImmutableArrayF> = (self) => (A) => (f) =>
1457
- wiltWithIndex_(A)(self, f);
1380
+ )
1381
+ .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1382
+ }
1458
1383
 
1459
- export const wither_: P.wither_<ImmutableArrayF> = (A) => (self, f) => witherWithIndex_(A)(self, (_, a) => f(a));
1384
+ export function wiltWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1385
+ self: ImmutableArray<A>,
1386
+ f: (i: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1387
+ /** @tsplus auto */
1388
+ G: P.Applicative<G>,
1389
+ ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1390
+ return self
1391
+ .foldLeftWithIndex(
1392
+ G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1393
+ G,
1394
+ KG,
1395
+ QG,
1396
+ WG,
1397
+ XG,
1398
+ IG,
1399
+ SG,
1400
+ RG,
1401
+ EG,
1402
+ readonly [B[], B1[]]
1403
+ >,
1404
+ (i, fbs, a) =>
1405
+ f(i, a).zipWith(
1406
+ fbs,
1407
+ (eb, r) =>
1408
+ eb.match(
1409
+ (b1) => {
1410
+ r[0].push(b1);
1411
+ return r;
1412
+ },
1413
+ (b2) => {
1414
+ r[1].push(b2);
1415
+ return r;
1416
+ },
1417
+ ),
1418
+ G,
1419
+ ),
1420
+ )
1421
+ .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1422
+ }
1460
1423
 
1461
1424
  /**
1462
- * @tsplus dataFirst wither_
1425
+ * @tsplus fluent fncts.ImmutableArray wither
1463
1426
  */
1464
- export const wither: P.wither<ImmutableArrayF> = (A) => (f) => (self) => wither_(A)(self, f);
1427
+ export function wither_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1428
+ self: ImmutableArray<A>,
1429
+ f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1430
+ /** @tsplus auto */ G: P.Applicative<G>,
1431
+ ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1432
+ return self.witherWithIndex((_, a) => f(a));
1433
+ }
1465
1434
 
1466
1435
  /**
1467
- * @tsplus fluent fncts.ImmutableArray wither
1436
+ * @tsplus fluent fncts.ImmutableArray witherWithIndex
1468
1437
  */
1469
- export const witherSelf: P.witherSelf<ImmutableArrayF> = (self) => (A) => (f) =>
1470
- witherWithIndex_(A)(self, (_, a) => f(a));
1471
-
1472
- export const witherWithIndex_: P.witherWithIndex_<ImmutableArrayF> = P.mkWitherWithIndex_<ImmutableArrayF>()(
1473
- (_) => (A) => (self, f) =>
1474
- A.map_(
1475
- self.foldLeftWithIndex(A.pure([] as Array<typeof _.B>), (i, b, a) =>
1476
- A.zipWith_(f(i, a), b, (maybeB, bs) => {
1438
+ export function witherWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1439
+ self: ImmutableArray<A>,
1440
+ f: (k: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1441
+ /** @tsplus auto */ G: P.Applicative<G>,
1442
+ ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1443
+ return self
1444
+ .foldLeftWithIndex(G.pure([] as Array<B>) as HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B[]>, (i, b, a) =>
1445
+ f(i, a).zipWith(
1446
+ b,
1447
+ (maybeB, bs) => {
1477
1448
  if (maybeB.isJust()) {
1478
1449
  bs.push(maybeB.value);
1479
1450
  }
1480
1451
  return bs;
1481
- }),
1452
+ },
1453
+ G,
1482
1454
  ),
1483
- (bs) => bs.asImmutableArray,
1484
- ),
1485
- );
1486
-
1487
- /**
1488
- * @tsplus dataFirst witherWithIndex_
1489
- */
1490
- export const witherWithIndex: P.witherWithIndex<ImmutableArrayF> = (A) => (f) => (self) => witherWithIndex_(A)(self, f);
1491
-
1492
- /**
1493
- * @tsplus fluent fncts.ImmutableArray witherWithIndex
1494
- */
1495
- export const witherWithIndexSelf: P.witherWithIndexSelf<ImmutableArrayF> = (self) => (A) => (f) =>
1496
- witherWithIndex_(A)(self, f);
1455
+ )
1456
+ .map((bs) => bs.asImmutableArray, G);
1457
+ }
1497
1458
 
1498
1459
  /**
1499
1460
  * @tsplus fluent fncts.ImmutableArray zip
@@ -1,12 +1,18 @@
1
1
  export const ImmutableArrayTypeId = Symbol.for("fncts.ImmutableArray");
2
2
  export type ImmutableArrayTypeId = typeof ImmutableArrayTypeId;
3
3
 
4
+ export interface ImmutableArrayF extends ImmutableArray<any> {}
5
+
4
6
  /**
5
7
  * @tsplus type fncts.ImmutableArray
6
8
  * @tsplus companion fncts.ImmutableArrayOps
7
9
  */
8
10
  export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
9
11
  readonly _typeId: ImmutableArrayTypeId = ImmutableArrayTypeId;
12
+ [HKT.F]?: ImmutableArrayF;
13
+ [HKT.A]?: () => A;
14
+ [HKT.T]?: ImmutableArray<HKT._A<this>>;
15
+ [HKT.Ix]?: number;
10
16
  constructor(readonly _array: ReadonlyArray<A>) {}
11
17
 
12
18
  [Symbol.equals](that: unknown): boolean {
@@ -29,11 +35,3 @@ export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
29
35
  export function isImmutableArray(u: unknown): u is ImmutableArray<unknown> {
30
36
  return hasTypeId(u, ImmutableArrayTypeId);
31
37
  }
32
-
33
- export interface ImmutableArrayF extends HKT {
34
- readonly type: ImmutableArray<this["A"]>;
35
- readonly variance: {
36
- readonly A: "+";
37
- };
38
- readonly index: number;
39
- }