@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
@@ -1,29 +1,31 @@
1
- export interface Semimonoidal<F extends HKT> extends HKT.Typeclass<F> {
2
- zip<K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
3
- fa: HKT.Kind<F, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
1
+ export interface Semimonoidal<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F, FC> {
2
+ zip: <K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
3
+ fa: HKT.Kind<F, FC, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
4
4
  fb: HKT.Kind<
5
5
  F,
6
- HKT.Intro<"K", K1, K2>,
7
- HKT.Intro<"Q", Q1, Q2>,
8
- HKT.Intro<"W", W1, W2>,
9
- HKT.Intro<"X", X1, X2>,
10
- HKT.Intro<"I", I1, I2>,
11
- HKT.Intro<"S", S1, S2>,
12
- HKT.Intro<"R", R1, R2>,
13
- HKT.Intro<"E", E1, E2>,
6
+ FC,
7
+ HKT.Intro<F, "K", K1, K2>,
8
+ HKT.Intro<F, "Q", Q1, Q2>,
9
+ HKT.Intro<F, "W", W1, W2>,
10
+ HKT.Intro<F, "X", X1, X2>,
11
+ HKT.Intro<F, "I", I1, I2>,
12
+ HKT.Intro<F, "S", S1, S2>,
13
+ HKT.Intro<F, "R", R1, R2>,
14
+ HKT.Intro<F, "E", E1, E2>,
14
15
  B
15
16
  >,
16
- ): HKT.Kind<
17
+ ) => HKT.Kind<
17
18
  F,
18
- HKT.Mix<"K", [K1, K2]>,
19
- HKT.Mix<"Q", [Q1, Q2]>,
20
- HKT.Mix<"W", [W1, W2]>,
21
- HKT.Mix<"X", [X1, X2]>,
22
- HKT.Mix<"I", [I1, I2]>,
23
- HKT.Mix<"S", [S1, S2]>,
24
- HKT.Mix<"R", [R1, R2]>,
25
- HKT.Mix<"E", [E1, E2]>,
26
- readonly [A, B]
19
+ FC,
20
+ HKT.Mix<F, "K", [K1, K2]>,
21
+ HKT.Mix<F, "Q", [Q1, Q2]>,
22
+ HKT.Mix<F, "W", [W1, W2]>,
23
+ HKT.Mix<F, "X", [X1, X2]>,
24
+ HKT.Mix<F, "I", [I1, I2]>,
25
+ HKT.Mix<F, "S", [S1, S2]>,
26
+ HKT.Mix<F, "R", [R1, R2]>,
27
+ HKT.Mix<F, "E", [E1, E2]>,
28
+ Zipped.Make<A, B>
27
29
  >;
28
30
  }
29
31
 
@@ -33,36 +35,3 @@ export interface Semimonoidal<F extends HKT> extends HKT.Typeclass<F> {
33
35
  export interface SemimonoidalOps {}
34
36
 
35
37
  export const Semimonoidal: SemimonoidalOps = {};
36
-
37
- /**
38
- * @tsplus fluent fncts.Kind zip
39
- */
40
- export function zip<F extends HKT, C, K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
41
- fa: HKT.Kind<F, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
42
- fb: HKT.Kind<
43
- F,
44
- HKT.Intro<"K", K1, K2>,
45
- HKT.Intro<"Q", Q1, Q2>,
46
- HKT.Intro<"W", W1, W2>,
47
- HKT.Intro<"X", X1, X2>,
48
- HKT.Intro<"I", I1, I2>,
49
- HKT.Intro<"S", S1, S2>,
50
- HKT.Intro<"R", R1, R2>,
51
- HKT.Intro<"E", E1, E2>,
52
- B
53
- >,
54
- /** @tsplus auto */ F: Semimonoidal<F>,
55
- ): HKT.Kind<
56
- F,
57
- HKT.Mix<"K", [K1, K2]>,
58
- HKT.Mix<"Q", [Q1, Q2]>,
59
- HKT.Mix<"W", [W1, W2]>,
60
- HKT.Mix<"X", [X1, X2]>,
61
- HKT.Mix<"I", [I1, I2]>,
62
- HKT.Mix<"S", [S1, S2]>,
63
- HKT.Mix<"R", [R1, R2]>,
64
- HKT.Mix<"E", [E1, E2]>,
65
- readonly [A, B]
66
- > {
67
- return F.zip(fa, fb);
68
- }
@@ -400,9 +400,9 @@ function showRaw(value: object, typedArray?: string): ShowComputation {
400
400
  case "InspectionInfo": {
401
401
  base = Z.succeedNow(info.base);
402
402
  keys = Conc.from(info.keys)
403
- .traverse((key) => showProperty(value, key, info.extrasType), Z.Applicative)
403
+ .traverse(Z.Applicative)((key) => showProperty(value, key, info.extrasType))
404
404
  .crossWith(
405
- info.protoProps.traverse((key) => showProperty(value, key, PROTO_TYPE), Z.Applicative),
405
+ info.protoProps.traverse(Z.Applicative)((key) => showProperty(value, key, PROTO_TYPE)),
406
406
  (k1, k2) => k1.concat(k2),
407
407
  );
408
408
  indices = info.formatter(value);
@@ -537,16 +537,15 @@ function removeColors(str: string): string {
537
537
 
538
538
  function showSet(value: Set<unknown>): ShowComputationChunk {
539
539
  return Z.update((_: ShowContext) => _.copy({ indentationLevel: _.indentationLevel + 2 }))
540
- .apSecond((value as Iterable<unknown>).traverseToConc(_show, Z.Applicative))
540
+ .apSecond((value as Iterable<unknown>).traverseToConc(Z.Applicative)(_show))
541
541
  .apFirst(Z.update((_: ShowContext) => _.copy({ indentationLevel: _.indentationLevel - 2 })));
542
542
  }
543
543
 
544
544
  function showMap(value: Map<unknown, unknown>): ShowComputationChunk {
545
545
  return Z.update((_: ShowContext) => _.copy({ indentationLevel: _.indentationLevel + 2 }))
546
546
  .apSecond(
547
- (value as Iterable<[unknown, unknown]>).traverseToConc(
548
- ([k, v]) => _show(k).crossWith(_show(v), (k, v) => `${k} => ${v}`),
549
- Z.Applicative,
547
+ (value as Iterable<[unknown, unknown]>).traverseToConc(Z.Applicative)(([k, v]) =>
548
+ _show(k).crossWith(_show(v), (k, v) => `${k} => ${v}`),
550
549
  ),
551
550
  )
552
551
  .apFirst(
@@ -578,9 +577,8 @@ function showTypedArray(value: TypedArray): ShowComputationChunk {
578
577
  .apSecond(
579
578
  Z.succeedNow(output).flatMap((output) =>
580
579
  Conc("BYTES_PER_ELEMENT", "length", "byteLength", "byteOffset", "buffer")
581
- .traverse(
582
- (key) => _show(value[key as keyof TypedArray]).map((shown) => `[${key}]: ${shown}`),
583
- Z.Applicative,
580
+ .traverse(Z.Applicative)((key) =>
581
+ _show(value[key as keyof TypedArray]).map((shown) => `[${key}]: ${shown}`),
584
582
  )
585
583
  .map((shownKeys) => output.concat(shownKeys)),
586
584
  ),
@@ -699,7 +697,7 @@ function showChunk(value: Conc<unknown>): ShowComputationChunk {
699
697
  return tuple(remaining, chunk);
700
698
  }).flatMap(([remaining, chunk]) =>
701
699
  chunk
702
- .traverse(_show, Z.Applicative)
700
+ .traverse(Z.Applicative)(_show)
703
701
  .map((chunk) => (remaining > 0 ? chunk.append(`... ${remaining} more item${pluralize(remaining)}`) : chunk)),
704
702
  );
705
703
  }
@@ -1,4 +1,4 @@
1
- import type { Applicative } from "@fncts/base/typeclass/Applicative";
1
+ import type { Applicative, CompatibleApplicative } from "@fncts/base/typeclass/Applicative";
2
2
  import type { Foldable } from "@fncts/base/typeclass/Foldable";
3
3
  import type { Functor } from "@fncts/base/typeclass/Functor";
4
4
 
@@ -7,12 +7,14 @@ import { identity } from "@fncts/base/data/function";
7
7
  /**
8
8
  * @tsplus type fncts.Traversable
9
9
  */
10
- export interface Traversable<F extends HKT> extends Functor<F>, Foldable<F> {
11
- traverse<G extends HKT, KF, QF, WF, XF, IF, SF, RF, EF, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
12
- ta: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
13
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B>,
14
- /** @tsplus auto */ G: Applicative<G>,
15
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
10
+ export interface Traversable<F extends HKT, FC = HKT.None> extends Functor<F, FC>, Foldable<F, FC> {
11
+ traverse: <KF, QF, WF, XF, IF, SF, RF, EF, A>(
12
+ ta: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, A>,
13
+ ) => <G extends HKT, GC = HKT.None>(
14
+ G: Applicative<G, GC>,
15
+ ) => <KG, QG, WG, XG, IG, SG, RG, EG, B>(
16
+ f: (a: A) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, B>,
17
+ ) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
16
18
  }
17
19
 
18
20
  /**
@@ -23,65 +25,45 @@ export interface TraversableOps {}
23
25
  export const Traversable: TraversableOps = {};
24
26
 
25
27
  /**
26
- * @tsplus fluent fncts.Kind traverse
28
+ * @tsplus static fncts.TraversableOps makeTraverse
27
29
  */
28
- export function traverse<
29
- F extends HKT,
30
- G extends HKT,
31
- KF,
32
- QF,
33
- WF,
34
- XF,
35
- IF,
36
- SF,
37
- RF,
38
- EF,
39
- KG,
40
- QG,
41
- WG,
42
- XG,
43
- IG,
44
- SG,
45
- RG,
46
- EG,
47
- A,
48
- B,
49
- >(
50
- ta: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
51
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B>,
52
- /** @tsplus auto */ F: Traversable<F>,
53
- /** @tsplus auto */ G: Applicative<G>,
54
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>> {
55
- return F.traverse(ta, f, G);
30
+ export function mkTraverse_<F extends HKT, FC = HKT.None>(): (
31
+ i: <K, Q, W, X, I, S, R, E, A, B, G>(_: {
32
+ A: A;
33
+ B: B;
34
+ G: G;
35
+ K: K;
36
+ Q: Q;
37
+ W: W;
38
+ X: X;
39
+ I: I;
40
+ S: S;
41
+ R: R;
42
+ E: E;
43
+ }) => (
44
+ ta: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
45
+ ) => (
46
+ G: Applicative<HKT.F<G>>,
47
+ ) => (f: (a: A) => HKT.FK1<G, B>) => HKT.FK1<G, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>>,
48
+ ) => Traversable<F, FC>["traverse"];
49
+ export function mkTraverse_() {
50
+ return (i: any) => i();
56
51
  }
57
52
 
58
53
  /**
59
- * @tsplus fluent fncts.Kind sequence
54
+ * @tsplus static fncts.TraversableOps sequence
60
55
  */
61
- export function sequence<
62
- F extends HKT,
63
- G extends HKT,
64
- KF,
65
- QF,
66
- WF,
67
- XF,
68
- IF,
69
- SF,
70
- RF,
71
- EF,
72
- KG,
73
- QG,
74
- WG,
75
- XG,
76
- IG,
77
- SG,
78
- RG,
79
- EG,
80
- A,
81
- >(
82
- ta: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, A>>,
83
- /** @tsplus auto */ F: Traversable<F>,
84
- /** @tsplus auto */ G: Applicative<G>,
85
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>> {
86
- return ta.traverse(identity);
56
+ export function sequence<F extends HKT, FC>(
57
+ F: Traversable<F, FC>,
58
+ ): <KF, QF, WF, XF, IF, SF, RF, EF, A>(
59
+ ta: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, A>,
60
+ ) => <G extends HKT, GC = HKT.None>(
61
+ G: CompatibleApplicative<G, GC, A>,
62
+ ) => [A] extends [
63
+ HKT.Kind<G, GC, infer KG, infer QG, infer WG, infer XG, infer IG, infer SG, infer RG, infer EG, infer B>,
64
+ ]
65
+ ? HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, FC, KF, QF, WF, XG, IF, SF, RF, EF, B>>
66
+ : never {
67
+ // @ts-expect-error
68
+ return (ta) => (G) => F.traverse(ta)(G)(identity);
87
69
  }
@@ -6,12 +6,17 @@ import type { Traversable } from "@fncts/base/typeclass/Traversable";
6
6
  /**
7
7
  * @tsplus type fncts.TraversableWithIndex
8
8
  */
9
- export interface TraversableWithIndex<F extends HKT> extends FunctorWithIndex<F>, FoldableWithIndex<F>, Traversable<F> {
10
- traverseWithIndex<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, KF, QF, WF, XF, IF, SF, RF, EF, A, B>(
11
- ta: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
12
- f: (i: HKT.IndexFor<F, KF>, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B>,
13
- /** @tsplus auto */ G: Applicative<G>,
14
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
9
+ export interface TraversableWithIndex<F extends HKT, FC = HKT.None>
10
+ extends FunctorWithIndex<F, FC>,
11
+ FoldableWithIndex<F, FC>,
12
+ Traversable<F, FC> {
13
+ traverseWithIndex: <KF, QF, WF, XF, IF, SF, RF, EF, A>(
14
+ ta: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, A>,
15
+ ) => <G extends HKT, GC = HKT.None>(
16
+ G: Applicative<G, GC>,
17
+ ) => <KG, QG, WG, XG, IG, SG, RG, EG, B>(
18
+ f: (i: HKT.IndexFor<F, KF>, a: A) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, B>,
19
+ ) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
15
20
  }
16
21
 
17
22
  /**
@@ -21,32 +26,30 @@ export interface TraversableWithIndexOps {}
21
26
 
22
27
  export const TraversableWithIndex: TraversableWithIndexOps = {};
23
28
 
24
- export function traverseWithIndex<
25
- F extends HKT,
26
- G extends HKT,
27
- KG,
28
- QG,
29
- WG,
30
- XG,
31
- IG,
32
- SG,
33
- RG,
34
- EG,
35
- KF,
36
- QF,
37
- WF,
38
- XF,
39
- IF,
40
- SF,
41
- RF,
42
- EF,
43
- A,
44
- B,
45
- >(
46
- ta: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
47
- f: (i: HKT.IndexFor<F, KF>, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B>,
48
- /** @tsplus auto */ F: TraversableWithIndex<F>,
49
- /** @tsplus auto */ G: Applicative<G>,
50
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>> {
51
- return F.traverseWithIndex(ta, f, G);
29
+ /**
30
+ * @tsplus static fncts.TraversableWithIndexOps makeTraverseWithIndex
31
+ */
32
+ export function mkTraverseWithIndex_<F extends HKT, FC = HKT.None>(): (
33
+ i: <K, Q, W, X, I, S, R, E, A, B, G>(_: {
34
+ A: A;
35
+ B: B;
36
+ G: G;
37
+ K: HKT.OrFix<FC, "K", K>;
38
+ Q: Q;
39
+ W: W;
40
+ X: X;
41
+ I: I;
42
+ S: S;
43
+ R: R;
44
+ E: E;
45
+ }) => (
46
+ ta: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
47
+ ) => (
48
+ G: Applicative<HKT.F<G>>,
49
+ ) => (
50
+ f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => HKT.FK1<G, B>,
51
+ ) => HKT.FK1<G, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>>,
52
+ ) => TraversableWithIndex<F, FC>["traverseWithIndex"];
53
+ export function mkTraverseWithIndex_() {
54
+ return (i: any) => i();
52
55
  }
@@ -5,18 +5,23 @@ import type { Traversable } from "@fncts/base/typeclass/Traversable";
5
5
  /**
6
6
  * @tsplus type fncts.Witherable
7
7
  */
8
- export interface Witherable<F extends HKT> extends Filterable<F>, Traversable<F> {
9
- wither<G extends HKT, KF, QF, WF, XF, IF, SF, RF, EF, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
10
- wa: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
11
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
12
- /** @tsplus auto */ G: Applicative<G>,
13
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
14
- wilt<G extends HKT, KF, QF, WF, XF, IF, SF, RF, EF, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
15
- wa: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
16
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
17
- /** @tsplus auto */ G: Applicative<G>,
18
- ): HKT.Kind<
8
+ export interface Witherable<F extends HKT, FC = HKT.None> extends Filterable<F, FC>, Traversable<F, FC> {
9
+ wither: <KF, QF, WF, XF, IF, SF, RF, EF, A>(
10
+ wa: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, A>,
11
+ ) => <G extends HKT, GC = HKT.None>(
12
+ G: Applicative<G, GC>,
13
+ ) => <KG, QG, WG, XG, IG, SG, RG, EG, B>(
14
+ f: (a: A) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
15
+ ) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, B>>;
16
+ wilt: <KF, QF, WF, XF, IF, SF, RF, EF, A>(
17
+ wa: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, A>,
18
+ ) => <G extends HKT, GC = HKT.None>(
19
+ G: Applicative<G, GC>,
20
+ ) => <KG, QG, WG, XG, IG, SG, RG, EG, B, B1>(
21
+ f: (a: A) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
22
+ ) => HKT.Kind<
19
23
  G,
24
+ GC,
20
25
  KG,
21
26
  QG,
22
27
  WG,
@@ -25,7 +30,7 @@ export interface Witherable<F extends HKT> extends Filterable<F>, Traversable<F>
25
30
  SG,
26
31
  RG,
27
32
  EG,
28
- readonly [HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B1>]
33
+ readonly [HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, B>, HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, B1>]
29
34
  >;
30
35
  }
31
36
 
@@ -37,108 +42,16 @@ export interface WitherableOps {}
37
42
  export const Witherable: WitherableOps = {};
38
43
 
39
44
  /**
40
- * @tsplus fluent fncts.Kind wither
45
+ * @tsplus static fncts.WitherableOps filterA
41
46
  */
42
- export function wither<
43
- F extends HKT,
44
- G extends HKT,
45
- KF,
46
- QF,
47
- WF,
48
- XF,
49
- IF,
50
- SF,
51
- RF,
52
- EF,
53
- KG,
54
- QG,
55
- WG,
56
- XG,
57
- IG,
58
- SG,
59
- RG,
60
- EG,
61
- A,
62
- B,
63
- >(
64
- wa: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
65
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
66
- /** @tsplus auto */ F: Witherable<F>,
67
- /** @tsplus auto */ G: Applicative<G>,
68
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>> {
69
- return F.wither(wa, f);
70
- }
71
-
72
- export function wilt<
73
- F extends HKT,
74
- G extends HKT,
75
- KF,
76
- QF,
77
- WF,
78
- XF,
79
- IF,
80
- SF,
81
- RF,
82
- EF,
83
- KG,
84
- QG,
85
- WG,
86
- XG,
87
- IG,
88
- SG,
89
- RG,
90
- EG,
91
- B1,
92
- A,
93
- B,
94
- >(
95
- wa: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, A>,
96
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
97
- /** @tsplus auto */ F: Witherable<F>,
98
- /** @tsplus auto */ G: Applicative<G>,
99
- ): HKT.Kind<
100
- G,
101
- KG,
102
- QG,
103
- WG,
104
- XG,
105
- IG,
106
- SG,
107
- RG,
108
- EG,
109
- readonly [HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B>, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, B1>]
110
- > {
111
- return F.wilt(wa, f);
112
- }
113
-
114
- /**
115
- * @tsplus fluent fncts.Kind filterA
116
- */
117
- export function filterA<
118
- F extends HKT,
119
- G extends HKT,
120
- KF,
121
- QF,
122
- WF,
123
- XF,
124
- IF,
125
- SF,
126
- RF,
127
- EF,
128
- AF,
129
- KG,
130
- QG,
131
- WG,
132
- XG,
133
- IG,
134
- SG,
135
- RG,
136
- EG,
137
- >(
138
- fa: HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, AF>,
139
- p: (a: AF) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, boolean>,
140
- /** @tsplus auto */ F: Witherable<F>,
141
- /** @tsplus auto */ G: Applicative<G>,
142
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, KF, QF, WF, XF, IF, SF, RF, EF, AF>> {
143
- return fa.wither((a) => p(a).map((bb) => (bb ? Just(a) : Nothing()), G));
47
+ export function filterA<F extends HKT, FC = HKT.None>(
48
+ F: Witherable<F, FC>,
49
+ ): <KF, QF, WF, XF, IF, SF, RF, EF, AF>(
50
+ fa: HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, AF>,
51
+ ) => <G extends HKT, GC = HKT.None>(
52
+ G: Applicative<G, GC>,
53
+ ) => <KG, QG, WG, XG, IG, SG, RG, EG>(
54
+ p: (a: AF) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, boolean>,
55
+ ) => HKT.Kind<G, GC, KG, QG, WG, XG, IG, SG, RG, EG, HKT.Kind<F, FC, KF, QF, WF, XF, IF, SF, RF, EF, AF>> {
56
+ return (fa) => (G) => (p) => F.wither(fa)(G)((a) => G.map(p(a), (bb) => (bb ? Just(a) : Nothing())));
144
57
  }