@fncts/base 0.0.12 → 0.0.13

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 (473) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +16 -21
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/compat/Record/instances.cjs +67 -16
  4. package/_cjs/collection/compat/Record/instances.cjs.map +1 -1
  5. package/_cjs/collection/immutable/Conc/api.cjs +9 -12
  6. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  7. package/_cjs/collection/immutable/Conc/definition.cjs +41 -43
  8. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  9. package/_cjs/collection/immutable/Dictionary/definition.cjs +2 -4
  10. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  11. package/_cjs/collection/immutable/HashMap/api.cjs +26 -29
  12. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  13. package/_cjs/collection/immutable/HashMap/definition.cjs +15 -17
  14. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  15. package/_cjs/collection/immutable/ImmutableArray/api.cjs +136 -153
  16. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  17. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +10 -12
  18. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  19. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +11 -9
  20. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  21. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +21 -22
  22. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  23. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +3 -9
  24. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  25. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +8 -2
  26. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  27. package/_cjs/collection/immutable/RoseTree/definition.cjs +13 -15
  28. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  29. package/_cjs/collection/immutable/Vector/api.cjs +8 -12
  30. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  31. package/_cjs/collection/immutable/Vector/definition.cjs +11 -13
  32. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  33. package/_cjs/collection/weak/IterableWeakMap.cjs +51 -2
  34. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  35. package/_cjs/collection/weak/IterableWeakSet.cjs +59 -7
  36. package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
  37. package/_cjs/control/Eval/api.cjs +9 -3
  38. package/_cjs/control/Eval/api.cjs.map +1 -1
  39. package/_cjs/control/Eval/definition.cjs +0 -7
  40. package/_cjs/control/Eval/definition.cjs.map +1 -1
  41. package/_cjs/control/Eval/instance.cjs +6 -0
  42. package/_cjs/control/Eval/instance.cjs.map +1 -1
  43. package/_cjs/control/Z/api.cjs +16 -14
  44. package/_cjs/control/Z/api.cjs.map +1 -1
  45. package/_cjs/control/Z/definition.cjs +9 -14
  46. package/_cjs/control/Z/definition.cjs.map +1 -1
  47. package/_cjs/control/Z/instances.cjs +6 -0
  48. package/_cjs/control/Z/instances.cjs.map +1 -1
  49. package/_cjs/control/Z/runtime.cjs +15 -13
  50. package/_cjs/control/Z/runtime.cjs.map +1 -1
  51. package/_cjs/data/Const/definition.cjs +0 -7
  52. package/_cjs/data/Const/definition.cjs.map +1 -1
  53. package/_cjs/data/Const/instances.cjs +7 -5
  54. package/_cjs/data/Const/instances.cjs.map +1 -1
  55. package/_cjs/data/Datum/api.cjs +479 -0
  56. package/_cjs/data/Datum/api.cjs.map +1 -0
  57. package/_cjs/data/Datum/definition.cjs +142 -0
  58. package/_cjs/data/Datum/definition.cjs.map +1 -0
  59. package/_cjs/data/Datum/instances.cjs +69 -0
  60. package/_cjs/data/Datum/instances.cjs.map +1 -0
  61. package/_cjs/data/DatumEither/api.cjs +365 -0
  62. package/_cjs/data/DatumEither/api.cjs.map +1 -0
  63. package/_cjs/data/DatumEither/definition.cjs +9 -0
  64. package/_cjs/data/DatumEither/definition.cjs.map +1 -0
  65. package/_cjs/data/DecodeError/definition.cjs +3 -3
  66. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  67. package/_cjs/data/Decoder/definition.cjs +3 -10
  68. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  69. package/_cjs/data/Either/api.cjs +21 -5
  70. package/_cjs/data/Either/api.cjs.map +1 -1
  71. package/_cjs/data/Either/definition.cjs +3 -10
  72. package/_cjs/data/Either/definition.cjs.map +1 -1
  73. package/_cjs/data/Either/instances.cjs +25 -23
  74. package/_cjs/data/Either/instances.cjs.map +1 -1
  75. package/_cjs/data/EitherT/api.cjs +106 -0
  76. package/_cjs/data/EitherT/api.cjs.map +1 -0
  77. package/_cjs/data/EitherT/definition.cjs +9 -0
  78. package/_cjs/data/EitherT/definition.cjs.map +1 -0
  79. package/_cjs/data/Environment/api.cjs +15 -14
  80. package/_cjs/data/Environment/api.cjs.map +1 -1
  81. package/_cjs/data/Environment/definition.cjs.map +1 -1
  82. package/_cjs/data/Identity/api.cjs +3 -1
  83. package/_cjs/data/Identity/api.cjs.map +1 -1
  84. package/_cjs/data/Identity/definition.cjs +2 -4
  85. package/_cjs/data/Identity/definition.cjs.map +1 -1
  86. package/_cjs/data/Identity/instances.cjs +6 -0
  87. package/_cjs/data/Identity/instances.cjs.map +1 -1
  88. package/_cjs/data/Intervals.cjs +292 -0
  89. package/_cjs/data/Intervals.cjs.map +1 -0
  90. package/_cjs/data/Maybe/api.cjs +3 -1
  91. package/_cjs/data/Maybe/api.cjs.map +1 -1
  92. package/_cjs/data/Maybe/definition.cjs +11 -13
  93. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  94. package/_cjs/data/Maybe/instances.cjs +13 -11
  95. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  96. package/_cjs/data/Newtype.cjs +3 -5
  97. package/_cjs/data/Newtype.cjs.map +1 -1
  98. package/_cjs/data/Struct/definition.cjs +2 -4
  99. package/_cjs/data/Struct/definition.cjs.map +1 -1
  100. package/_cjs/data/Zipped.cjs +55 -0
  101. package/_cjs/data/Zipped.cjs.map +1 -0
  102. package/_cjs/data/function/api.cjs +10 -0
  103. package/_cjs/data/function/api.cjs.map +1 -1
  104. package/_cjs/data/object/instances.cjs +9 -1
  105. package/_cjs/data/object/instances.cjs.map +1 -1
  106. package/_cjs/optics/Optional/definition.cjs +4 -6
  107. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  108. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  109. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  110. package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -1
  111. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  112. package/_cjs/optics/Traversal/definition.cjs +3 -3
  113. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  114. package/_cjs/typeclass/Alt.cjs +0 -7
  115. package/_cjs/typeclass/Alt.cjs.map +1 -1
  116. package/_cjs/typeclass/ApplicativeExcept.cjs +9 -35
  117. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  118. package/_cjs/typeclass/Apply.cjs +39 -66
  119. package/_cjs/typeclass/Apply.cjs.map +1 -1
  120. package/_cjs/typeclass/Chain.cjs +6 -28
  121. package/_cjs/typeclass/Chain.cjs.map +1 -1
  122. package/_cjs/typeclass/Fail.cjs +0 -10
  123. package/_cjs/typeclass/Fail.cjs.map +1 -1
  124. package/_cjs/typeclass/Filterable.cjs +0 -36
  125. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  126. package/_cjs/typeclass/Foldable.cjs +4 -34
  127. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  128. package/_cjs/typeclass/FoldableWithIndex.cjs +4 -34
  129. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  130. package/_cjs/typeclass/Functor.cjs +3 -18
  131. package/_cjs/typeclass/Functor.cjs.map +1 -1
  132. package/_cjs/typeclass/Guard/definition.cjs +3 -10
  133. package/_cjs/typeclass/Guard/definition.cjs.map +1 -1
  134. package/_cjs/typeclass/MonadExcept.cjs +2 -10
  135. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  136. package/_cjs/typeclass/Nil.cjs +0 -10
  137. package/_cjs/typeclass/Nil.cjs.map +1 -1
  138. package/_cjs/typeclass/Pointed.cjs +0 -11
  139. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  140. package/_cjs/typeclass/Semialign.cjs +18 -46
  141. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  142. package/_cjs/typeclass/Semimonoidal.cjs +0 -11
  143. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  144. package/_cjs/typeclass/Showable/show.cjs +12 -12
  145. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  146. package/_cjs/typeclass/Traversable.cjs +7 -26
  147. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  148. package/_cjs/typeclass/TraversableWithIndex.cjs +3 -7
  149. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  150. package/_cjs/typeclass/Witherable.cjs +3 -45
  151. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  152. package/_cjs/typeclass/WitherableWithIndex.cjs +8 -44
  153. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  154. package/_mjs/collection/Iterable/api/traverseConc.mjs +16 -21
  155. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  156. package/_mjs/collection/compat/Record/instances.mjs +62 -16
  157. package/_mjs/collection/compat/Record/instances.mjs.map +1 -1
  158. package/_mjs/collection/immutable/Conc/api.mjs +7 -11
  159. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  160. package/_mjs/collection/immutable/Conc/definition.mjs +41 -42
  161. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  162. package/_mjs/collection/immutable/Dictionary/definition.mjs +2 -3
  163. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  164. package/_mjs/collection/immutable/HashMap/api.mjs +18 -20
  165. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  166. package/_mjs/collection/immutable/HashMap/definition.mjs +15 -16
  167. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  168. package/_mjs/collection/immutable/ImmutableArray/api.mjs +128 -147
  169. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  170. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +10 -11
  171. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  172. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +9 -8
  173. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  174. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +18 -19
  175. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  176. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -2
  177. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  178. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +4 -3
  179. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  180. package/_mjs/collection/immutable/RoseTree/definition.mjs +13 -14
  181. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  182. package/_mjs/collection/immutable/Vector/api.mjs +8 -12
  183. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  184. package/_mjs/collection/immutable/Vector/definition.mjs +11 -12
  185. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  186. package/_mjs/collection/weak/IterableWeakMap.mjs +51 -2
  187. package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
  188. package/_mjs/collection/weak/IterableWeakSet.mjs +59 -7
  189. package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
  190. package/_mjs/control/Eval/api.mjs +9 -4
  191. package/_mjs/control/Eval/api.mjs.map +1 -1
  192. package/_mjs/control/Eval/definition.mjs +0 -1
  193. package/_mjs/control/Eval/definition.mjs.map +1 -1
  194. package/_mjs/control/Eval/instance.mjs +1 -0
  195. package/_mjs/control/Eval/instance.mjs.map +1 -1
  196. package/_mjs/control/Z/api.mjs +16 -15
  197. package/_mjs/control/Z/api.mjs.map +1 -1
  198. package/_mjs/control/Z/definition.mjs +4 -5
  199. package/_mjs/control/Z/definition.mjs.map +1 -1
  200. package/_mjs/control/Z/instances.mjs +1 -0
  201. package/_mjs/control/Z/instances.mjs.map +1 -1
  202. package/_mjs/control/Z/runtime.mjs +14 -13
  203. package/_mjs/control/Z/runtime.mjs.map +1 -1
  204. package/_mjs/data/Const/definition.mjs +0 -3
  205. package/_mjs/data/Const/definition.mjs.map +1 -1
  206. package/_mjs/data/Const/instances.mjs +6 -5
  207. package/_mjs/data/Const/instances.mjs.map +1 -1
  208. package/_mjs/data/Datum/api.mjs +403 -0
  209. package/_mjs/data/Datum/api.mjs.map +1 -0
  210. package/_mjs/data/Datum/definition.mjs +112 -0
  211. package/_mjs/data/Datum/definition.mjs.map +1 -0
  212. package/_mjs/data/Datum/instances.mjs +52 -0
  213. package/_mjs/data/Datum/instances.mjs.map +1 -0
  214. package/_mjs/data/DatumEither/api.mjs +290 -0
  215. package/_mjs/data/DatumEither/api.mjs.map +1 -0
  216. package/_mjs/data/DatumEither/definition.mjs +2 -0
  217. package/_mjs/data/DatumEither/definition.mjs.map +1 -0
  218. package/_mjs/data/DecodeError/definition.mjs +3 -3
  219. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  220. package/_mjs/data/Decoder/definition.mjs +0 -2
  221. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  222. package/_mjs/data/Either/api.mjs +16 -3
  223. package/_mjs/data/Either/api.mjs.map +1 -1
  224. package/_mjs/data/Either/definition.mjs +0 -2
  225. package/_mjs/data/Either/definition.mjs.map +1 -1
  226. package/_mjs/data/Either/instances.mjs +23 -22
  227. package/_mjs/data/Either/instances.mjs.map +1 -1
  228. package/_mjs/data/EitherT/api.mjs +73 -0
  229. package/_mjs/data/EitherT/api.mjs.map +1 -0
  230. package/_mjs/data/EitherT/definition.mjs +2 -0
  231. package/_mjs/data/EitherT/definition.mjs.map +1 -0
  232. package/_mjs/data/Environment/api.mjs +12 -13
  233. package/_mjs/data/Environment/api.mjs.map +1 -1
  234. package/_mjs/data/Environment/definition.mjs.map +1 -1
  235. package/_mjs/data/Identity/api.mjs +2 -1
  236. package/_mjs/data/Identity/api.mjs.map +1 -1
  237. package/_mjs/data/Identity/definition.mjs +2 -3
  238. package/_mjs/data/Identity/definition.mjs.map +1 -1
  239. package/_mjs/data/Identity/instances.mjs +1 -0
  240. package/_mjs/data/Identity/instances.mjs.map +1 -1
  241. package/_mjs/data/Intervals.mjs +257 -0
  242. package/_mjs/data/Intervals.mjs.map +1 -0
  243. package/_mjs/data/Maybe/api.mjs +2 -1
  244. package/_mjs/data/Maybe/api.mjs.map +1 -1
  245. package/_mjs/data/Maybe/definition.mjs +8 -10
  246. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  247. package/_mjs/data/Maybe/instances.mjs +12 -11
  248. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  249. package/_mjs/data/Newtype.mjs +3 -4
  250. package/_mjs/data/Newtype.mjs.map +1 -1
  251. package/_mjs/data/Struct/definition.mjs +2 -3
  252. package/_mjs/data/Struct/definition.mjs.map +1 -1
  253. package/_mjs/data/Zipped.mjs +37 -0
  254. package/_mjs/data/Zipped.mjs.map +1 -0
  255. package/_mjs/data/function/api.mjs +8 -0
  256. package/_mjs/data/function/api.mjs.map +1 -1
  257. package/_mjs/data/object/instances.mjs +7 -1
  258. package/_mjs/data/object/instances.mjs.map +1 -1
  259. package/_mjs/optics/Optional/definition.mjs +4 -5
  260. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  261. package/_mjs/optics/Traversal/api/compose.mjs +1 -1
  262. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  263. package/_mjs/optics/Traversal/api/fromTraversable.mjs +1 -1
  264. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  265. package/_mjs/optics/Traversal/definition.mjs +3 -3
  266. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  267. package/_mjs/typeclass/Alt.mjs +0 -5
  268. package/_mjs/typeclass/Alt.mjs.map +1 -1
  269. package/_mjs/typeclass/ApplicativeExcept.mjs +7 -32
  270. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  271. package/_mjs/typeclass/Apply.mjs +35 -65
  272. package/_mjs/typeclass/Apply.mjs.map +1 -1
  273. package/_mjs/typeclass/Chain.mjs +4 -25
  274. package/_mjs/typeclass/Chain.mjs.map +1 -1
  275. package/_mjs/typeclass/Fail.mjs +1 -8
  276. package/_mjs/typeclass/Fail.mjs.map +1 -1
  277. package/_mjs/typeclass/Filterable.mjs +0 -28
  278. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  279. package/_mjs/typeclass/Foldable.mjs +3 -30
  280. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  281. package/_mjs/typeclass/FoldableWithIndex.mjs +3 -30
  282. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  283. package/_mjs/typeclass/Functor.mjs +3 -16
  284. package/_mjs/typeclass/Functor.mjs.map +1 -1
  285. package/_mjs/typeclass/Guard/definition.mjs +0 -2
  286. package/_mjs/typeclass/Guard/definition.mjs.map +1 -1
  287. package/_mjs/typeclass/MonadExcept.mjs +2 -9
  288. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  289. package/_mjs/typeclass/Nil.mjs +1 -8
  290. package/_mjs/typeclass/Nil.mjs.map +1 -1
  291. package/_mjs/typeclass/Pointed.mjs +0 -9
  292. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  293. package/_mjs/typeclass/Semialign.mjs +17 -45
  294. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  295. package/_mjs/typeclass/Semimonoidal.mjs +0 -9
  296. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  297. package/_mjs/typeclass/Showable/show.mjs +12 -12
  298. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  299. package/_mjs/typeclass/Traversable.mjs +6 -25
  300. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  301. package/_mjs/typeclass/TraversableWithIndex.mjs +2 -6
  302. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  303. package/_mjs/typeclass/Witherable.mjs +3 -40
  304. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  305. package/_mjs/typeclass/WitherableWithIndex.mjs +6 -41
  306. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  307. package/_src/collection/Iterable/api/traverseConc.ts +24 -21
  308. package/_src/collection/compat/Record/instances.ts +44 -0
  309. package/_src/collection/immutable/Conc/api.ts +9 -11
  310. package/_src/collection/immutable/Conc/definition.ts +9 -5
  311. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  312. package/_src/collection/immutable/HashMap/api.ts +20 -17
  313. package/_src/collection/immutable/HashMap/definition.ts +10 -6
  314. package/_src/collection/immutable/ImmutableArray/api.ts +56 -113
  315. package/_src/collection/immutable/ImmutableArray/definition.ts +8 -5
  316. package/_src/collection/immutable/ImmutableArray/instances.ts +42 -42
  317. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +13 -11
  318. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +8 -3
  319. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +24 -25
  320. package/_src/collection/immutable/RoseTree/definition.ts +7 -4
  321. package/_src/collection/immutable/Vector/api.ts +12 -16
  322. package/_src/collection/immutable/Vector/definition.ts +9 -9
  323. package/_src/collection/weak/IterableWeakMap.ts +50 -5
  324. package/_src/collection/weak/IterableWeakSet.ts +57 -9
  325. package/_src/control/Eval/api.ts +5 -2
  326. package/_src/control/Eval/definition.ts +7 -4
  327. package/_src/control/Eval/instance.ts +7 -7
  328. package/_src/control/Z/api.ts +16 -25
  329. package/_src/control/Z/definition.ts +32 -31
  330. package/_src/control/Z/instances.ts +3 -3
  331. package/_src/control/Z/runtime.ts +7 -7
  332. package/_src/data/Const/definition.ts +9 -17
  333. package/_src/data/Const/instances.ts +5 -5
  334. package/_src/data/Datum/api.ts +376 -0
  335. package/_src/data/Datum/definition.ts +102 -0
  336. package/_src/data/Datum/instances.ts +34 -0
  337. package/_src/data/DatumEither/api.ts +348 -0
  338. package/_src/data/DatumEither/definition.ts +20 -0
  339. package/_src/data/DecodeError/definition.ts +3 -3
  340. package/_src/data/Decoder/definition.ts +7 -4
  341. package/_src/data/Either/api.ts +12 -2
  342. package/_src/data/Either/definition.ts +9 -14
  343. package/_src/data/Either/instances.ts +6 -6
  344. package/_src/data/EitherT/api.ts +239 -0
  345. package/_src/data/EitherT/definition.ts +23 -0
  346. package/_src/data/Environment/api.ts +8 -6
  347. package/_src/data/Environment/definition.ts +2 -2
  348. package/_src/data/Identity/api.ts +2 -2
  349. package/_src/data/Identity/definition.ts +2 -2
  350. package/_src/data/Identity/instances.ts +7 -7
  351. package/_src/data/Intervals.ts +126 -0
  352. package/_src/data/Maybe/api.ts +2 -2
  353. package/_src/data/Maybe/definition.ts +7 -4
  354. package/_src/data/Maybe/instances.ts +10 -10
  355. package/_src/data/Newtype.ts +32 -11
  356. package/_src/data/Struct/definition.ts +1 -1
  357. package/_src/data/Tag/definition.ts +2 -2
  358. package/_src/data/Zipped.ts +52 -0
  359. package/_src/data/function/api.ts +8 -0
  360. package/_src/data/object/instances.ts +11 -1
  361. package/_src/optics/Optional/definition.ts +2 -2
  362. package/_src/optics/Traversal/api/compose.ts +1 -1
  363. package/_src/optics/Traversal/api/fromTraversable.ts +11 -11
  364. package/_src/optics/Traversal/definition.ts +13 -12
  365. package/_src/typeclass/Align.ts +1 -1
  366. package/_src/typeclass/Alt.ts +24 -54
  367. package/_src/typeclass/Alternative.ts +1 -1
  368. package/_src/typeclass/Applicative.ts +6 -1
  369. package/_src/typeclass/ApplicativeExcept.ts +55 -81
  370. package/_src/typeclass/Apply.ts +224 -253
  371. package/_src/typeclass/Chain.ts +71 -98
  372. package/_src/typeclass/Fail.ts +10 -28
  373. package/_src/typeclass/Filterable.ts +13 -67
  374. package/_src/typeclass/FilterableWithIndex.ts +13 -13
  375. package/_src/typeclass/Foldable.ts +16 -35
  376. package/_src/typeclass/FoldableWithIndex.ts +14 -37
  377. package/_src/typeclass/Functor.ts +11 -21
  378. package/_src/typeclass/FunctorWithIndex.ts +4 -4
  379. package/_src/typeclass/Guard/definition.ts +1 -3
  380. package/_src/typeclass/Monad.ts +1 -1
  381. package/_src/typeclass/MonadExcept.ts +11 -7
  382. package/_src/typeclass/Nil.ts +10 -27
  383. package/_src/typeclass/Pointed.ts +11 -30
  384. package/_src/typeclass/Semialign.ts +285 -253
  385. package/_src/typeclass/Semimonoidal.ts +23 -54
  386. package/_src/typeclass/Showable/show.ts +8 -10
  387. package/_src/typeclass/Traversable.ts +45 -63
  388. package/_src/typeclass/TraversableWithIndex.ts +37 -34
  389. package/_src/typeclass/Witherable.ts +28 -115
  390. package/_src/typeclass/WitherableWithIndex.ts +82 -115
  391. package/_src/types/extractions.ts +1 -1
  392. package/collection/Iterable/api/traverseConc.d.ts +4 -6
  393. package/collection/compat/Record/instances.d.ts +12 -0
  394. package/collection/immutable/Conc/api.d.ts +4 -6
  395. package/collection/immutable/Conc/definition.d.ts +9 -6
  396. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  397. package/collection/immutable/HashMap/api.d.ts +13 -13
  398. package/collection/immutable/HashMap/definition.d.ts +10 -7
  399. package/collection/immutable/ImmutableArray/api.d.ts +16 -18
  400. package/collection/immutable/ImmutableArray/definition.d.ts +8 -6
  401. package/collection/immutable/ImmutableArray/instances.d.ts +17 -17
  402. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +6 -5
  403. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +7 -3
  404. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +10 -10
  405. package/collection/immutable/RoseTree/definition.d.ts +7 -5
  406. package/collection/immutable/Vector/api.d.ts +4 -4
  407. package/collection/immutable/Vector/definition.d.ts +8 -9
  408. package/collection/weak/IterableWeakMap.d.ts +9 -3
  409. package/collection/weak/IterableWeakSet.d.ts +10 -4
  410. package/control/Eval/api.d.ts +6 -1
  411. package/control/Eval/definition.d.ts +6 -4
  412. package/control/Eval/instance.d.ts +3 -3
  413. package/control/Z/api.d.ts +8 -6
  414. package/control/Z/definition.d.ts +38 -32
  415. package/control/Z/instances.d.ts +2 -2
  416. package/control/Z/runtime.d.ts +5 -4
  417. package/data/Const/definition.d.ts +8 -16
  418. package/data/Const/instances.d.ts +4 -3
  419. package/data/Datum/api.d.ts +188 -0
  420. package/data/Datum/definition.d.ts +75 -0
  421. package/data/Datum/instances.d.ts +32 -0
  422. package/data/DatumEither/api.d.ts +169 -0
  423. package/data/DatumEither/definition.d.ts +21 -0
  424. package/data/Decoder/definition.d.ts +6 -4
  425. package/data/Either/api.d.ts +10 -0
  426. package/data/Either/definition.d.ts +8 -14
  427. package/data/Either/instances.d.ts +4 -3
  428. package/data/EitherT/api.d.ts +60 -0
  429. package/data/EitherT/definition.d.ts +12 -0
  430. package/data/Environment/api.d.ts +7 -5
  431. package/data/Environment/definition.d.ts +3 -3
  432. package/data/Identity/api.d.ts +2 -1
  433. package/data/Identity/definition.d.ts +2 -2
  434. package/data/Identity/instances.d.ts +3 -3
  435. package/data/Intervals.d.ts +53 -0
  436. package/data/Maybe/api.d.ts +2 -1
  437. package/data/Maybe/definition.d.ts +7 -4
  438. package/data/Maybe/instances.d.ts +6 -6
  439. package/data/Newtype.d.ts +9 -8
  440. package/data/Struct/definition.d.ts +1 -1
  441. package/data/Tag/definition.d.ts +2 -2
  442. package/data/Zipped.d.ts +24 -0
  443. package/data/function/api.d.ts +6 -0
  444. package/data/object/instances.d.ts +6 -1
  445. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  446. package/optics/Traversal/definition.d.ts +2 -4
  447. package/package.json +2 -2
  448. package/typeclass/Align.d.ts +1 -1
  449. package/typeclass/Alt.d.ts +2 -4
  450. package/typeclass/Alternative.d.ts +1 -1
  451. package/typeclass/Applicative.d.ts +2 -1
  452. package/typeclass/ApplicativeExcept.d.ts +5 -13
  453. package/typeclass/Apply.d.ts +20 -32
  454. package/typeclass/Chain.d.ts +5 -13
  455. package/typeclass/Fail.d.ts +2 -7
  456. package/typeclass/Filterable.d.ts +7 -31
  457. package/typeclass/FilterableWithIndex.d.ts +7 -7
  458. package/typeclass/Foldable.d.ts +6 -19
  459. package/typeclass/FoldableWithIndex.d.ts +6 -19
  460. package/typeclass/Functor.d.ts +4 -11
  461. package/typeclass/FunctorWithIndex.d.ts +2 -2
  462. package/typeclass/Guard/definition.d.ts +1 -4
  463. package/typeclass/Monad.d.ts +1 -1
  464. package/typeclass/MonadExcept.d.ts +3 -4
  465. package/typeclass/Nil.d.ts +2 -7
  466. package/typeclass/Pointed.d.ts +2 -7
  467. package/typeclass/Semialign.d.ts +26 -32
  468. package/typeclass/Semimonoidal.d.ts +3 -8
  469. package/typeclass/Traversable.d.ts +21 -12
  470. package/typeclass/TraversableWithIndex.d.ts +19 -6
  471. package/typeclass/Witherable.d.ts +5 -19
  472. package/typeclass/WitherableWithIndex.d.ts +33 -19
  473. package/types/extractions.d.ts +1 -1
@@ -84,8 +84,8 @@ export function crossWith_<A, B, C>(
84
84
  /**
85
85
  * @tsplus fluent fncts.ImmutableArray cross
86
86
  */
87
- export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<readonly [A, B]> {
88
- return self.crossWith(fb, tuple);
87
+ export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<Zipped.Make<A, B>> {
88
+ return self.crossWith(fb, (a, b) => Zipped(a, b));
89
89
  }
90
90
 
91
91
  /**
@@ -228,7 +228,9 @@ function comprehensionLoop<A, R>(
228
228
  if (input.length === 0) {
229
229
  return g(...scope) ? Eval.now(ImmutableArray(f(...scope))) : Eval.now(ImmutableArray.empty());
230
230
  } else {
231
- return input[0]!.traverse((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g)).map((rs) => rs.flatten);
231
+ return input[0]!
232
+ .traverse(Eval.Applicative)((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g))
233
+ .map((rs) => rs.flatten);
232
234
  }
233
235
  }
234
236
 
@@ -1164,16 +1166,20 @@ export function takeWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): Immutab
1164
1166
  }
1165
1167
 
1166
1168
  /**
1167
- * @tsplus fluent fncts.ImmutableArray traverseWithIndex
1169
+ * @tsplus getter fncts.ImmutableArray traverseWithIndex
1168
1170
  */
1169
- export const traverseWithIndex_: P.TraversableWithIndex<ImmutableArrayF>["traverseWithIndex"] = (ta, f, G) =>
1170
- ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) => fbs.zipWith(f(i, a), (bs, b) => bs.append(b), G));
1171
+ export const traverseWithIndex_ = P.TraversableWithIndex.makeTraverseWithIndex<ImmutableArrayF>()(
1172
+ () => (ta) => (G) => (f) =>
1173
+ ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) =>
1174
+ G.zipWith(fbs, f(i, a), (bs, b) => bs.append(b)),
1175
+ ),
1176
+ );
1171
1177
 
1172
1178
  /**
1173
- * @tsplus fluent fncts.ImmutableArray traverse
1179
+ * @tsplus getter fncts.ImmutableArray traverse
1174
1180
  */
1175
- export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self, f, G) =>
1176
- self.traverseWithIndex((_, a) => f(a), G);
1181
+ export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self) => (G) => (f) =>
1182
+ self.traverseWithIndex(G)((_, a) => f(a));
1177
1183
 
1178
1184
  /**
1179
1185
  * @tsplus fluent fncts.ImmutableArray union
@@ -1292,122 +1298,59 @@ export function updateAt_<A>(as: ImmutableArray<A>, i: number, a: A): Maybe<Immu
1292
1298
  }
1293
1299
 
1294
1300
  /**
1295
- * @tsplus fluent fncts.ImmutableArray wilt
1296
- */
1297
- export function wilt_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1298
- self: ImmutableArray<A>,
1299
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1300
- /** @tsplus auto */
1301
- G: P.Applicative<G>,
1302
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1303
- return self
1304
- .foldLeft(
1305
- G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1306
- G,
1307
- KG,
1308
- QG,
1309
- WG,
1310
- XG,
1311
- IG,
1312
- SG,
1313
- RG,
1314
- EG,
1315
- readonly [B[], B1[]]
1316
- >,
1317
- (fbs, a) =>
1318
- f(a).zipWith(
1319
- fbs,
1320
- (eb, r) =>
1321
- eb.match(
1322
- (b1) => {
1323
- r[0].push(b1);
1324
- return r;
1325
- },
1326
- (b2) => {
1327
- r[1].push(b2);
1328
- return r;
1329
- },
1330
- ),
1331
- G,
1332
- ),
1333
- )
1334
- .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1335
- }
1336
-
1337
- export function wiltWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1338
- self: ImmutableArray<A>,
1339
- f: (i: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1340
- /** @tsplus auto */
1341
- G: P.Applicative<G>,
1342
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1343
- return self
1344
- .foldLeftWithIndex(
1345
- G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1346
- G,
1347
- KG,
1348
- QG,
1349
- WG,
1350
- XG,
1351
- IG,
1352
- SG,
1353
- RG,
1354
- EG,
1355
- readonly [B[], B1[]]
1356
- >,
1357
- (i, fbs, a) =>
1358
- f(i, a).zipWith(
1359
- fbs,
1360
- (eb, r) =>
1361
- eb.match(
1362
- (b1) => {
1363
- r[0].push(b1);
1364
- return r;
1365
- },
1366
- (b2) => {
1367
- r[1].push(b2);
1368
- return r;
1369
- },
1370
- ),
1371
- G,
1301
+ * @tsplus getter fncts.ImmutableArray wiltWithIndex
1302
+ */
1303
+ export const wiltWithIndex = P.WitherableWithIndex.makeWiltWithIndex<ImmutableArrayF>()(
1304
+ (_) => (self) => (G) => (f) =>
1305
+ G.map(
1306
+ self.foldLeftWithIndex(G.pure([[] as Array<typeof _["B"]>, [] as Array<typeof _["B1"]>] as const), (i, fbs, a) =>
1307
+ G.zipWith(f(i, a), fbs, (eb, r) =>
1308
+ eb.match(
1309
+ (b1) => {
1310
+ r[0].push(b1);
1311
+ return r;
1312
+ },
1313
+ (b2) => {
1314
+ r[1].push(b2);
1315
+ return r;
1316
+ },
1317
+ ),
1372
1318
  ),
1373
- )
1374
- .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1375
- }
1319
+ ),
1320
+ ([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray],
1321
+ ),
1322
+ );
1376
1323
 
1377
1324
  /**
1378
- * @tsplus fluent fncts.ImmutableArray wither
1325
+ * @tsplus getter fncts.ImmutableArray wilt
1379
1326
  */
1380
- export function wither_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1381
- self: ImmutableArray<A>,
1382
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1383
- /** @tsplus auto */ G: P.Applicative<G>,
1384
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1385
- return self.witherWithIndex((_, a) => f(a));
1386
- }
1327
+ export const wilt: P.WitherableWithIndex<ImmutableArrayF>["wilt"] = (self) => (G) => (f) =>
1328
+ self.wiltWithIndex(G)((_, a) => f(a));
1387
1329
 
1388
1330
  /**
1389
- * @tsplus fluent fncts.ImmutableArray witherWithIndex
1331
+ * @tsplus getter fncts.ImmutableArray witherWithIndex
1390
1332
  */
1391
- export function witherWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1392
- self: ImmutableArray<A>,
1393
- f: (k: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1394
- /** @tsplus auto */ G: P.Applicative<G>,
1395
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1396
- return self
1397
- .foldLeftWithIndex(G.pure([] as Array<B>) as HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B[]>, (i, b, a) =>
1398
- f(i, a).zipWith(
1399
- b,
1400
- (maybeB, bs) => {
1333
+ export const witherWithIndex = P.WitherableWithIndex.makeWitherWithIndex<ImmutableArrayF>()(
1334
+ (_) => (self) => (G) => (f) => {
1335
+ return G.map(
1336
+ self.foldLeftWithIndex(G.pure([] as Array<typeof _["B"]>), (i, b, a) =>
1337
+ G.zipWith(f(i, a), b, (maybeB, bs) => {
1401
1338
  if (maybeB.isJust()) {
1402
1339
  bs.push(maybeB.value);
1403
1340
  }
1404
1341
  return bs;
1405
- },
1406
- G,
1342
+ }),
1407
1343
  ),
1408
- )
1409
- .map((bs) => bs.asImmutableArray, G);
1410
- }
1344
+ (bs) => bs.asImmutableArray,
1345
+ );
1346
+ },
1347
+ );
1348
+
1349
+ /**
1350
+ * @tsplus getter fncts.ImmutableArray wither
1351
+ */
1352
+ export const wither: P.Witherable<ImmutableArrayF>["wither"] = (self) => (G) => (f) =>
1353
+ self.witherWithIndex(G)((_, a) => f(a));
1411
1354
 
1412
1355
  /**
1413
1356
  * @tsplus fluent fncts.ImmutableArray zip
@@ -1,7 +1,13 @@
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> {}
4
+ export interface ImmutableArrayF extends HKT {
5
+ type: ImmutableArray<this["A"]>;
6
+ variance: {
7
+ A: "+";
8
+ };
9
+ index: number;
10
+ }
5
11
 
6
12
  /**
7
13
  * @tsplus type fncts.ImmutableArray
@@ -9,10 +15,7 @@ export interface ImmutableArrayF extends ImmutableArray<any> {}
9
15
  */
10
16
  export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
11
17
  readonly _typeId: ImmutableArrayTypeId = ImmutableArrayTypeId;
12
- [HKT.F]?: ImmutableArrayF;
13
- [HKT.A]?: () => A;
14
- [HKT.T]?: ImmutableArray<HKT._A<this>>;
15
- [HKT.Ix]?: number;
18
+ readonly _A!: () => A;
16
19
  constructor(readonly _array: ReadonlyArray<A>) {}
17
20
 
18
21
  [Symbol.equals](that: unknown): boolean {
@@ -23,168 +23,168 @@ import {
23
23
  partitionWithIndex_,
24
24
  traverse_,
25
25
  traverseWithIndex_,
26
- wilt_,
27
- wiltWithIndex_,
28
- wither_,
29
- witherWithIndex_,
26
+ wilt,
27
+ wiltWithIndex,
28
+ wither,
29
+ witherWithIndex,
30
30
  } from "@fncts/base/collection/immutable/ImmutableArray/api";
31
31
  import { empty } from "@fncts/base/collection/immutable/ImmutableArray/constructors";
32
32
 
33
33
  /**
34
34
  * @tsplus implicit
35
35
  */
36
- export const Align: P.Align<ImmutableArrayF> = {
36
+ export const Align = HKT.instance<P.Align<ImmutableArrayF>>({
37
37
  map: map_,
38
38
  alignWith: alignWith_,
39
39
  nil: empty,
40
- };
40
+ });
41
41
 
42
42
  /**
43
43
  * @tsplus implicit
44
44
  */
45
- export const Functor: P.Functor<ImmutableArrayF> = {
45
+ export const Functor = HKT.instance<P.Functor<ImmutableArrayF>>({
46
46
  map: map_,
47
- };
47
+ });
48
48
 
49
49
  /**
50
50
  * @tsplus implicit
51
51
  */
52
- export const FunctorWithIndex: P.FunctorWithIndex<ImmutableArrayF> = {
52
+ export const FunctorWithIndex = HKT.instance<P.FunctorWithIndex<ImmutableArrayF>>({
53
53
  map: map_,
54
54
  mapWithIndex: mapWithIndex_,
55
- };
55
+ });
56
56
 
57
57
  /**
58
58
  * @tsplus implicit
59
59
  */
60
- export const Apply: P.Apply<ImmutableArrayF> = {
60
+ export const Apply = HKT.instance<P.Apply<ImmutableArrayF>>({
61
61
  map: map_,
62
62
  zip: cross_,
63
63
  zipWith: crossWith_,
64
- };
64
+ });
65
65
 
66
66
  /**
67
67
  * @tsplus implicit
68
68
  */
69
- export const Applicative: P.Applicative<ImmutableArrayF> = {
69
+ export const Applicative = HKT.instance<P.Applicative<ImmutableArrayF>>({
70
70
  map: map_,
71
71
  zip: cross_,
72
72
  zipWith: crossWith_,
73
73
  pure: (a) => ImmutableArray(a),
74
- };
74
+ });
75
75
 
76
76
  /**
77
77
  * @tsplus implicit
78
78
  */
79
- export const Alt: P.Alt<ImmutableArrayF> = {
79
+ export const Alt = HKT.instance<P.Alt<ImmutableArrayF>>({
80
80
  map: map_,
81
81
  alt: alt_,
82
- };
82
+ });
83
83
 
84
84
  /**
85
85
  * @tsplus implicit
86
86
  */
87
- export const Alternative: P.Alternative<ImmutableArrayF> = {
87
+ export const Alternative = HKT.instance<P.Alternative<ImmutableArrayF>>({
88
88
  map: map_,
89
89
  zip: cross_,
90
90
  zipWith: crossWith_,
91
91
  pure: (a) => ImmutableArray(a),
92
92
  alt: alt_,
93
93
  nil: empty,
94
- };
94
+ });
95
95
 
96
96
  /**
97
97
  * @tsplus implicit
98
98
  */
99
- export const Filterable: P.Filterable<ImmutableArrayF> = {
99
+ export const Filterable = HKT.instance<P.Filterable<ImmutableArrayF>>({
100
100
  map: map_,
101
101
  filter: filter_,
102
102
  filterMap: filterMap_,
103
103
  partition: partition_,
104
104
  partitionMap: partitionMap_,
105
- };
105
+ });
106
106
 
107
107
  /**
108
108
  * @tsplus implicit
109
109
  */
110
- export const FilterableWithIndex: P.FilterableWithIndex<ImmutableArrayF> = {
110
+ export const FilterableWithIndex = HKT.instance<P.FilterableWithIndex<ImmutableArrayF>>({
111
111
  ...FunctorWithIndex,
112
112
  ...Filterable,
113
113
  filterWithIndex: filterWithIndex_,
114
114
  filterMapWithIndex: filterMapWithIndex_,
115
115
  partitionWithIndex: partitionWithIndex_,
116
116
  partitionMapWithIndex: partitionMapWithIndex_,
117
- };
117
+ });
118
118
 
119
119
  /**
120
120
  * @tsplus implicit
121
121
  */
122
- export const Foldable: P.Foldable<ImmutableArrayF> = {
122
+ export const Foldable = HKT.instance<P.Foldable<ImmutableArrayF>>({
123
123
  foldLeft: foldLeft_,
124
124
  foldRight: foldRight_,
125
- };
125
+ });
126
126
 
127
127
  /**
128
128
  * @tsplus implicit
129
129
  */
130
- export const FoldableWithIndex: P.FoldableWithIndex<ImmutableArrayF> = {
130
+ export const FoldableWithIndex = HKT.instance<P.FoldableWithIndex<ImmutableArrayF>>({
131
131
  ...Foldable,
132
132
  foldLeftWithIndex: foldLeftWithIndex_,
133
133
  foldRightWithIndex: foldRightWithIndex_,
134
- };
134
+ });
135
135
 
136
136
  /**
137
137
  * @tsplus implicit
138
138
  */
139
- export const FlatMap: P.FlatMap<ImmutableArrayF> = {
139
+ export const FlatMap = HKT.instance<P.FlatMap<ImmutableArrayF>>({
140
140
  ...Functor,
141
141
  flatMap: flatMap_,
142
- };
142
+ });
143
143
 
144
144
  /**
145
145
  * @tsplus implicit
146
146
  */
147
- export const Monad: P.Monad<ImmutableArrayF> = {
147
+ export const Monad = HKT.instance<P.Monad<ImmutableArrayF>>({
148
148
  ...Applicative,
149
149
  ...FlatMap,
150
- };
150
+ });
151
151
 
152
152
  /**
153
153
  * @tsplus implicit
154
154
  */
155
- export const Traversable: P.Traversable<ImmutableArrayF> = {
155
+ export const Traversable = HKT.instance<P.Traversable<ImmutableArrayF>>({
156
156
  ...Functor,
157
157
  ...Foldable,
158
158
  traverse: traverse_,
159
- };
159
+ });
160
160
 
161
161
  /**
162
162
  * @tsplus implicit
163
163
  */
164
- export const TraversableWithIndex: P.TraversableWithIndex<ImmutableArrayF> = {
164
+ export const TraversableWithIndex = HKT.instance<P.TraversableWithIndex<ImmutableArrayF>>({
165
165
  ...Traversable,
166
166
  ...FoldableWithIndex,
167
167
  ...FunctorWithIndex,
168
168
  traverseWithIndex: traverseWithIndex_,
169
- };
169
+ });
170
170
 
171
171
  /**
172
172
  * @tsplus implicit
173
173
  */
174
- export const Witherable: P.Witherable<ImmutableArrayF> = {
174
+ export const Witherable = HKT.instance<P.Witherable<ImmutableArrayF>>({
175
175
  ...Traversable,
176
176
  ...Filterable,
177
- wither: wither_,
178
- wilt: wilt_,
179
- };
177
+ wither,
178
+ wilt,
179
+ });
180
180
 
181
181
  /**
182
182
  * @tsplus implicit
183
183
  */
184
- export const WitherableWithIndex: P.WitherableWithIndex<ImmutableArrayF> = {
184
+ export const WitherableWithIndex = HKT.instance<P.WitherableWithIndex<ImmutableArrayF>>({
185
185
  ...TraversableWithIndex,
186
186
  ...FilterableWithIndex,
187
187
  ...Witherable,
188
- witherWithIndex: witherWithIndex_,
189
- wiltWithIndex: wiltWithIndex_,
190
- };
188
+ witherWithIndex,
189
+ wiltWithIndex,
190
+ });
@@ -174,8 +174,8 @@ export function crossWith_<A, B, C>(
174
174
  export function cross_<A, B>(
175
175
  self: ImmutableNonEmptyArray<A>,
176
176
  fb: ImmutableNonEmptyArray<B>,
177
- ): ImmutableNonEmptyArray<readonly [A, B]> {
178
- return self.crossWith(fb, (a, b) => [a, b]);
177
+ ): ImmutableNonEmptyArray<Zipped.Make<A, B>> {
178
+ return self.crossWith(fb, (a, b) => Zipped(a, b));
179
179
  }
180
180
 
181
181
  /**
@@ -394,19 +394,21 @@ export function sort<A>(self: ImmutableNonEmptyArray<A>, /** @tsplus auto */ O:
394
394
  }
395
395
 
396
396
  /**
397
- * @tsplus fluent fncts.ImmutableNonEmptyArray traverseWithIndex
397
+ * @tsplus getter fncts.ImmutableNonEmptyArray traverseWithIndex
398
398
  */
399
- export const traverseWithIndex_: P.TraversableWithIndex<ImmutableNonEmptyArrayF>["traverseWithIndex"] = (self, f, G) =>
400
- self.tail.foldLeftWithIndex(
401
- f(0, self.head).map((b) => ImmutableNonEmptyArray(b), G),
402
- (i, fbs, a) => fbs.zipWith(f(i + 1, a), (bs, b) => bs.append(b), G),
403
- );
399
+ export const traverseWithIndex = P.TraversableWithIndex.makeTraverseWithIndex<ImmutableNonEmptyArrayF>()(
400
+ () => (self) => (G) => (f) =>
401
+ self.tail.foldLeftWithIndex(
402
+ G.map(f(0, self.head), (b) => ImmutableNonEmptyArray(b)),
403
+ (i, fbs, a) => G.zipWith(fbs, f(i + 1, a), (bs, b) => bs.append(b)),
404
+ ),
405
+ );
404
406
 
405
407
  /**
406
- * @tsplus fluent fncts.ImmutableNonEmptyArray traverse
408
+ * @tsplus getter fncts.ImmutableNonEmptyArray traverse
407
409
  */
408
- export const traverse_: P.Traversable<ImmutableNonEmptyArrayF>["traverse"] = (self, f, A) =>
409
- self.traverseWithIndex((_, a) => f(a), A);
410
+ export const traverse: P.Traversable<ImmutableNonEmptyArrayF>["traverse"] = (self) => (G) => (f) =>
411
+ self.traverseWithIndex(G)((_, a) => f(a));
410
412
 
411
413
  /**
412
414
  * @tsplus fluent fncts.ImmutableNonEmptyArray uniq
@@ -1,14 +1,19 @@
1
1
  import { ImmutableArray } from "@fncts/base/collection/immutable/ImmutableArray/definition";
2
2
 
3
- export interface ImmutableNonEmptyArrayF extends ImmutableNonEmptyArray<any> {}
3
+ export interface ImmutableNonEmptyArrayF extends HKT {
4
+ type: ImmutableNonEmptyArray<this["A"]>;
5
+ variance: {
6
+ A: "+";
7
+ };
8
+ index: number;
9
+ }
4
10
 
5
11
  /**
6
12
  * @tsplus type fncts.ImmutableNonEmptyArray
7
13
  * @tsplus companion fncts.ImmutableNonEmptyArrayOps
8
14
  */
9
15
  export class ImmutableNonEmptyArray<A> extends ImmutableArray<A> {
10
- [HKT.F]!: ImmutableNonEmptyArrayF;
11
- [HKT.T]!: ImmutableNonEmptyArray<HKT._A<this>>;
16
+ readonly _A!: () => A;
12
17
  constructor(readonly _array: ReadonlyNonEmptyArray<A>) {
13
18
  super(_array);
14
19
  }
@@ -4,7 +4,6 @@ import type * as P from "@fncts/base/typeclass";
4
4
  import {
5
5
  align_,
6
6
  alignWith_,
7
- ap_,
8
7
  cross_,
9
8
  crossWith_,
10
9
  flatMap_,
@@ -14,92 +13,92 @@ import {
14
13
  foldRightWithIndex_,
15
14
  map_,
16
15
  mapWithIndex_,
17
- traverse_,
18
- traverseWithIndex_,
16
+ traverse,
17
+ traverseWithIndex,
19
18
  } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/api";
20
19
  import { make } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/constructors";
21
20
 
22
21
  /**
23
22
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Semialign
24
23
  */
25
- export const Semialign: P.Semialign<ImmutableNonEmptyArrayF> = {
24
+ export const Semialign = HKT.instance<P.Semialign<ImmutableNonEmptyArrayF>>({
26
25
  map: map_,
27
26
  alignWith: alignWith_,
28
- };
27
+ });
29
28
 
30
29
  /**
31
30
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Functor
32
31
  */
33
- export const Functor: P.Functor<ImmutableNonEmptyArrayF> = {
32
+ export const Functor = HKT.instance<P.Functor<ImmutableNonEmptyArrayF>>({
34
33
  map: map_,
35
- };
34
+ });
36
35
 
37
36
  /**
38
37
  * @tsplus static fncts.ImmutableNonEmptyArrayOps FunctorWithIndex
39
38
  */
40
- export const FunctorWithIndex: P.FunctorWithIndex<ImmutableNonEmptyArrayF> = {
39
+ export const FunctorWithIndex = HKT.instance<P.FunctorWithIndex<ImmutableNonEmptyArrayF>>({
41
40
  map: map_,
42
41
  mapWithIndex: mapWithIndex_,
43
- };
42
+ });
44
43
 
45
44
  /**
46
45
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Apply
47
46
  */
48
- export const Apply: P.Apply<ImmutableNonEmptyArrayF> = {
47
+ export const Apply = HKT.instance<P.Apply<ImmutableNonEmptyArrayF>>({
49
48
  ...Functor,
50
49
  zip: cross_,
51
50
  zipWith: crossWith_,
52
- };
51
+ });
53
52
 
54
53
  /**
55
54
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Applicative
56
55
  */
57
- export const Applicative: P.Applicative<ImmutableNonEmptyArrayF> = {
56
+ export const Applicative = HKT.instance<P.Applicative<ImmutableNonEmptyArrayF>>({
58
57
  ...Apply,
59
58
  pure: make,
60
- };
59
+ });
61
60
 
62
61
  /**
63
62
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Monad
64
63
  */
65
- export const Monad: P.Monad<ImmutableNonEmptyArrayF> = {
64
+ export const Monad = HKT.instance<P.Monad<ImmutableNonEmptyArrayF>>({
66
65
  ...Applicative,
67
66
  flatMap: flatMap_,
68
- };
67
+ });
69
68
 
70
69
  /**
71
70
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Foldable
72
71
  */
73
- export const Foldable: P.Foldable<ImmutableNonEmptyArrayF> = {
72
+ export const Foldable = HKT.instance<P.Foldable<ImmutableNonEmptyArrayF>>({
74
73
  foldLeft: foldLeft_,
75
74
  foldRight: foldRight_,
76
- };
75
+ });
77
76
 
78
77
  /**
79
78
  * @tsplus static fncts.ImmutableNonEmptyArrayOps FoldableWithIndex
80
79
  */
81
- export const FoldableWithIndex: P.FoldableWithIndex<ImmutableNonEmptyArrayF> = {
80
+ export const FoldableWithIndex = HKT.instance<P.FoldableWithIndex<ImmutableNonEmptyArrayF>>({
82
81
  ...Foldable,
83
82
  foldLeftWithIndex: foldLeftWithIndex_,
84
83
  foldRightWithIndex: foldRightWithIndex_,
85
- };
84
+ });
86
85
 
87
86
  /**
88
87
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Traversable
89
88
  */
90
- export const Traversable: P.Traversable<ImmutableNonEmptyArrayF> = {
89
+ export const Traversable = HKT.instance<P.Traversable<ImmutableNonEmptyArrayF>>({
91
90
  ...Functor,
92
91
  ...Foldable,
93
- traverse: traverse_,
94
- };
92
+ traverse: traverse,
93
+ });
95
94
 
96
95
  /**
97
96
  * @tsplus static fncts.ImmutableNonEmptyArrayOps TraversableWithIndex
98
97
  */
99
- export const TraversableWithIndex: P.TraversableWithIndex<ImmutableNonEmptyArrayF> = {
98
+ export const TraversableWithIndex = HKT.instance<P.TraversableWithIndex<ImmutableNonEmptyArrayF>>({
100
99
  ...Functor,
101
100
  ...FunctorWithIndex,
102
101
  ...FoldableWithIndex,
103
102
  ...Traversable,
104
- traverseWithIndex: traverseWithIndex_,
105
- };
103
+ traverseWithIndex: traverseWithIndex,
104
+ });
@@ -1,7 +1,12 @@
1
1
  export const RoseTreeTypeId = Symbol.for("fncts.RoseTree");
2
2
  export type RoseTreeTypeId = typeof RoseTreeTypeId;
3
3
 
4
- export interface RoseTreeF extends RoseTree<any> {}
4
+ export interface RoseTreeF extends HKT {
5
+ type: RoseTree<this["A"]>;
6
+ variance: {
7
+ A: "+";
8
+ };
9
+ }
5
10
 
6
11
  /**
7
12
  * @tsplus type fncts.RoseTree
@@ -9,9 +14,7 @@ export interface RoseTreeF extends RoseTree<any> {}
9
14
  */
10
15
  export class RoseTree<A> implements Hashable, Equatable {
11
16
  readonly _typeId: RoseTreeTypeId = RoseTreeTypeId;
12
- readonly [HKT.F]!: RoseTreeF;
13
- readonly [HKT.A]!: () => A;
14
- readonly [HKT.T]!: RoseTree<HKT._A<this>>;
17
+ declare _A: () => A;
15
18
  constructor(readonly value: A, readonly forest: Vector<RoseTree<A>>) {}
16
19
  [Symbol.equals](that: unknown): boolean {
17
20
  return isRoseTree(that) ? Equatable.strictEquals(this.value, that.value) && this.forest == that.forest : false;