@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,34 +1,35 @@
1
- import type { Functor } from "@fncts/base/typeclass/Functor";
2
-
3
1
  import { identity } from "@fncts/base/data/function";
2
+ import { Functor } from "@fncts/base/typeclass/Functor";
4
3
 
5
- export interface FlatMap<F extends HKT> extends Functor<F> {
6
- flatMap<K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
7
- ma: HKT.Kind<F, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
4
+ export interface FlatMap<F extends HKT, FC = HKT.None> extends Functor<F, FC> {
5
+ flatMap: <K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
6
+ ma: HKT.Kind<F, FC, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
8
7
  f: (
9
8
  a: A,
10
9
  ) => HKT.Kind<
11
10
  F,
12
- HKT.Intro<"K", K1, K2>,
13
- HKT.Intro<"Q", Q1, Q2>,
14
- HKT.Intro<"W", W1, W2>,
15
- HKT.Intro<"X", X1, X2>,
16
- HKT.Intro<"I", I1, I2>,
17
- HKT.Intro<"S", S1, S2>,
18
- HKT.Intro<"R", R1, R2>,
19
- HKT.Intro<"E", E1, E2>,
11
+ FC,
12
+ HKT.Intro<F, "K", K1, K2>,
13
+ HKT.Intro<F, "Q", Q1, Q2>,
14
+ HKT.Intro<F, "W", W1, W2>,
15
+ HKT.Intro<F, "X", X1, X2>,
16
+ HKT.Intro<F, "I", I1, I2>,
17
+ HKT.Intro<F, "S", S1, S2>,
18
+ HKT.Intro<F, "R", R1, R2>,
19
+ HKT.Intro<F, "E", E1, E2>,
20
20
  B
21
21
  >,
22
- ): HKT.Kind<
22
+ ) => HKT.Kind<
23
23
  F,
24
- HKT.Mix<"K", [K1, K2]>,
25
- HKT.Mix<"Q", [Q1, Q2]>,
26
- HKT.Mix<"W", [W1, W2]>,
27
- HKT.Mix<"X", [X1, X2]>,
28
- HKT.Mix<"I", [I1, I2]>,
29
- HKT.Mix<"S", [S1, S2]>,
30
- HKT.Mix<"R", [R1, R2]>,
31
- HKT.Mix<"E", [E1, E2]>,
24
+ FC,
25
+ HKT.Mix<F, "K", [K1, K2]>,
26
+ HKT.Mix<F, "Q", [Q1, Q2]>,
27
+ HKT.Mix<F, "W", [W1, W2]>,
28
+ HKT.Mix<F, "X", [X1, X2]>,
29
+ HKT.Mix<F, "I", [I1, I2]>,
30
+ HKT.Mix<F, "S", [S1, S2]>,
31
+ HKT.Mix<F, "R", [R1, R2]>,
32
+ HKT.Mix<F, "E", [E1, E2]>,
32
33
  B
33
34
  >;
34
35
  }
@@ -40,47 +41,15 @@ export interface FlatMapOps {}
40
41
 
41
42
  export const FlatMap: FlatMapOps = {};
42
43
 
43
- /**
44
- * @tsplus fluent fncts.Kind flatMap
45
- */
46
- export function flatMap<F extends HKT, K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
47
- ma: HKT.Kind<F, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
48
- f: (
49
- a: A,
50
- ) => HKT.Kind<
51
- F,
52
- HKT.Intro<"K", K1, K2>,
53
- HKT.Intro<"Q", Q1, Q2>,
54
- HKT.Intro<"W", W1, W2>,
55
- HKT.Intro<"X", X1, X2>,
56
- HKT.Intro<"I", I1, I2>,
57
- HKT.Intro<"S", S1, S2>,
58
- HKT.Intro<"R", R1, R2>,
59
- HKT.Intro<"E", E1, E2>,
60
- B
61
- >,
62
- /** @tsplus auto */ F: FlatMap<F>,
63
- ): HKT.Kind<
64
- F,
65
- HKT.Mix<"K", [K1, K2]>,
66
- HKT.Mix<"Q", [Q1, Q2]>,
67
- HKT.Mix<"W", [W1, W2]>,
68
- HKT.Mix<"X", [X1, X2]>,
69
- HKT.Mix<"I", [I1, I2]>,
70
- HKT.Mix<"S", [S1, S2]>,
71
- HKT.Mix<"R", [R1, R2]>,
72
- HKT.Mix<"E", [E1, E2]>,
73
- B
74
- > {
75
- return F.flatMap(ma, f);
76
- }
77
-
78
44
  /**
79
45
  * @tsplus fluent fncts.Kind flatten
80
46
  */
81
- export function flatten<F extends HKT, K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2>(
47
+ export function flatten<F extends HKT, FC = HKT.None>(
48
+ F: FlatMap<F, FC>,
49
+ ): <K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2>(
82
50
  mma: HKT.Kind<
83
51
  F,
52
+ FC,
84
53
  K2,
85
54
  Q2,
86
55
  W2,
@@ -91,64 +60,68 @@ export function flatten<F extends HKT, K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2
91
60
  E2,
92
61
  HKT.Kind<
93
62
  F,
94
- HKT.Intro<"K", K2, K1>,
95
- HKT.Intro<"Q", Q2, Q1>,
96
- HKT.Intro<"W", W2, W1>,
97
- HKT.Intro<"X", X2, X1>,
98
- HKT.Intro<"I", I2, I1>,
99
- HKT.Intro<"S", S2, S1>,
100
- HKT.Intro<"R", R2, R1>,
101
- HKT.Intro<"E", E2, E1>,
63
+ FC,
64
+ HKT.Intro<F, "K", K2, K1>,
65
+ HKT.Intro<F, "Q", Q2, Q1>,
66
+ HKT.Intro<F, "W", W2, W1>,
67
+ HKT.Intro<F, "X", X2, X1>,
68
+ HKT.Intro<F, "I", I2, I1>,
69
+ HKT.Intro<F, "S", S2, S1>,
70
+ HKT.Intro<F, "R", R2, R1>,
71
+ HKT.Intro<F, "E", E2, E1>,
102
72
  A
103
73
  >
104
74
  >,
105
- /** @tsplus auto */ F: FlatMap<F>,
106
- ): HKT.Kind<
75
+ ) => HKT.Kind<
107
76
  F,
108
- HKT.Mix<"K", [K2, K1]>,
109
- HKT.Mix<"Q", [Q2, Q1]>,
110
- HKT.Mix<"W", [W2, W1]>,
111
- HKT.Mix<"X", [X2, X1]>,
112
- HKT.Mix<"I", [I2, I1]>,
113
- HKT.Mix<"S", [S2, S1]>,
114
- HKT.Mix<"R", [R2, R1]>,
115
- HKT.Mix<"E", [E2, E1]>,
77
+ FC,
78
+ HKT.Mix<F, "K", [K2, K1]>,
79
+ HKT.Mix<F, "Q", [Q2, Q1]>,
80
+ HKT.Mix<F, "W", [W2, W1]>,
81
+ HKT.Mix<F, "X", [X2, X1]>,
82
+ HKT.Mix<F, "I", [I2, I1]>,
83
+ HKT.Mix<F, "S", [S2, S1]>,
84
+ HKT.Mix<F, "R", [R2, R1]>,
85
+ HKT.Mix<F, "E", [E2, E1]>,
116
86
  A
117
87
  > {
118
- return mma.flatMap(identity);
88
+ return (mma) => F.flatMap(mma, identity);
119
89
  }
120
90
 
121
91
  /**
122
92
  * @tsplus fluent fncts.Kind tap
123
93
  */
124
- export function tap<F extends HKT, K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
125
- ma: HKT.Kind<F, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
94
+ export function tap<F extends HKT, FC = HKT.None>(
95
+ F: FlatMap<F, FC>,
96
+ ): <K1, Q1, W1, X1, I1, S1, R1, E1, A, K2, Q2, W2, X2, I2, S2, R2, E2, B>(
97
+ ma: HKT.Kind<F, FC, K1, Q1, W1, X1, I1, S1, R1, E1, A>,
126
98
  f: (
127
99
  a: A,
128
100
  ) => HKT.Kind<
129
101
  F,
130
- HKT.Intro<"K", K1, K2>,
131
- HKT.Intro<"Q", Q1, Q2>,
132
- HKT.Intro<"W", W1, W2>,
133
- HKT.Intro<"X", X1, X2>,
134
- HKT.Intro<"I", I1, I2>,
135
- HKT.Intro<"S", S1, S2>,
136
- HKT.Intro<"R", R1, R2>,
137
- HKT.Intro<"E", E1, E2>,
102
+ FC,
103
+ HKT.Intro<F, "K", K1, K2>,
104
+ HKT.Intro<F, "Q", Q1, Q2>,
105
+ HKT.Intro<F, "W", W1, W2>,
106
+ HKT.Intro<F, "X", X1, X2>,
107
+ HKT.Intro<F, "I", I1, I2>,
108
+ HKT.Intro<F, "S", S1, S2>,
109
+ HKT.Intro<F, "R", R1, R2>,
110
+ HKT.Intro<F, "E", E1, E2>,
138
111
  B
139
112
  >,
140
- /** @tsplus auto */ F: FlatMap<F>,
141
- ): HKT.Kind<
113
+ ) => HKT.Kind<
142
114
  F,
143
- HKT.Mix<"K", [K1, K2]>,
144
- HKT.Mix<"Q", [Q1, Q2]>,
145
- HKT.Mix<"W", [W1, W2]>,
146
- HKT.Mix<"X", [X1, X2]>,
147
- HKT.Mix<"I", [I1, I2]>,
148
- HKT.Mix<"S", [S1, S2]>,
149
- HKT.Mix<"R", [R1, R2]>,
150
- HKT.Mix<"E", [E1, E2]>,
115
+ FC,
116
+ HKT.Mix<F, "K", [K1, K2]>,
117
+ HKT.Mix<F, "Q", [Q1, Q2]>,
118
+ HKT.Mix<F, "W", [W1, W2]>,
119
+ HKT.Mix<F, "X", [X1, X2]>,
120
+ HKT.Mix<F, "I", [I1, I2]>,
121
+ HKT.Mix<F, "S", [S1, S2]>,
122
+ HKT.Mix<F, "R", [R1, R2]>,
123
+ HKT.Mix<F, "E", [E1, E2]>,
151
124
  A
152
125
  > {
153
- return ma.flatMap((a) => f(a).as(a, F));
126
+ return (ma, f) => F.flatMap(ma, (a) => Functor.as(F)(f(a), a));
154
127
  }
@@ -1,41 +1,23 @@
1
1
  /**
2
2
  * @tsplus type fncts.Fail
3
3
  */
4
- export interface Fail<F extends HKT> extends HKT.Typeclass<F> {
5
- fail<
4
+ export interface Fail<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F, FC> {
5
+ fail: <
6
6
  E,
7
- K = HKT.Low<"K">,
8
- Q = HKT.Low<"Q">,
9
- W = HKT.Low<"W">,
10
- X = HKT.Low<"X">,
11
- I = HKT.Low<"I">,
12
- S = HKT.Low<"S">,
13
- R = HKT.Low<"R">,
7
+ K = HKT.Low<F, "K">,
8
+ Q = HKT.Low<F, "Q">,
9
+ W = HKT.Low<F, "W">,
10
+ X = HKT.Low<F, "X">,
11
+ I = HKT.Low<F, "I">,
12
+ S = HKT.Low<F, "S">,
13
+ R = HKT.Low<F, "R">,
14
14
  A = never,
15
15
  >(
16
16
  e: E,
17
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
17
+ ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
18
18
  }
19
19
 
20
20
  /**
21
21
  * @tsplus type fncts.FailOps
22
22
  */
23
23
  export interface FailOps {}
24
-
25
- /**
26
- * @tsplus static fncts.FailOps fail
27
- */
28
- export function fail<
29
- F extends HKT,
30
- E,
31
- K = HKT.Low<"K">,
32
- Q = HKT.Low<"Q">,
33
- W = HKT.Low<"W">,
34
- X = HKT.Low<"X">,
35
- I = HKT.Low<"I">,
36
- S = HKT.Low<"S">,
37
- R = HKT.Low<"R">,
38
- A = never,
39
- >(e: E, /** @tsplus auto */ F: Fail<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, A> {
40
- return F.fail(e);
41
- }
@@ -3,31 +3,31 @@ import type { Functor } from "@fncts/base/typeclass/Functor";
3
3
  /**
4
4
  * @tsplus type fncts.Filterable
5
5
  */
6
- export interface Filterable<F extends HKT> extends Functor<F> {
6
+ export interface Filterable<F extends HKT, FC = HKT.None> extends Functor<F, FC> {
7
7
  filter<K, Q, W, X, I, S, R, E, A, B extends A>(
8
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
8
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
9
9
  refinement: Refinement<A, B>,
10
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
10
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
11
11
  filter<K, Q, W, X, I, S, R, E, A>(
12
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
12
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
13
13
  predicate: Predicate<A>,
14
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
14
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
15
15
  filterMap<K, Q, W, X, I, S, R, E, A, B>(
16
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
16
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
17
17
  f: (a: A) => Maybe<B>,
18
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
18
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
19
19
  partition<K, Q, W, X, I, S, R, E, A, B extends A>(
20
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
20
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
21
21
  refinement: Refinement<A, B>,
22
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B>];
22
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>];
23
23
  partition<K, Q, W, X, I, S, R, E, A>(
24
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
24
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
25
25
  predicate: Predicate<A>,
26
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, A>];
26
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>];
27
27
  partitionMap<K, Q, W, X, I, S, R, E, A, B, B1>(
28
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
28
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
29
29
  f: (a: A) => Either<B, B1>,
30
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B1>];
30
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B1>];
31
31
  }
32
32
 
33
33
  /**
@@ -36,57 +36,3 @@ export interface Filterable<F extends HKT> extends Functor<F> {
36
36
  export interface FilterableOps {}
37
37
 
38
38
  export const Filterable: FilterableOps = {};
39
-
40
- /**
41
- * @tsplus fluent fncts.Kind filter
42
- */
43
- export function filter<F extends HKT, K, Q, W, X, I, S, R, E, A, B extends A>(
44
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
45
- refinement: Refinement<A, B>,
46
- /** @tsplus auto */ F: Filterable<F>,
47
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
48
- export function filter<F extends HKT, K, Q, W, X, I, S, R, E, A>(
49
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
50
- predicate: Predicate<A>,
51
- /** @tsplus auto */ F: Filterable<F>,
52
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A> {
53
- return F.filter(fa, predicate);
54
- }
55
-
56
- /**
57
- * @tsplus fluent fncts.Kind filterMap
58
- */
59
- export function filterMap<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
60
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
61
- f: (a: A) => Maybe<B>,
62
- /** @tsplus auto */ F: Filterable<F>,
63
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B> {
64
- return F.filterMap(fa, f);
65
- }
66
-
67
- /**
68
- * @tsplus fluent fncts.Kind partition
69
- */
70
- export function partition<F extends HKT, K, Q, W, X, I, S, R, E, A, B extends A>(
71
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
72
- refinement: Refinement<A, B>,
73
- /** @tsplus auto */ F: Filterable<F>,
74
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B>];
75
- export function partition<F extends HKT, K, Q, W, X, I, S, R, E, A>(
76
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
77
- predicate: Predicate<A>,
78
- /** @tsplus auto */ F: Filterable<F>,
79
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, A>] {
80
- return F.partition(fa, predicate);
81
- }
82
-
83
- /**
84
- * @tsplus fluent fncts.Kind partitionMap
85
- */
86
- export function partitionMap<F extends HKT, K, Q, W, X, I, S, R, E, A, B, B1>(
87
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
88
- f: (a: A) => Either<B, B1>,
89
- /** @tsplus auto */ F: Filterable<F>,
90
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B1>] {
91
- return F.partitionMap(fa, f);
92
- }
@@ -4,31 +4,31 @@ import type { FunctorWithIndex } from "@fncts/base/typeclass/FunctorWithIndex";
4
4
  /**
5
5
  * @tsplus type fncts.FilterableWithIndex
6
6
  */
7
- export interface FilterableWithIndex<F extends HKT> extends FunctorWithIndex<F>, Filterable<F> {
7
+ export interface FilterableWithIndex<F extends HKT, FC = HKT.None> extends FunctorWithIndex<F, FC>, Filterable<F, FC> {
8
8
  filterWithIndex<K, Q, W, X, I, S, R, E, A, B extends A>(
9
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
9
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
10
10
  refinement: RefinementWithIndex<HKT.IndexFor<F, K>, A, B>,
11
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
11
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
12
12
  filterWithIndex<K, Q, W, X, I, S, R, E, A>(
13
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
13
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
14
14
  predicate: PredicateWithIndex<HKT.IndexFor<F, K>, A>,
15
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
15
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
16
16
  filterMapWithIndex<K, Q, W, X, I, S, R, E, A, B>(
17
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
17
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
18
18
  f: (i: HKT.IndexFor<F, K>, a: A) => Maybe<B>,
19
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
19
+ ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
20
20
  partitionWithIndex<K, Q, W, X, I, S, R, E, A, B extends A>(
21
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
21
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
22
22
  refinement: RefinementWithIndex<HKT.IndexFor<F, K>, A, B>,
23
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B>];
23
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>];
24
24
  partitionWithIndex<K, Q, W, X, I, S, R, E, A>(
25
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
25
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
26
26
  predicate: PredicateWithIndex<HKT.IndexFor<F, K>, A>,
27
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, K, Q, W, X, I, S, R, E, A>];
27
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>];
28
28
  partitionMapWithIndex<K, Q, W, X, I, S, R, E, A, B, B1>(
29
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
29
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
30
30
  f: (i: HKT.IndexFor<F, K>, a: A) => Either<B, B1>,
31
- ): readonly [HKT.Kind<F, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, K, Q, W, X, I, S, R, E, B1>];
31
+ ): readonly [HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B1>];
32
32
  }
33
33
 
34
34
  /**
@@ -3,13 +3,17 @@ import type { Monoid } from "@fncts/base/typeclass/Monoid";
3
3
  /**
4
4
  * @tsplus type fncts.Foldable
5
5
  */
6
- export interface Foldable<F extends HKT> extends HKT.Typeclass<F> {
7
- foldLeft<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: B, f: (b: B, a: A) => B): B;
8
- foldRight<K, Q, W, X, I, S, R, E, A, B>(
9
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
6
+ export interface Foldable<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F, FC> {
7
+ foldLeft: <K, Q, W, X, I, S, R, E, A, B>(
8
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
9
+ b: B,
10
+ f: (b: B, a: A) => B,
11
+ ) => B;
12
+ foldRight: <K, Q, W, X, I, S, R, E, A, B>(
13
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
10
14
  b: Eval<B>,
11
15
  f: (a: A, b: Eval<B>) => Eval<B>,
12
- ): Eval<B>;
16
+ ) => Eval<B>;
13
17
  }
14
18
 
15
19
  /**
@@ -20,37 +24,14 @@ export interface FoldableOps {}
20
24
  export const Foldable: FoldableOps = {};
21
25
 
22
26
  /**
23
- * @tsplus fluent fncts.Kind foldLeft
27
+ * @tsplus static fncts.FoldableOps foldMap
24
28
  */
25
- export function foldLeft<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
26
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
27
- b: B,
28
- f: (b: B, a: A) => B,
29
- /** @tsplus auto */ F: Foldable<F>,
30
- ): B {
31
- return F.foldLeft(fa, b, f);
32
- }
33
-
34
- /**
35
- * @tsplus fluent fncts.Kind foldRight
36
- */
37
- export function foldRight<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
38
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
39
- b: Eval<B>,
40
- f: (a: A, b: Eval<B>) => Eval<B>,
41
- /** @tsplus auto */ F: Foldable<F>,
42
- ): Eval<B> {
43
- return F.foldRight(fa, b, f);
44
- }
45
-
46
- /**
47
- * @tsplus fluent fncts.Kind foldMap
48
- */
49
- export function foldMap<F extends HKT, K, Q, W, X, I, S, R, E, A, M>(
50
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
29
+ export function foldMap<F extends HKT, FC = HKT.None>(
30
+ F: Foldable<F, FC>,
31
+ ): <K, Q, W, X, I, S, R, E, A, M>(
32
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
51
33
  f: (a: A) => M,
52
- /** @tsplus auto */ F: Foldable<F>,
53
34
  /** @tsplus auto */ M: Monoid<M>,
54
- ): M {
55
- return fa.foldLeft(M.nat, (b, a) => M.combine(b, f(a)));
35
+ ) => M {
36
+ return (fa, f, M) => F.foldLeft(fa, M.nat, (b, a) => M.combine(b, f(a)));
56
37
  }
@@ -4,17 +4,17 @@ import type { Monoid } from "@fncts/base/typeclass/Monoid";
4
4
  /**
5
5
  * @tsplus type fncts.FoldableWithIndex
6
6
  */
7
- export interface FoldableWithIndex<F extends HKT> extends Foldable<F> {
8
- foldLeftWithIndex<K, Q, W, X, I, S, R, E, A, B>(
9
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
7
+ export interface FoldableWithIndex<F extends HKT, FC = HKT.None> extends Foldable<F, FC> {
8
+ foldLeftWithIndex: <K, Q, W, X, I, S, R, E, A, B>(
9
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
10
10
  b: B,
11
11
  f: (i: HKT.IndexFor<F, K>, b: B, a: A) => B,
12
- ): B;
13
- foldRightWithIndex<K, Q, W, X, I, S, R, E, A, B>(
14
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
12
+ ) => B;
13
+ foldRightWithIndex: <K, Q, W, X, I, S, R, E, A, B>(
14
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
15
15
  b: Eval<B>,
16
16
  f: (i: HKT.IndexFor<F, K>, a: A, b: Eval<B>) => Eval<B>,
17
- ): Eval<B>;
17
+ ) => Eval<B>;
18
18
  }
19
19
 
20
20
  /**
@@ -25,37 +25,14 @@ export interface FoldableWithIndexOps {}
25
25
  export const FoldableWithIndex: FoldableWithIndexOps = {};
26
26
 
27
27
  /**
28
- * @tsplus fluent fncts.Kind foldLeftWithIndex
28
+ * @tsplus static fncts.FoldableWithIndexOps foldMapWithIndex
29
29
  */
30
- export function foldLeftWithIndex<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
31
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
32
- b: B,
33
- f: (i: HKT.IndexFor<F, K>, b: B, a: A) => B,
34
- /** @tsplus auto */ F: FoldableWithIndex<F>,
35
- ): B {
36
- return F.foldLeftWithIndex(fa, b, f);
37
- }
38
-
39
- /**
40
- * @tsplus fluent fncts.Kind foldRightWithIndex
41
- */
42
- export function foldRightWithIndex<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
43
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
44
- b: Eval<B>,
45
- f: (i: HKT.IndexFor<F, K>, a: A, b: Eval<B>) => Eval<B>,
46
- /** @tsplus auto */ F: FoldableWithIndex<F>,
47
- ): Eval<B> {
48
- return F.foldRightWithIndex(fa, b, f);
49
- }
50
-
51
- /**
52
- * @tsplus fluent fncts.Kind foldMapWithIndex
53
- */
54
- export function foldMapWithIndex<F extends HKT, K, Q, W, X, I, S, R, E, A, M>(
55
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
30
+ export function foldMapWithIndex<F extends HKT, FC = HKT.None>(
31
+ F: FoldableWithIndex<F, FC>,
32
+ ): <K, Q, W, X, I, S, R, E, A, M>(
33
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
56
34
  f: (k: HKT.IndexFor<F, K>, a: A) => M,
57
35
  /** @tsplus auto */ M: Monoid<M>,
58
- /** @tsplus auto */ F: FoldableWithIndex<F>,
59
- ): M {
60
- return fa.foldLeftWithIndex(M.nat, (i, b, a) => M.combine(b, f(i, a)));
36
+ ) => M {
37
+ return (fa, f, M) => F.foldLeftWithIndex(fa, M.nat, (i, b, a) => M.combine(b, f(i, a)));
61
38
  }
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @tsplus type fncts.Functor
3
3
  */
4
- export interface Functor<F extends HKT> extends HKT.Typeclass<F> {
5
- map<K, Q, W, X, I, S, R, E, A, B>(
6
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
4
+ export interface Functor<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F, FC> {
5
+ readonly map: <K, Q, W, X, I, S, R, E, A, B>(
6
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
7
7
  f: (a: A) => B,
8
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
8
+ ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
9
9
  }
10
10
 
11
11
  /**
@@ -16,23 +16,13 @@ export interface FunctorOps {}
16
16
  export const Functor: FunctorOps = {};
17
17
 
18
18
  /**
19
- * @tsplus fluent fncts.Kind map
19
+ * @tsplus static fncts.FunctorOps as
20
20
  */
21
- export function map<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
22
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
23
- f: (a: A) => B,
24
- /** @tsplus auto */ F: Functor<F>,
25
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B> {
26
- return F.map(fa, f);
27
- }
28
-
29
- /**
30
- * @tsplus fluent fncts.Kind as
31
- */
32
- export function as<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(
33
- fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>,
21
+ export function as<F extends HKT, FC = HKT.None>(
22
+ F: Functor<F, FC>,
23
+ ): <K, Q, W, X, I, S, R, E, A, B>(
24
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
34
25
  b: Lazy<B>,
35
- /** @tsplus auto */ F: Functor<F>,
36
- ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B> {
37
- return fa.map(() => b(), F);
26
+ ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B> {
27
+ return F.map;
38
28
  }
@@ -1,10 +1,10 @@
1
1
  import type { Functor } from "@fncts/base/typeclass/Functor";
2
2
 
3
- export interface FunctorWithIndex<F extends HKT> extends Functor<F> {
4
- mapWithIndex<K, W, Q, X, I, S, R, E, A, B>(
5
- fa: HKT.Kind<F, K, W, Q, X, I, S, R, E, A>,
3
+ export interface FunctorWithIndex<F extends HKT, FC = HKT.None> extends Functor<F, FC> {
4
+ readonly mapWithIndex: <K, W, Q, X, I, S, R, E, A, B>(
5
+ fa: HKT.Kind<F, FC, K, W, Q, X, I, S, R, E, A>,
6
6
  f: (i: HKT.IndexFor<F, K>, a: A) => B,
7
- ): HKT.Kind<F, K, W, Q, X, I, S, R, E, B>;
7
+ ) => HKT.Kind<F, FC, K, W, Q, X, I, S, R, E, B>;
8
8
  }
9
9
 
10
10
  /**
@@ -9,9 +9,7 @@ export type GuardTypeId = typeof GuardTypeId;
9
9
  */
10
10
  export class Guard<A> {
11
11
  readonly _typeId: GuardTypeId = GuardTypeId;
12
- readonly [HKT.F]!: GuardF;
13
- readonly [HKT.A]!: () => A;
14
- readonly [HKT.T]!: Guard<HKT._A<this>>;
12
+ declare _A: () => A;
15
13
  constructor(readonly is: Refinement<unknown, A>) {}
16
14
  }
17
15
 
@@ -1,7 +1,7 @@
1
1
  import type { Applicative } from "@fncts/base/typeclass/Applicative";
2
2
  import type { FlatMap } from "@fncts/base/typeclass/Chain";
3
3
 
4
- export interface Monad<F extends HKT> extends Applicative<F>, FlatMap<F> {}
4
+ export interface Monad<F extends HKT, FC = HKT.None> extends Applicative<F, FC>, FlatMap<F, FC> {}
5
5
 
6
6
  /**
7
7
  * @tsplus type fncts.MonadOps