@fncts/base 0.0.1 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (830) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +21 -15
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/Iterable/api.cjs +23 -37
  4. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  5. package/_cjs/collection/Iterable.cjs +3 -3
  6. package/_cjs/collection/compat/Array/api.cjs +1 -1
  7. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  8. package/_cjs/collection/compat/Array.cjs +2 -2
  9. package/_cjs/collection/immutable/Conc/api.cjs +41 -53
  10. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  11. package/_cjs/collection/immutable/Conc/constructors.cjs +1 -1
  12. package/_cjs/collection/immutable/Conc/definition.cjs +49 -39
  13. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  14. package/_cjs/collection/immutable/Conc.cjs +6 -6
  15. package/_cjs/collection/immutable/Dictionary/definition.cjs +4 -2
  16. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  17. package/_cjs/collection/immutable/HashMap/api.cjs +35 -108
  18. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  19. package/_cjs/collection/immutable/HashMap/definition.cjs +19 -15
  20. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  21. package/_cjs/collection/immutable/HashMap.cjs +2 -2
  22. package/_cjs/collection/immutable/HashSet/api.cjs +10 -10
  23. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  24. package/_cjs/collection/immutable/HashSet.cjs +2 -2
  25. package/_cjs/collection/immutable/ImmutableArray/api.cjs +153 -248
  26. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  27. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +12 -10
  28. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  29. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +153 -157
  30. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  31. package/_cjs/collection/immutable/ImmutableArray.cjs +4 -4
  32. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +118 -181
  33. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  34. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +3 -0
  35. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  36. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +45 -81
  37. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  38. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs +5 -5
  39. package/_cjs/collection/immutable/List/api.cjs +4 -7
  40. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  41. package/_cjs/collection/immutable/List/constructors.cjs +1 -1
  42. package/_cjs/collection/immutable/List.cjs +5 -5
  43. package/_cjs/collection/immutable/Queue.cjs +4 -4
  44. package/_cjs/collection/immutable/RoseTree/api.cjs +485 -0
  45. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -0
  46. package/_cjs/collection/immutable/RoseTree/definition.cjs +58 -0
  47. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -0
  48. package/_cjs/collection/immutable/RoseTree.cjs +32 -0
  49. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -0
  50. package/_cjs/collection/immutable/SortedMap/api.cjs +65 -65
  51. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  52. package/_cjs/collection/immutable/SortedMap.cjs +5 -5
  53. package/_cjs/collection/immutable/Vector/api.cjs +70 -15
  54. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  55. package/_cjs/collection/immutable/Vector/definition.cjs +13 -11
  56. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  57. package/_cjs/collection/immutable/Vector.cjs +2 -2
  58. package/_cjs/collection/mutable/HashMap.cjs +5 -5
  59. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  60. package/_cjs/collection/mutable/HashSet.cjs +4 -4
  61. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  62. package/_cjs/control/Eval/api.cjs +7 -1
  63. package/_cjs/control/Eval/api.cjs.map +1 -1
  64. package/_cjs/control/Eval/definition.cjs +7 -0
  65. package/_cjs/control/Eval/definition.cjs.map +1 -1
  66. package/_cjs/control/Eval/instance.cjs +14 -25
  67. package/_cjs/control/Eval/instance.cjs.map +1 -1
  68. package/_cjs/control/Eval.cjs +5 -5
  69. package/_cjs/control/Z/api.cjs +2 -2
  70. package/_cjs/control/Z/definition.cjs +10 -4
  71. package/_cjs/control/Z/definition.cjs.map +1 -1
  72. package/_cjs/control/Z/instances.cjs +7 -14
  73. package/_cjs/control/Z/instances.cjs.map +1 -1
  74. package/_cjs/control/Z/runtime.cjs +2 -2
  75. package/_cjs/control/Z.cjs +4 -4
  76. package/_cjs/data/Branded/definition.cjs +29 -0
  77. package/_cjs/data/Branded/definition.cjs.map +1 -0
  78. package/_cjs/data/Branded/derivations.cjs +58 -0
  79. package/_cjs/data/Branded/derivations.cjs.map +1 -0
  80. package/_cjs/data/Branded.cjs +32 -0
  81. package/_cjs/data/Branded.cjs.map +1 -0
  82. package/_cjs/data/Cause/api/fold.cjs +2 -0
  83. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  84. package/_cjs/data/Cause/api/unified.cjs +2 -2
  85. package/_cjs/data/Cause/api.cjs +30 -7
  86. package/_cjs/data/Cause/api.cjs.map +1 -1
  87. package/_cjs/data/Cause/definition.cjs +3 -3
  88. package/_cjs/data/Cause.cjs +2 -2
  89. package/_cjs/data/Const/api.cjs +3 -7
  90. package/_cjs/data/Const/api.cjs.map +1 -1
  91. package/_cjs/data/Const/definition.cjs +19 -1
  92. package/_cjs/data/Const/definition.cjs.map +1 -1
  93. package/_cjs/data/Const/instances.cjs +9 -20
  94. package/_cjs/data/Const/instances.cjs.map +1 -1
  95. package/_cjs/data/Const.cjs +3 -3
  96. package/_cjs/data/DecodeError/definition.cjs +308 -0
  97. package/_cjs/data/DecodeError/definition.cjs.map +1 -0
  98. package/_cjs/data/DecodeError.cjs +19 -0
  99. package/_cjs/data/DecodeError.cjs.map +1 -0
  100. package/_cjs/data/Decoder/api.cjs +217 -0
  101. package/_cjs/data/Decoder/api.cjs.map +1 -0
  102. package/_cjs/data/Decoder/definition.cjs +41 -0
  103. package/_cjs/data/Decoder/definition.cjs.map +1 -0
  104. package/_cjs/data/Decoder.cjs +32 -0
  105. package/_cjs/data/Decoder.cjs.map +1 -0
  106. package/_cjs/data/Duration/api.cjs +22 -9
  107. package/_cjs/data/Duration/api.cjs.map +1 -1
  108. package/_cjs/data/Duration/definition.cjs +1 -1
  109. package/_cjs/data/Duration.cjs +2 -2
  110. package/_cjs/data/Either/api/align.cjs +1 -1
  111. package/_cjs/data/Either/api/alignWith.cjs +2 -0
  112. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  113. package/_cjs/data/Either/api.cjs +110 -47
  114. package/_cjs/data/Either/api.cjs.map +1 -1
  115. package/_cjs/data/Either/constructors.cjs +1 -1
  116. package/_cjs/data/Either/definition.cjs +39 -10
  117. package/_cjs/data/Either/definition.cjs.map +1 -1
  118. package/_cjs/data/Either/destructors.cjs +2 -0
  119. package/_cjs/data/Either/destructors.cjs.map +1 -1
  120. package/_cjs/data/Either/instances.cjs +123 -40
  121. package/_cjs/data/Either/instances.cjs.map +1 -1
  122. package/_cjs/data/Either.cjs +5 -5
  123. package/_cjs/data/Environment/api.cjs +29 -8
  124. package/_cjs/data/Environment/api.cjs.map +1 -1
  125. package/_cjs/data/Environment.cjs +2 -2
  126. package/_cjs/data/Exit/api.cjs +1 -1
  127. package/_cjs/data/Exit/constructors.cjs +1 -1
  128. package/_cjs/data/Exit/definition.cjs +2 -2
  129. package/_cjs/data/Exit.cjs +3 -3
  130. package/_cjs/data/FiberId/api.cjs +1 -1
  131. package/_cjs/data/FiberId/constructors.cjs +2 -2
  132. package/_cjs/data/FiberId/definition.cjs +1 -1
  133. package/_cjs/data/FiberId.cjs +3 -3
  134. package/_cjs/data/Identity/api.cjs +35 -6
  135. package/_cjs/data/Identity/api.cjs.map +1 -1
  136. package/_cjs/data/Identity/definition.cjs +10 -1
  137. package/_cjs/data/Identity/definition.cjs.map +1 -1
  138. package/_cjs/data/Identity/instances.cjs +12 -26
  139. package/_cjs/data/Identity/instances.cjs.map +1 -1
  140. package/_cjs/data/Identity.cjs +3 -3
  141. package/_cjs/data/Interval.cjs +154 -0
  142. package/_cjs/data/Interval.cjs.map +1 -0
  143. package/_cjs/data/Maybe/api.cjs +31 -44
  144. package/_cjs/data/Maybe/api.cjs.map +1 -1
  145. package/_cjs/data/Maybe/definition.cjs +46 -19
  146. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  147. package/_cjs/data/Maybe/destructors.cjs +1 -0
  148. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  149. package/_cjs/data/Maybe/instances.cjs +62 -42
  150. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  151. package/_cjs/data/Maybe.cjs +5 -5
  152. package/_cjs/data/Newtype.cjs +5 -3
  153. package/_cjs/data/Newtype.cjs.map +1 -1
  154. package/_cjs/data/Patch/api.cjs +1 -1
  155. package/_cjs/data/Patch/api.cjs.map +1 -1
  156. package/_cjs/data/Patch.cjs +2 -2
  157. package/_cjs/data/Predicate.cjs +2 -2
  158. package/_cjs/data/Refinement/api.cjs +0 -4
  159. package/_cjs/data/Refinement/api.cjs.map +1 -1
  160. package/_cjs/data/Refinement.cjs +2 -2
  161. package/_cjs/data/Struct/api.cjs +1 -1
  162. package/_cjs/data/Struct/definition.cjs +4 -2
  163. package/_cjs/data/Struct/definition.cjs.map +1 -1
  164. package/_cjs/data/Tag.cjs +2 -2
  165. package/_cjs/data/These/api.cjs +299 -0
  166. package/_cjs/data/These/api.cjs.map +1 -0
  167. package/_cjs/data/These/constructors.cjs +25 -5
  168. package/_cjs/data/These/constructors.cjs.map +1 -1
  169. package/_cjs/data/These/definition.cjs +16 -0
  170. package/_cjs/data/These/definition.cjs.map +1 -1
  171. package/_cjs/data/These/destructors.cjs +70 -0
  172. package/_cjs/data/These/destructors.cjs.map +1 -1
  173. package/_cjs/data/These/instances.cjs +54 -0
  174. package/_cjs/data/These/instances.cjs.map +1 -0
  175. package/_cjs/data/These.cjs +16 -3
  176. package/_cjs/data/These.cjs.map +1 -1
  177. package/_cjs/data/Trace.cjs +3 -3
  178. package/_cjs/data/TraceElement.cjs +1 -1
  179. package/_cjs/data/bigint/definition.cjs +6 -0
  180. package/_cjs/data/bigint/definition.cjs.map +1 -0
  181. package/_cjs/data/bigint/instances.cjs +24 -0
  182. package/_cjs/data/bigint/instances.cjs.map +1 -0
  183. package/_cjs/data/bigint.cjs +32 -0
  184. package/_cjs/data/bigint.cjs.map +1 -0
  185. package/_cjs/data/boolean/definition.cjs +6 -0
  186. package/_cjs/data/boolean/definition.cjs.map +1 -0
  187. package/_cjs/data/boolean/instances.cjs +24 -0
  188. package/_cjs/data/boolean/instances.cjs.map +1 -0
  189. package/_cjs/data/boolean.cjs +32 -0
  190. package/_cjs/data/boolean.cjs.map +1 -0
  191. package/_cjs/data/exceptions/InterruptedException.cjs +1 -1
  192. package/_cjs/data/exceptions.cjs +7 -7
  193. package/_cjs/data/function.cjs +3 -3
  194. package/_cjs/data/number/instances.cjs +19 -6
  195. package/_cjs/data/number/instances.cjs.map +1 -1
  196. package/_cjs/data/number.cjs +3 -3
  197. package/_cjs/data/object/instances.cjs +24 -0
  198. package/_cjs/data/object/instances.cjs.map +1 -0
  199. package/_cjs/data/object.cjs +1 -1
  200. package/_cjs/data/string/instances.cjs +25 -10
  201. package/_cjs/data/string/instances.cjs.map +1 -1
  202. package/_cjs/data/string.cjs +3 -3
  203. package/_cjs/internal/AtomicBoolean.cjs +1 -1
  204. package/_cjs/internal/AtomicNumber.cjs +1 -1
  205. package/_cjs/internal/Stack.cjs +4 -0
  206. package/_cjs/internal/Stack.cjs.map +1 -1
  207. package/_cjs/json/EitherJson.cjs +33 -0
  208. package/_cjs/json/EitherJson.cjs.map +1 -0
  209. package/_cjs/json/MaybeJson.cjs +31 -0
  210. package/_cjs/json/MaybeJson.cjs.map +1 -0
  211. package/_cjs/json/TheseJson.cjs +37 -0
  212. package/_cjs/json/TheseJson.cjs.map +1 -0
  213. package/_cjs/optics/At.cjs +2 -2
  214. package/_cjs/optics/Fold.cjs +1 -1
  215. package/_cjs/optics/Getter.cjs +1 -1
  216. package/_cjs/optics/Index.cjs +2 -2
  217. package/_cjs/optics/Iso.cjs +2 -2
  218. package/_cjs/optics/Lens.cjs +2 -2
  219. package/_cjs/optics/Optional/definition.cjs +6 -4
  220. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  221. package/_cjs/optics/Optional.cjs +2 -2
  222. package/_cjs/optics/Prism.cjs +4 -4
  223. package/_cjs/optics/Setter.cjs +1 -1
  224. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  225. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  226. package/_cjs/optics/Traversal/api/fromTraversable.cjs +4 -4
  227. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  228. package/_cjs/optics/Traversal/definition.cjs +17 -12
  229. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  230. package/_cjs/optics/Traversal.cjs +3 -3
  231. package/_cjs/typeclass/Align.cjs +0 -20
  232. package/_cjs/typeclass/Align.cjs.map +1 -1
  233. package/_cjs/typeclass/Alt.cjs +5 -15
  234. package/_cjs/typeclass/Alt.cjs.map +1 -1
  235. package/_cjs/typeclass/Alternative.cjs +0 -23
  236. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  237. package/_cjs/typeclass/Applicative.cjs +0 -22
  238. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  239. package/_cjs/typeclass/ApplicativeExcept.cjs +40 -34
  240. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  241. package/_cjs/typeclass/Apply.cjs +93 -49
  242. package/_cjs/typeclass/Apply.cjs.map +1 -1
  243. package/_cjs/typeclass/Chain.cjs +40 -17
  244. package/_cjs/typeclass/Chain.cjs.map +1 -1
  245. package/_cjs/typeclass/Closure.cjs +1 -4
  246. package/_cjs/typeclass/Closure.cjs.map +1 -1
  247. package/_cjs/typeclass/Eq/definition.cjs +18 -0
  248. package/_cjs/typeclass/Eq/definition.cjs.map +1 -0
  249. package/_cjs/typeclass/Eq/derivations.cjs +59 -0
  250. package/_cjs/typeclass/Eq/derivations.cjs.map +1 -0
  251. package/_cjs/typeclass/Eq.cjs +11 -13
  252. package/_cjs/typeclass/Eq.cjs.map +1 -1
  253. package/_cjs/typeclass/Equatable.cjs +3 -3
  254. package/_cjs/typeclass/Fail.cjs +6 -12
  255. package/_cjs/typeclass/Fail.cjs.map +1 -1
  256. package/_cjs/typeclass/Filterable.cjs +31 -18
  257. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  258. package/_cjs/typeclass/FilterableWithIndex.cjs +0 -26
  259. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  260. package/_cjs/typeclass/Foldable.cjs +33 -19
  261. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  262. package/_cjs/typeclass/FoldableWithIndex.cjs +33 -21
  263. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  264. package/_cjs/typeclass/Functor.cjs +19 -16
  265. package/_cjs/typeclass/Functor.cjs.map +1 -1
  266. package/_cjs/typeclass/FunctorWithIndex.cjs +0 -21
  267. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  268. package/_cjs/typeclass/Guard/api.cjs +40 -0
  269. package/_cjs/typeclass/Guard/api.cjs.map +1 -0
  270. package/_cjs/typeclass/Guard/definition.cjs +40 -0
  271. package/_cjs/typeclass/Guard/definition.cjs.map +1 -0
  272. package/_cjs/typeclass/Guard/derivations.cjs +85 -0
  273. package/_cjs/typeclass/Guard/derivations.cjs.map +1 -0
  274. package/_cjs/typeclass/Guard.cjs +32 -0
  275. package/_cjs/typeclass/Guard.cjs.map +1 -0
  276. package/_cjs/typeclass/HashEq.cjs +3 -3
  277. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  278. package/_cjs/typeclass/Hashable.cjs +2 -2
  279. package/_cjs/typeclass/Monad.cjs +0 -22
  280. package/_cjs/typeclass/Monad.cjs.map +1 -1
  281. package/_cjs/typeclass/MonadExcept.cjs +12 -19
  282. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  283. package/_cjs/typeclass/Monoid.cjs +56 -2
  284. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  285. package/_cjs/typeclass/Nil.cjs +10 -0
  286. package/_cjs/typeclass/Nil.cjs.map +1 -1
  287. package/_cjs/typeclass/Ord/api/contramap.cjs +2 -4
  288. package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
  289. package/_cjs/typeclass/Ord/api/max.cjs +1 -1
  290. package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
  291. package/_cjs/typeclass/Ord/api/min.cjs +1 -1
  292. package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
  293. package/_cjs/typeclass/Ord/api.cjs +3 -3
  294. package/_cjs/typeclass/Ord/definition.cjs +2 -3
  295. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  296. package/_cjs/typeclass/Ord/instances.cjs +7 -7
  297. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  298. package/_cjs/typeclass/Ord.cjs +3 -3
  299. package/_cjs/typeclass/Pointed.cjs +6 -11
  300. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  301. package/_cjs/typeclass/Semialign.cjs +77 -94
  302. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  303. package/_cjs/typeclass/Semigroup/api.cjs +2 -2
  304. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  305. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  306. package/_cjs/typeclass/Semigroup/derivations.cjs +63 -0
  307. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -0
  308. package/_cjs/typeclass/Semigroup.cjs +2 -2
  309. package/_cjs/typeclass/Semimonoidal.cjs +9 -13
  310. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  311. package/_cjs/typeclass/Showable/show.cjs +11 -11
  312. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  313. package/_cjs/typeclass/Showable.cjs +2 -2
  314. package/_cjs/typeclass/Traversable.cjs +26 -34
  315. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  316. package/_cjs/typeclass/TraversableWithIndex.cjs +7 -38
  317. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  318. package/_cjs/typeclass/Witherable.cjs +41 -42
  319. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  320. package/_cjs/typeclass/WitherableWithIndex.cjs +41 -50
  321. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  322. package/_cjs/typeclass/builtin.cjs +1 -1
  323. package/_cjs/typeclass.cjs +49 -36
  324. package/_cjs/typeclass.cjs.map +1 -1
  325. package/_cjs/types.cjs +3 -3
  326. package/_cjs/util/predicates.cjs +5 -0
  327. package/_cjs/util/predicates.cjs.map +1 -1
  328. package/_mjs/collection/Iterable/api/traverseConc.mjs +20 -15
  329. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  330. package/_mjs/collection/Iterable/api.mjs +21 -31
  331. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  332. package/_mjs/collection/compat/Array/api.mjs +1 -1
  333. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  334. package/_mjs/collection/immutable/Conc/api.mjs +35 -36
  335. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  336. package/_mjs/collection/immutable/Conc/definition.mjs +48 -39
  337. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  338. package/_mjs/collection/immutable/Dictionary/definition.mjs +3 -2
  339. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  340. package/_mjs/collection/immutable/HashMap/api.mjs +26 -66
  341. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  342. package/_mjs/collection/immutable/HashMap/definition.mjs +18 -15
  343. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  344. package/_mjs/collection/immutable/HashSet/api.mjs +5 -5
  345. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  346. package/_mjs/collection/immutable/ImmutableArray/api.mjs +135 -177
  347. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  348. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +11 -10
  349. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  350. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +151 -138
  351. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  352. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +108 -142
  353. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  354. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +2 -0
  355. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  356. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +46 -67
  357. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  358. package/_mjs/collection/immutable/List/api.mjs +4 -5
  359. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  360. package/_mjs/collection/immutable/RoseTree/api.mjs +447 -0
  361. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -0
  362. package/_mjs/collection/immutable/RoseTree/definition.mjs +35 -0
  363. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -0
  364. package/_mjs/collection/immutable/RoseTree.mjs +4 -0
  365. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -0
  366. package/_mjs/collection/immutable/SortedMap/api.mjs +65 -65
  367. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  368. package/_mjs/collection/immutable/Vector/api.mjs +59 -15
  369. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  370. package/_mjs/collection/immutable/Vector/definition.mjs +12 -11
  371. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  372. package/_mjs/collection/mutable/HashMap.mjs +5 -5
  373. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  374. package/_mjs/collection/mutable/HashSet.mjs +4 -4
  375. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  376. package/_mjs/control/Eval/api.mjs +5 -2
  377. package/_mjs/control/Eval/api.mjs.map +1 -1
  378. package/_mjs/control/Eval/definition.mjs +1 -0
  379. package/_mjs/control/Eval/definition.mjs.map +1 -1
  380. package/_mjs/control/Eval/instance.mjs +15 -18
  381. package/_mjs/control/Eval/instance.mjs.map +1 -1
  382. package/_mjs/control/Z/definition.mjs +2 -0
  383. package/_mjs/control/Z/definition.mjs.map +1 -1
  384. package/_mjs/control/Z/instances.mjs +7 -8
  385. package/_mjs/control/Z/instances.mjs.map +1 -1
  386. package/_mjs/data/Branded/definition.mjs +18 -0
  387. package/_mjs/data/Branded/definition.mjs.map +1 -0
  388. package/_mjs/data/Branded/derivations.mjs +39 -0
  389. package/_mjs/data/Branded/derivations.mjs.map +1 -0
  390. package/_mjs/data/Branded.mjs +4 -0
  391. package/_mjs/data/Branded.mjs.map +1 -0
  392. package/_mjs/data/Cause/api/fold.mjs +2 -0
  393. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  394. package/_mjs/data/Cause/api.mjs +20 -0
  395. package/_mjs/data/Cause/api.mjs.map +1 -1
  396. package/_mjs/data/Const/api.mjs +3 -3
  397. package/_mjs/data/Const/api.mjs.map +1 -1
  398. package/_mjs/data/Const/definition.mjs +13 -1
  399. package/_mjs/data/Const/definition.mjs.map +1 -1
  400. package/_mjs/data/Const/instances.mjs +7 -15
  401. package/_mjs/data/Const/instances.mjs.map +1 -1
  402. package/_mjs/data/DecodeError/definition.mjs +226 -0
  403. package/_mjs/data/DecodeError/definition.mjs.map +1 -0
  404. package/_mjs/data/DecodeError.mjs +3 -0
  405. package/_mjs/data/DecodeError.mjs.map +1 -0
  406. package/_mjs/data/Decoder/api.mjs +179 -0
  407. package/_mjs/data/Decoder/api.mjs.map +1 -0
  408. package/_mjs/data/Decoder/definition.mjs +24 -0
  409. package/_mjs/data/Decoder/definition.mjs.map +1 -0
  410. package/_mjs/data/Decoder.mjs +4 -0
  411. package/_mjs/data/Decoder.mjs.map +1 -0
  412. package/_mjs/data/Duration/api.mjs +17 -8
  413. package/_mjs/data/Duration/api.mjs.map +1 -1
  414. package/_mjs/data/Either/api/alignWith.mjs +2 -0
  415. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  416. package/_mjs/data/Either/api.mjs +91 -21
  417. package/_mjs/data/Either/api.mjs.map +1 -1
  418. package/_mjs/data/Either/definition.mjs +25 -5
  419. package/_mjs/data/Either/definition.mjs.map +1 -1
  420. package/_mjs/data/Either/destructors.mjs +2 -0
  421. package/_mjs/data/Either/destructors.mjs.map +1 -1
  422. package/_mjs/data/Either/instances.mjs +109 -39
  423. package/_mjs/data/Either/instances.mjs.map +1 -1
  424. package/_mjs/data/Environment/api.mjs +23 -7
  425. package/_mjs/data/Environment/api.mjs.map +1 -1
  426. package/_mjs/data/Identity/api.mjs +24 -5
  427. package/_mjs/data/Identity/api.mjs.map +1 -1
  428. package/_mjs/data/Identity/definition.mjs +3 -1
  429. package/_mjs/data/Identity/definition.mjs.map +1 -1
  430. package/_mjs/data/Identity/instances.mjs +12 -18
  431. package/_mjs/data/Identity/instances.mjs.map +1 -1
  432. package/_mjs/data/Interval.mjs +114 -0
  433. package/_mjs/data/Interval.mjs.map +1 -0
  434. package/_mjs/data/Maybe/api.mjs +30 -35
  435. package/_mjs/data/Maybe/api.mjs.map +1 -1
  436. package/_mjs/data/Maybe/definition.mjs +37 -14
  437. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  438. package/_mjs/data/Maybe/destructors.mjs +1 -0
  439. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  440. package/_mjs/data/Maybe/instances.mjs +56 -39
  441. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  442. package/_mjs/data/Newtype.mjs +4 -3
  443. package/_mjs/data/Newtype.mjs.map +1 -1
  444. package/_mjs/data/Patch/api.mjs +1 -1
  445. package/_mjs/data/Patch/api.mjs.map +1 -1
  446. package/_mjs/data/Refinement/api.mjs +0 -4
  447. package/_mjs/data/Refinement/api.mjs.map +1 -1
  448. package/_mjs/data/Struct/definition.mjs +3 -2
  449. package/_mjs/data/Struct/definition.mjs.map +1 -1
  450. package/_mjs/data/These/api.mjs +262 -0
  451. package/_mjs/data/These/api.mjs.map +1 -0
  452. package/_mjs/data/These/constructors.mjs +14 -2
  453. package/_mjs/data/These/constructors.mjs.map +1 -1
  454. package/_mjs/data/These/definition.mjs +8 -0
  455. package/_mjs/data/These/definition.mjs.map +1 -1
  456. package/_mjs/data/These/destructors.mjs +53 -0
  457. package/_mjs/data/These/destructors.mjs.map +1 -1
  458. package/_mjs/data/These/instances.mjs +36 -0
  459. package/_mjs/data/These/instances.mjs.map +1 -0
  460. package/_mjs/data/These.mjs +1 -0
  461. package/_mjs/data/These.mjs.map +1 -1
  462. package/_mjs/data/bigint/definition.mjs +2 -0
  463. package/_mjs/data/bigint/definition.mjs.map +1 -0
  464. package/_mjs/data/bigint/instances.mjs +10 -0
  465. package/_mjs/data/bigint/instances.mjs.map +1 -0
  466. package/_mjs/data/bigint.mjs +4 -0
  467. package/_mjs/data/bigint.mjs.map +1 -0
  468. package/_mjs/data/boolean/definition.mjs +2 -0
  469. package/_mjs/data/boolean/definition.mjs.map +1 -0
  470. package/_mjs/data/boolean/instances.mjs +10 -0
  471. package/_mjs/data/boolean/instances.mjs.map +1 -0
  472. package/_mjs/data/boolean.mjs +4 -0
  473. package/_mjs/data/boolean.mjs.map +1 -0
  474. package/_mjs/data/number/instances.mjs +14 -4
  475. package/_mjs/data/number/instances.mjs.map +1 -1
  476. package/_mjs/data/object/instances.mjs +10 -0
  477. package/_mjs/data/object/instances.mjs.map +1 -0
  478. package/_mjs/data/string/instances.mjs +20 -8
  479. package/_mjs/data/string/instances.mjs.map +1 -1
  480. package/_mjs/internal/Stack.mjs +4 -0
  481. package/_mjs/internal/Stack.mjs.map +1 -1
  482. package/_mjs/json/EitherJson.mjs +18 -0
  483. package/_mjs/json/EitherJson.mjs.map +1 -0
  484. package/_mjs/json/MaybeJson.mjs +16 -0
  485. package/_mjs/json/MaybeJson.mjs.map +1 -0
  486. package/_mjs/json/TheseJson.mjs +22 -0
  487. package/_mjs/json/TheseJson.mjs.map +1 -0
  488. package/_mjs/optics/Optional/definition.mjs +5 -4
  489. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  490. package/_mjs/optics/Traversal/api/compose.mjs +1 -1
  491. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  492. package/_mjs/optics/Traversal/api/fromTraversable.mjs +5 -4
  493. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  494. package/_mjs/optics/Traversal/definition.mjs +14 -12
  495. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  496. package/_mjs/typeclass/Align.mjs +0 -11
  497. package/_mjs/typeclass/Align.mjs.map +1 -1
  498. package/_mjs/typeclass/Alt.mjs +4 -7
  499. package/_mjs/typeclass/Alt.mjs.map +1 -1
  500. package/_mjs/typeclass/Alternative.mjs +0 -13
  501. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  502. package/_mjs/typeclass/Applicative.mjs +0 -12
  503. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  504. package/_mjs/typeclass/ApplicativeExcept.mjs +32 -24
  505. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  506. package/_mjs/typeclass/Apply.mjs +85 -42
  507. package/_mjs/typeclass/Apply.mjs.map +1 -1
  508. package/_mjs/typeclass/Chain.mjs +33 -12
  509. package/_mjs/typeclass/Chain.mjs.map +1 -1
  510. package/_mjs/typeclass/Closure.mjs +1 -4
  511. package/_mjs/typeclass/Closure.mjs.map +1 -1
  512. package/_mjs/typeclass/Eq/definition.mjs +9 -0
  513. package/_mjs/typeclass/Eq/definition.mjs.map +1 -0
  514. package/_mjs/typeclass/Eq/derivations.mjs +46 -0
  515. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -0
  516. package/_mjs/typeclass/Eq.mjs +1 -11
  517. package/_mjs/typeclass/Eq.mjs.map +1 -1
  518. package/_mjs/typeclass/Fail.mjs +5 -7
  519. package/_mjs/typeclass/Fail.mjs.map +1 -1
  520. package/_mjs/typeclass/Filterable.mjs +27 -13
  521. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  522. package/_mjs/typeclass/FilterableWithIndex.mjs +0 -16
  523. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  524. package/_mjs/typeclass/Foldable.mjs +29 -12
  525. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  526. package/_mjs/typeclass/FoldableWithIndex.mjs +29 -13
  527. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  528. package/_mjs/typeclass/Functor.mjs +16 -9
  529. package/_mjs/typeclass/Functor.mjs.map +1 -1
  530. package/_mjs/typeclass/FunctorWithIndex.mjs +0 -12
  531. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  532. package/_mjs/typeclass/Guard/api.mjs +23 -0
  533. package/_mjs/typeclass/Guard/api.mjs.map +1 -0
  534. package/_mjs/typeclass/Guard/definition.mjs +23 -0
  535. package/_mjs/typeclass/Guard/definition.mjs.map +1 -0
  536. package/_mjs/typeclass/Guard/derivations.mjs +67 -0
  537. package/_mjs/typeclass/Guard/derivations.mjs.map +1 -0
  538. package/_mjs/typeclass/Guard.mjs +4 -0
  539. package/_mjs/typeclass/Guard.mjs.map +1 -0
  540. package/_mjs/typeclass/HashEq.mjs +3 -3
  541. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  542. package/_mjs/typeclass/Monad.mjs +0 -12
  543. package/_mjs/typeclass/Monad.mjs.map +1 -1
  544. package/_mjs/typeclass/MonadExcept.mjs +9 -13
  545. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  546. package/_mjs/typeclass/Monoid.mjs +50 -1
  547. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  548. package/_mjs/typeclass/Nil.mjs +8 -1
  549. package/_mjs/typeclass/Nil.mjs.map +1 -1
  550. package/_mjs/typeclass/Ord/api/contramap.mjs +2 -4
  551. package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
  552. package/_mjs/typeclass/Ord/api/max.mjs +1 -1
  553. package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
  554. package/_mjs/typeclass/Ord/api/min.mjs +1 -1
  555. package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
  556. package/_mjs/typeclass/Ord/definition.mjs +2 -3
  557. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  558. package/_mjs/typeclass/Ord/instances.mjs +7 -7
  559. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  560. package/_mjs/typeclass/Pointed.mjs +5 -4
  561. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  562. package/_mjs/typeclass/Semialign.mjs +67 -74
  563. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  564. package/_mjs/typeclass/Semigroup/api.mjs +2 -2
  565. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  566. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  567. package/_mjs/typeclass/Semigroup/derivations.mjs +50 -0
  568. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -0
  569. package/_mjs/typeclass/Semigroup.mjs +1 -1
  570. package/_mjs/typeclass/Semimonoidal.mjs +8 -6
  571. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  572. package/_mjs/typeclass/Showable/show.mjs +11 -11
  573. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  574. package/_mjs/typeclass/Traversable.mjs +25 -24
  575. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  576. package/_mjs/typeclass/TraversableWithIndex.mjs +6 -24
  577. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  578. package/_mjs/typeclass/Witherable.mjs +39 -32
  579. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  580. package/_mjs/typeclass/WitherableWithIndex.mjs +39 -37
  581. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  582. package/_mjs/typeclass.mjs +1 -0
  583. package/_mjs/typeclass.mjs.map +1 -1
  584. package/_mjs/util/predicates.mjs +3 -0
  585. package/_mjs/util/predicates.mjs.map +1 -1
  586. package/_src/collection/Iterable/api/traverseConc.ts +21 -29
  587. package/_src/collection/Iterable/api.ts +20 -34
  588. package/_src/collection/compat/Array/api.ts +1 -1
  589. package/_src/collection/immutable/Conc/api.ts +26 -46
  590. package/_src/collection/immutable/Conc/definition.ts +19 -8
  591. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  592. package/_src/collection/immutable/HashMap/api.ts +24 -81
  593. package/_src/collection/immutable/HashMap/definition.ts +7 -9
  594. package/_src/collection/immutable/HashMap/internal.ts +1 -1
  595. package/_src/collection/immutable/HashSet/api.ts +4 -4
  596. package/_src/collection/immutable/ImmutableArray/api.ts +180 -219
  597. package/_src/collection/immutable/ImmutableArray/definition.ts +6 -8
  598. package/_src/collection/immutable/ImmutableArray/instances.ts +156 -134
  599. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +87 -158
  600. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +4 -8
  601. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +39 -49
  602. package/_src/collection/immutable/List/api.ts +2 -6
  603. package/_src/collection/immutable/RoseTree/api.ts +278 -0
  604. package/_src/collection/immutable/RoseTree/definition.ts +29 -0
  605. package/_src/collection/immutable/RoseTree.ts +4 -0
  606. package/_src/collection/immutable/SortedMap/api.ts +56 -53
  607. package/_src/collection/immutable/Vector/api.ts +57 -17
  608. package/_src/collection/immutable/Vector/definition.ts +10 -0
  609. package/_src/collection/mutable/HashMap.ts +5 -5
  610. package/_src/collection/mutable/HashSet.ts +4 -4
  611. package/_src/control/Eval/api.ts +5 -1
  612. package/_src/control/Eval/definition.ts +5 -8
  613. package/_src/control/Eval/instance.ts +16 -15
  614. package/_src/control/Z/definition.ts +26 -19
  615. package/_src/control/Z/instances.ts +9 -8
  616. package/_src/data/Branded/definition.ts +47 -0
  617. package/_src/data/Branded/derivations.ts +57 -0
  618. package/_src/data/Branded.ts +4 -0
  619. package/_src/data/Cause/api/fold.ts +1 -0
  620. package/_src/data/Cause/api.ts +18 -0
  621. package/_src/data/Const/api.ts +3 -3
  622. package/_src/data/Const/definition.ts +22 -5
  623. package/_src/data/Const/instances.ts +12 -21
  624. package/_src/data/DecodeError/definition.ts +227 -0
  625. package/_src/data/DecodeError.ts +3 -0
  626. package/_src/data/Decoder/api.ts +198 -0
  627. package/_src/data/Decoder/definition.ts +25 -0
  628. package/_src/data/Decoder.ts +4 -0
  629. package/_src/data/Duration/api.ts +21 -14
  630. package/_src/data/Either/api/alignWith.ts +2 -0
  631. package/_src/data/Either/api.ts +85 -30
  632. package/_src/data/Either/definition.ts +41 -19
  633. package/_src/data/Either/destructors.ts +1 -0
  634. package/_src/data/Either/instances.ts +102 -51
  635. package/_src/data/Environment/api.ts +19 -4
  636. package/_src/data/Identity/api.ts +19 -4
  637. package/_src/data/Identity/definition.ts +7 -3
  638. package/_src/data/Identity/instances.ts +15 -8
  639. package/_src/data/Interval.ts +103 -0
  640. package/_src/data/Maybe/api.ts +21 -31
  641. package/_src/data/Maybe/definition.ts +31 -19
  642. package/_src/data/Maybe/destructors.ts +1 -0
  643. package/_src/data/Maybe/instances.ts +61 -34
  644. package/_src/data/Newtype.ts +11 -32
  645. package/_src/data/Patch/api.ts +1 -1
  646. package/_src/data/Refinement/api.ts +4 -2
  647. package/_src/data/Struct/definition.ts +1 -1
  648. package/_src/data/These/api.ts +184 -0
  649. package/_src/data/These/constructors.ts +10 -0
  650. package/_src/data/These/definition.ts +7 -0
  651. package/_src/data/These/destructors.ts +45 -0
  652. package/_src/data/These/instances.ts +43 -0
  653. package/_src/data/These.ts +1 -0
  654. package/_src/data/bigint/definition.ts +13 -0
  655. package/_src/data/bigint/instances.ts +8 -0
  656. package/_src/data/bigint.ts +4 -0
  657. package/_src/data/boolean/definition.ts +13 -0
  658. package/_src/data/boolean/instances.ts +8 -0
  659. package/_src/data/boolean.ts +4 -0
  660. package/_src/data/number/instances.ts +13 -3
  661. package/_src/data/object/instances.ts +7 -0
  662. package/_src/data/string/instances.ts +17 -5
  663. package/_src/internal/Stack.ts +4 -0
  664. package/_src/json/EitherJson.ts +28 -0
  665. package/_src/json/MaybeJson.ts +27 -0
  666. package/_src/json/TheseJson.ts +31 -0
  667. package/_src/optics/Optional/definition.ts +2 -2
  668. package/_src/optics/Traversal/api/compose.ts +1 -1
  669. package/_src/optics/Traversal/api/fromTraversable.ts +15 -41
  670. package/_src/optics/Traversal/definition.ts +21 -23
  671. package/_src/typeclass/Align.ts +4 -18
  672. package/_src/typeclass/Alt.ts +59 -90
  673. package/_src/typeclass/Alternative.ts +4 -20
  674. package/_src/typeclass/Applicative.ts +3 -23
  675. package/_src/typeclass/ApplicativeExcept.ts +94 -193
  676. package/_src/typeclass/Apply.ts +319 -509
  677. package/_src/typeclass/Chain.ts +127 -199
  678. package/_src/typeclass/Closure.ts +4 -20
  679. package/_src/typeclass/Eq/definition.ts +20 -0
  680. package/_src/typeclass/Eq/derivations.ts +61 -0
  681. package/_src/typeclass/Eq.ts +2 -36
  682. package/_src/typeclass/Fail.ts +28 -27
  683. package/_src/typeclass/Filterable.ts +70 -117
  684. package/_src/typeclass/FilterableWithIndex.ts +27 -131
  685. package/_src/typeclass/Foldable.ts +35 -52
  686. package/_src/typeclass/FoldableWithIndex.ts +40 -75
  687. package/_src/typeclass/Functor.ts +21 -59
  688. package/_src/typeclass/FunctorWithIndex.ts +6 -34
  689. package/_src/typeclass/Guard/api.ts +32 -0
  690. package/_src/typeclass/Guard/definition.ts +23 -0
  691. package/_src/typeclass/Guard/derivations.ts +80 -0
  692. package/_src/typeclass/Guard.ts +5 -0
  693. package/_src/typeclass/HashEq.ts +3 -4
  694. package/_src/typeclass/Monad.ts +3 -18
  695. package/_src/typeclass/MonadExcept.ts +9 -32
  696. package/_src/typeclass/Monoid.ts +60 -2
  697. package/_src/typeclass/Nil.ts +26 -17
  698. package/_src/typeclass/Ord/api/contramap.ts +2 -4
  699. package/_src/typeclass/Ord/api/max.ts +1 -1
  700. package/_src/typeclass/Ord/api/min.ts +1 -1
  701. package/_src/typeclass/Ord/definition.ts +3 -19
  702. package/_src/typeclass/Ord/instances.ts +6 -6
  703. package/_src/typeclass/Pointed.ts +29 -25
  704. package/_src/typeclass/Semialign.ts +308 -444
  705. package/_src/typeclass/Semigroup/api.ts +2 -2
  706. package/_src/typeclass/Semigroup/definition.ts +2 -6
  707. package/_src/typeclass/Semigroup/derivations.ts +64 -0
  708. package/_src/typeclass/Semigroup.ts +1 -1
  709. package/_src/typeclass/Semimonoidal.ts +55 -84
  710. package/_src/typeclass/Showable/show.ts +6 -8
  711. package/_src/typeclass/Traversable.ts +67 -157
  712. package/_src/typeclass/TraversableWithIndex.ts +37 -127
  713. package/_src/typeclass/Witherable.ts +120 -279
  714. package/_src/typeclass/WitherableWithIndex.ts +129 -337
  715. package/_src/typeclass.ts +2 -0
  716. package/_src/util/predicates.ts +4 -0
  717. package/collection/Iterable/api/traverseConc.d.ts +6 -4
  718. package/collection/Iterable/api.d.ts +5 -13
  719. package/collection/immutable/Conc/api.d.ts +15 -23
  720. package/collection/immutable/Conc/definition.d.ts +10 -7
  721. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  722. package/collection/immutable/HashMap/api.d.ts +15 -27
  723. package/collection/immutable/HashMap/definition.d.ts +6 -9
  724. package/collection/immutable/HashMap/internal.d.ts +1 -1
  725. package/collection/immutable/ImmutableArray/api.d.ts +42 -94
  726. package/collection/immutable/ImmutableArray/definition.d.ts +6 -8
  727. package/collection/immutable/ImmutableArray/instances.d.ts +86 -17
  728. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +26 -47
  729. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +4 -8
  730. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +1 -1
  731. package/collection/immutable/List/api.d.ts +1 -2
  732. package/collection/immutable/RoseTree/api.d.ts +63 -0
  733. package/collection/immutable/RoseTree/definition.d.ts +23 -0
  734. package/collection/immutable/RoseTree.d.ts +2 -0
  735. package/collection/immutable/SortedMap/api.d.ts +2 -1
  736. package/collection/immutable/Vector/api.d.ts +31 -8
  737. package/collection/immutable/Vector/definition.d.ts +10 -0
  738. package/control/Eval/api.d.ts +1 -0
  739. package/control/Eval/definition.d.ts +5 -8
  740. package/control/Eval/instance.d.ts +4 -1
  741. package/control/Z/definition.d.ts +23 -18
  742. package/control/Z/instances.d.ts +4 -3
  743. package/data/Branded/definition.d.ts +36 -0
  744. package/data/Branded/derivations.d.ts +24 -0
  745. package/data/Branded.d.ts +2 -0
  746. package/data/Cause/api.d.ts +7 -1
  747. package/data/Const/api.d.ts +1 -1
  748. package/data/Const/definition.d.ts +23 -7
  749. package/data/Const/instances.d.ts +4 -12
  750. package/data/DecodeError/definition.d.ts +141 -0
  751. package/data/DecodeError.d.ts +1 -0
  752. package/data/Decoder/api.d.ts +65 -0
  753. package/data/Decoder/definition.d.ts +24 -0
  754. package/data/Decoder.d.ts +2 -0
  755. package/data/Duration/api.d.ts +12 -8
  756. package/data/Either/api.d.ts +29 -17
  757. package/data/Either/definition.d.ts +31 -14
  758. package/data/Either/instances.d.ts +26 -11
  759. package/data/Environment/api.d.ts +5 -0
  760. package/data/Identity/api.d.ts +11 -0
  761. package/data/Identity/definition.d.ts +7 -2
  762. package/data/Identity/instances.d.ts +5 -9
  763. package/data/Interval.d.ts +71 -0
  764. package/data/Maybe/api.d.ts +3 -17
  765. package/data/Maybe/definition.d.ts +20 -14
  766. package/data/Maybe/instances.d.ts +14 -8
  767. package/data/Newtype.d.ts +8 -9
  768. package/data/Refinement/api.d.ts +2 -0
  769. package/data/Struct/definition.d.ts +1 -1
  770. package/data/These/api.d.ts +73 -0
  771. package/data/These/constructors.d.ts +7 -1
  772. package/data/These/definition.d.ts +5 -0
  773. package/data/These/destructors.d.ts +27 -1
  774. package/data/These/instances.d.ts +13 -0
  775. package/data/These.d.ts +1 -0
  776. package/data/bigint/definition.d.ts +13 -0
  777. package/data/bigint/instances.d.ts +7 -0
  778. package/data/bigint.d.ts +2 -0
  779. package/data/boolean/definition.d.ts +13 -0
  780. package/data/boolean/instances.d.ts +7 -0
  781. package/data/boolean.d.ts +2 -0
  782. package/data/number/instances.d.ts +8 -0
  783. package/data/object/instances.d.ts +7 -0
  784. package/data/string/instances.d.ts +10 -0
  785. package/internal/Stack.d.ts +1 -0
  786. package/json/EitherJson.d.ts +24 -0
  787. package/json/MaybeJson.d.ts +23 -0
  788. package/json/TheseJson.d.ts +26 -0
  789. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  790. package/optics/Traversal/definition.d.ts +4 -9
  791. package/package.json +4 -4
  792. package/typeclass/Align.d.ts +3 -10
  793. package/typeclass/Alt.d.ts +6 -19
  794. package/typeclass/Alternative.d.ts +4 -12
  795. package/typeclass/Applicative.d.ts +3 -12
  796. package/typeclass/ApplicativeExcept.d.ts +14 -39
  797. package/typeclass/Apply.d.ts +41 -72
  798. package/typeclass/Chain.d.ts +18 -28
  799. package/typeclass/Closure.d.ts +2 -12
  800. package/typeclass/Eq/definition.d.ts +17 -0
  801. package/typeclass/Eq/derivations.d.ts +24 -0
  802. package/typeclass/Eq.d.ts +2 -27
  803. package/typeclass/Fail.d.ts +4 -10
  804. package/typeclass/Filterable.d.ts +30 -51
  805. package/typeclass/FilterableWithIndex.d.ts +10 -53
  806. package/typeclass/Foldable.d.ts +19 -31
  807. package/typeclass/FoldableWithIndex.d.ts +20 -33
  808. package/typeclass/Functor.d.ts +11 -22
  809. package/typeclass/FunctorWithIndex.d.ts +3 -19
  810. package/typeclass/Guard/api.d.ts +20 -0
  811. package/typeclass/Guard/definition.d.ts +22 -0
  812. package/typeclass/Guard/derivations.d.ts +36 -0
  813. package/typeclass/Guard.d.ts +2 -0
  814. package/typeclass/HashEq.d.ts +1 -2
  815. package/typeclass/Monad.d.ts +3 -11
  816. package/typeclass/MonadExcept.d.ts +6 -17
  817. package/typeclass/Monoid.d.ts +24 -2
  818. package/typeclass/Nil.d.ts +7 -8
  819. package/typeclass/Ord/definition.d.ts +2 -14
  820. package/typeclass/Pointed.d.ts +4 -10
  821. package/typeclass/Semialign.d.ts +51 -63
  822. package/typeclass/Semigroup/definition.d.ts +3 -5
  823. package/typeclass/Semigroup/derivations.d.ts +25 -0
  824. package/typeclass/Semimonoidal.d.ts +5 -14
  825. package/typeclass/Traversable.d.ts +17 -57
  826. package/typeclass/TraversableWithIndex.d.ts +9 -52
  827. package/typeclass/Witherable.d.ts +22 -82
  828. package/typeclass/WitherableWithIndex.d.ts +26 -98
  829. package/typeclass.d.ts +1 -0
  830. package/util/predicates.d.ts +1 -0
@@ -1,19 +1,33 @@
1
- import type { FunctorMin } from "@fncts/base/typeclass/Functor";
2
-
3
- import { Functor } from "@fncts/base/typeclass/Functor";
1
+ import type { Functor } from "@fncts/base/typeclass/Functor";
4
2
 
5
3
  /**
6
4
  * @tsplus type fncts.Filterable
7
5
  */
8
- export interface Filterable<F extends HKT, FC = HKT.None> extends Functor<F, FC> {
9
- readonly filter_: filter_<F, FC>;
10
- readonly filter: filter<F, FC>;
11
- readonly filterMap_: filterMap_<F, FC>;
12
- readonly filterMap: filterMap<F, FC>;
13
- readonly partition_: partition_<F, FC>;
14
- readonly partition: partition<F, FC>;
15
- readonly partitionMap_: partitionMap_<F, FC>;
16
- readonly partitionMap: partitionMap<F, FC>;
6
+ export interface Filterable<F extends HKT> extends Functor<F> {
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>,
9
+ refinement: Refinement<A, B>,
10
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
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>,
13
+ predicate: Predicate<A>,
14
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
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>,
17
+ f: (a: A) => Maybe<B>,
18
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
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>,
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>];
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>,
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>];
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>,
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>];
17
31
  }
18
32
 
19
33
  /**
@@ -23,117 +37,56 @@ export interface FilterableOps {}
23
37
 
24
38
  export const Filterable: FilterableOps = {};
25
39
 
26
- export type FilterableMin<F extends HKT, FC = HKT.None> = FunctorMin<F, FC> & {
27
- readonly filter_: filter_<F, FC>;
28
- readonly filterMap_: filterMap_<F, FC>;
29
- readonly partition_: partition_<F, FC>;
30
- readonly partitionMap_: partitionMap_<F, FC>;
31
- };
32
-
33
40
  /**
34
- * @tsplus static fncts.FilterableOps __call
41
+ * @tsplus fluent fncts.Kind filter
35
42
  */
36
- export function mkFilterable<F extends HKT, FC = HKT.None>(F: FilterableMin<F, FC>): Filterable<F, FC>;
37
- export function mkFilterable<F>(F: FilterableMin<HKT.F<F>>): Filterable<HKT.F<F>> {
38
- return HKT.instance<Filterable<HKT.F<F>>>({
39
- ...Functor(F),
40
- filter_: F.filter_,
41
- filter:
42
- <A>(p: Predicate<A>) =>
43
- <K, Q, W, X, I, S, R, E>(fa: HKT.FK<F, K, Q, W, X, I, S, R, E, A>) =>
44
- F.filter_(fa, p),
45
- partition_: F.partition_,
46
- partition:
47
- <A>(p: Predicate<A>) =>
48
- <K, Q, W, X, I, S, R, E>(fa: HKT.FK<F, K, Q, W, X, I, S, R, E, A>) =>
49
- F.partition_(fa, p),
50
- filterMap_: F.filterMap_,
51
- filterMap: (f) => (fa) => F.filterMap_(fa, f),
52
- partitionMap_: F.partitionMap_,
53
- partitionMap: (f) => (fa) => F.partitionMap_(fa, f),
54
- });
55
- }
56
-
57
- export interface filter_<F extends HKT, C = HKT.None> {
58
- <K, Q, W, X, I, S, R, E, A, B extends A>(
59
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
60
- refinement: Refinement<A, B>,
61
- ): HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
62
- <K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, predicate: Predicate<A>): HKT.Kind<
63
- F,
64
- C,
65
- K,
66
- Q,
67
- W,
68
- X,
69
- I,
70
- S,
71
- R,
72
- E,
73
- A
74
- >;
75
- }
76
-
77
- export interface filter<F extends HKT, C = HKT.None> {
78
- <A, B extends A>(refinement: Refinement<A, B>): <K, Q, W, X, I, S, R, E>(
79
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
80
- ) => HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
81
- <A>(predicate: Predicate<A>): <K, Q, W, X, I, S, R, E>(
82
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
83
- ) => HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>;
84
- }
85
-
86
- export interface filterMap_<F extends HKT, C = HKT.None> {
87
- <K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Maybe<B>): HKT.Kind<
88
- F,
89
- C,
90
- K,
91
- Q,
92
- W,
93
- X,
94
- I,
95
- S,
96
- R,
97
- E,
98
- B
99
- >;
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);
100
54
  }
101
55
 
102
- export interface filterMap<F extends HKT, C = HKT.None> {
103
- <A, B>(f: (a: A) => Maybe<B>): <K, Q, W, X, I, S, R, E>(
104
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
105
- ) => HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
106
- }
107
-
108
- export interface partition_<F extends HKT, C = HKT.None> {
109
- <K, Q, W, X, I, S, R, E, A, B extends A>(
110
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
111
- refinement: Refinement<A, B>,
112
- ): readonly [HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>];
113
- <K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, predicate: Predicate<A>): readonly [
114
- HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
115
- HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
116
- ];
117
- }
118
-
119
- export interface partition<F extends HKT, C = HKT.None> {
120
- <A, B extends A>(refinement: Refinement<A, B>): <K, Q, W, X, I, S, R, E>(
121
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
122
- ) => readonly [HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>];
123
- <A>(predicate: Predicate<A>): <K, Q, W, X, I, S, R, E>(
124
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
125
- ) => readonly [HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>];
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);
126
65
  }
127
66
 
128
- export interface partitionMap_<F extends HKT, C = HKT.None> {
129
- <K, Q, W, X, I, S, R, E, A, B, B1>(
130
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
131
- f: (a: A) => Either<B, B1>,
132
- ): readonly [HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B1>];
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);
133
81
  }
134
82
 
135
- export interface partitionMap<F extends HKT, C = HKT.None> {
136
- <A, B, B1>(f: (a: A) => Either<B, B1>): <K, Q, W, X, I, S, R, E>(
137
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
138
- ) => readonly [HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>, HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B1>];
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);
139
92
  }
@@ -1,21 +1,34 @@
1
- import type { FilterableMin } from "@fncts/base/typeclass/Filterable";
2
- import type { FunctorWithIndexMin } from "@fncts/base/typeclass/FunctorWithIndex";
3
-
4
- import { Filterable } from "@fncts/base/typeclass/Filterable";
5
- import { FunctorWithIndex } from "@fncts/base/typeclass/FunctorWithIndex";
1
+ import type { Filterable } from "@fncts/base/typeclass/Filterable";
2
+ import type { FunctorWithIndex } from "@fncts/base/typeclass/FunctorWithIndex";
6
3
 
7
4
  /**
8
5
  * @tsplus type fncts.FilterableWithIndex
9
6
  */
10
- export interface FilterableWithIndex<F extends HKT, FC = HKT.None> extends FunctorWithIndex<F, FC>, Filterable<F, FC> {
11
- readonly filterWithIndex_: filterWithIndex_<F, FC>;
12
- readonly filterWithIndex: filterWithIndex<F, FC>;
13
- readonly filterMapWithIndex_: filterMapWithIndex_<F, FC>;
14
- readonly filterMapWithIndex: filterMapWithIndex<F, FC>;
15
- readonly partitionWithIndex_: partitionWithIndex_<F, FC>;
16
- readonly partitionWithIndex: partitionWithIndex<F, FC>;
17
- readonly partitionMapWithIndex_: partitionMapWithIndex_<F, FC>;
18
- readonly partitionMapWithIndex: partitionMapWithIndex<F, FC>;
7
+ export interface FilterableWithIndex<F extends HKT> extends FunctorWithIndex<F>, Filterable<F> {
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>,
10
+ refinement: RefinementWithIndex<HKT.IndexFor<F, K>, A, B>,
11
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
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>,
14
+ predicate: PredicateWithIndex<HKT.IndexFor<F, K>, A>,
15
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
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>,
18
+ f: (i: HKT.IndexFor<F, K>, a: A) => Maybe<B>,
19
+ ): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
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>,
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>];
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>,
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>];
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>,
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>];
19
32
  }
20
33
 
21
34
  /**
@@ -24,120 +37,3 @@ export interface FilterableWithIndex<F extends HKT, FC = HKT.None> extends Funct
24
37
  export interface FilterableWithIndexOps {}
25
38
 
26
39
  export const FilterableWithIndex: FilterableWithIndexOps = {};
27
-
28
- export type FilterableWithIndexMin<F extends HKT, FC = HKT.None> = FunctorWithIndexMin<F, FC> &
29
- FilterableMin<F, FC> & {
30
- readonly filterWithIndex_: filterWithIndex_<F, FC>;
31
- readonly filterMapWithIndex_: filterMapWithIndex_<F, FC>;
32
- readonly partitionWithIndex_: partitionWithIndex_<F, FC>;
33
- readonly partitionMapWithIndex_: partitionMapWithIndex_<F, FC>;
34
- };
35
-
36
- /**
37
- * @tsplus static fncts.FilterableWithIndexOps __call
38
- */
39
- export function mkFilterableWithIndex<F extends HKT, FC = HKT.None>(
40
- F: FilterableWithIndexMin<F, FC>,
41
- ): FilterableWithIndex<F, FC>;
42
- export function mkFilterableWithIndex<F>(F: FilterableWithIndexMin<HKT.F<F>>): FilterableWithIndex<HKT.F<F>> {
43
- return HKT.instance<FilterableWithIndex<HKT.F<F>>>({
44
- ...FunctorWithIndex(F),
45
- ...Filterable(F),
46
- filterWithIndex_: F.filterWithIndex_,
47
- filterWithIndex:
48
- <K, A>(f: PredicateWithIndex<K, A>) =>
49
- <Q, W, X, I, S, R, E>(fa: HKT.FK<F, K, Q, W, X, I, S, R, E, A>) =>
50
- F.filterWithIndex_(fa, f),
51
- partitionWithIndex_: F.partitionWithIndex_,
52
- partitionWithIndex:
53
- <K, A>(f: PredicateWithIndex<K, A>) =>
54
- <Q, W, X, I, S, R, E>(fa: HKT.FK<F, K, Q, W, X, I, S, R, E, A>) =>
55
- F.partitionWithIndex_(fa, f),
56
- filterMapWithIndex_: F.filterMapWithIndex_,
57
- filterMapWithIndex: (f) => (fa) => F.filterMapWithIndex_(fa, f),
58
- partitionMapWithIndex_: F.partitionMapWithIndex_,
59
- partitionMapWithIndex: (f) => (fa) => F.partitionMapWithIndex_(fa, f),
60
- });
61
- }
62
-
63
- export interface filterWithIndex_<F extends HKT, FC = HKT.None> {
64
- <K, Q, W, X, I, S, R, E, A, B extends A>(
65
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
66
- refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>,
67
- ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
68
- <K, Q, W, X, I, S, R, E, A>(
69
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
70
- predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>,
71
- ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
72
- }
73
-
74
- export interface filterWithIndex<F extends HKT, FC = HKT.None> {
75
- <K, A, B extends A>(refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): <
76
- Q,
77
- W,
78
- X,
79
- I,
80
- S,
81
- R,
82
- E,
83
- >(
84
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
85
- ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
86
- <K, A>(predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): <Q, W, X, I, S, R, E>(
87
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
88
- ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
89
- }
90
-
91
- export interface filterMapWithIndex_<F extends HKT, FC = HKT.None> {
92
- <K, Q, W, X, I, S, R, E, A, B>(
93
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
94
- f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Maybe<B>,
95
- ): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
96
- }
97
-
98
- export interface filterMapWithIndex<F extends HKT, FC = HKT.None> {
99
- <K, A, B>(f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Maybe<B>): <Q, W, X, I, S, R, E>(
100
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
101
- ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
102
- }
103
-
104
- export interface partitionWithIndex_<F extends HKT, FC = HKT.None> {
105
- <K, Q, W, X, I, S, R, E, A, B extends A>(
106
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
107
- refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>,
108
- ): 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>];
109
- <K, Q, W, X, I, S, R, E, A>(
110
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
111
- predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>,
112
- ): 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>];
113
- }
114
-
115
- export interface partitionWithIndex<F extends HKT, FC = HKT.None> {
116
- <K, A, B extends A>(refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): <
117
- Q,
118
- W,
119
- X,
120
- I,
121
- S,
122
- R,
123
- E,
124
- >(
125
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
126
- ) => 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>];
127
- <K, A>(predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): <K, Q, W, X, I, S, R, E>(
128
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
129
- ) => 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>];
130
- }
131
-
132
- export interface partitionMapWithIndex_<F extends HKT, FC = HKT.None> {
133
- <K, Q, W, X, I, S, R, E, A, B, B1>(
134
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
135
- f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Either<B, B1>,
136
- ): 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>];
137
- }
138
-
139
- export interface partitionMapWithIndex<F extends HKT, FC = HKT.None> {
140
- <K, A, B, B1>(f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Either<B, B1>): <Q, W, X, I, S, R, E>(
141
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
142
- ) => 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>];
143
- }
@@ -3,13 +3,13 @@ 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, FC = HKT.None> extends HKT.Typeclass<F, FC> {
7
- readonly foldLeft_: foldLeft_<F, FC>;
8
- readonly foldLeft: foldLeft<F, FC>;
9
- readonly foldRight_: foldRight_<F, FC>;
10
- readonly foldRight: foldRight<F, FC>;
11
- readonly foldMap_: foldMap_<F, FC>;
12
- readonly foldMap: foldMap<F, FC>;
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>,
10
+ b: Eval<B>,
11
+ f: (a: A, b: Eval<B>) => Eval<B>,
12
+ ): Eval<B>;
13
13
  }
14
14
 
15
15
  /**
@@ -19,55 +19,38 @@ export interface FoldableOps {}
19
19
 
20
20
  export const Foldable: FoldableOps = {};
21
21
 
22
- export type FoldableMin<F extends HKT, FC = HKT.None> = {
23
- readonly foldLeft_: foldLeft_<F, FC>;
24
- readonly foldRight_: foldRight_<F, FC>;
25
- };
26
-
27
22
  /**
28
- * @tsplus static fncts.FoldableOps __call
23
+ * @tsplus fluent fncts.Kind foldLeft
29
24
  */
30
- export function mkFoldable<F extends HKT, FC = HKT.None>(F: FoldableMin<F, FC>): Foldable<F, FC> {
31
- const foldMap_: foldMap_<F, FC> = (M) => (fa, f) => F.foldLeft_(fa, M.nat, (b, a) => M.combine_(b, f(a)));
32
-
33
- return HKT.instance<Foldable<F, FC>>({
34
- foldLeft_: F.foldLeft_,
35
- foldLeft: (b, f) => (fa) => F.foldLeft_(fa, b, f),
36
- foldRight_: F.foldRight_,
37
- foldRight: (b, f) => (fa) => F.foldRight_(fa, b, f),
38
- foldMap_,
39
- foldMap: (M) => (f) => (fa) => foldMap_(M)(fa, f),
40
- });
41
- }
42
-
43
- export interface foldLeft_<F extends HKT, FC = HKT.None> {
44
- <K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, b: B, f: (b: B, a: A) => B): B;
45
- }
46
-
47
- export interface foldLeft<F extends HKT, FC = HKT.None> {
48
- <A, B>(b: B, f: (b: B, a: A) => B): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => B;
49
- }
50
-
51
- export interface foldRight_<F extends HKT, FC = HKT.None> {
52
- <K, Q, W, X, I, S, R, E, A, B>(
53
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
54
- b: Eval<B>,
55
- f: (a: A, b: Eval<B>) => Eval<B>,
56
- ): Eval<B>;
57
- }
58
-
59
- export interface foldRight<F extends HKT, FC = HKT.None> {
60
- <A, B>(b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>): <K, Q, W, X, I, S, R, E>(
61
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
62
- ) => Eval<B>;
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);
63
32
  }
64
33
 
65
- export interface foldMap_<F extends HKT, C = HKT.None> {
66
- <M>(M: Monoid<M>): <K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, f: (a: A) => M) => M;
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);
67
44
  }
68
45
 
69
- export interface foldMap<F extends HKT, C = HKT.None> {
70
- <M>(M: Monoid<M>): <A>(
71
- f: (a: A) => M,
72
- ) => <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => M;
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>,
51
+ f: (a: A) => M,
52
+ /** @tsplus auto */ F: Foldable<F>,
53
+ /** @tsplus auto */ M: Monoid<M>,
54
+ ): M {
55
+ return fa.foldLeft(M.nat, (b, a) => M.combine(b, f(a)));
73
56
  }
@@ -1,18 +1,20 @@
1
- import type { FoldableMin } from "@fncts/base/typeclass/Foldable";
1
+ import type { Foldable } from "@fncts/base/typeclass/Foldable";
2
2
  import type { Monoid } from "@fncts/base/typeclass/Monoid";
3
3
 
4
- import { Foldable } from "@fncts/base/typeclass/Foldable";
5
-
6
4
  /**
7
5
  * @tsplus type fncts.FoldableWithIndex
8
6
  */
9
- export interface FoldableWithIndex<F extends HKT, FC = HKT.None> extends Foldable<F, FC> {
10
- readonly foldLeftWithIndex_: foldLeftWithIndex_<F, FC>;
11
- readonly foldLeftWithIndex: foldLeftWithIndex<F, FC>;
12
- readonly foldRightWithIndex_: foldRightWithIndex_<F, FC>;
13
- readonly foldRightWithIndex: foldRightWithIndex<F, FC>;
14
- readonly foldMapWithIndex_: foldMapWithIndex_<F, FC>;
15
- readonly foldMapWithIndex: foldMapWithIndex<F, FC>;
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>,
10
+ b: B,
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>,
15
+ b: Eval<B>,
16
+ f: (i: HKT.IndexFor<F, K>, a: A, b: Eval<B>) => Eval<B>,
17
+ ): Eval<B>;
16
18
  }
17
19
 
18
20
  /**
@@ -22,75 +24,38 @@ export interface FoldableWithIndexOps {}
22
24
 
23
25
  export const FoldableWithIndex: FoldableWithIndexOps = {};
24
26
 
25
- export type FoldableWithIndexMin<F extends HKT, FC = HKT.None> = FoldableMin<F, FC> & {
26
- readonly foldLeftWithIndex_: foldLeftWithIndex_<F, FC>;
27
- readonly foldRightWithIndex_: foldRightWithIndex_<F, FC>;
28
- };
29
-
30
27
  /**
31
- * @tsplus static fncts.FoldableWithIndexOps __call
28
+ * @tsplus fluent fncts.Kind foldLeftWithIndex
32
29
  */
33
- export function mkFoldableWithIndex<F extends HKT, FC = HKT.None>(
34
- F: FoldableWithIndexMin<F, FC>,
35
- ): FoldableWithIndex<F, FC> {
36
- const foldMapWithIndex_: foldMapWithIndex_<F, FC> = (M) => (fa, f) =>
37
- F.foldLeftWithIndex_(fa, M.nat, (i, b, a) => M.combine_(b, f(i, a)));
38
- return HKT.instance<FoldableWithIndex<F, FC>>({
39
- ...Foldable(F),
40
- foldLeftWithIndex_: F.foldLeftWithIndex_,
41
- foldLeftWithIndex: (b, f) => (fa) => F.foldLeftWithIndex_(fa, b, f),
42
- foldRightWithIndex_: F.foldRightWithIndex_,
43
- foldRightWithIndex: (b, f) => (fa) => F.foldRightWithIndex_(fa, b, f),
44
- foldMapWithIndex_,
45
- foldMapWithIndex: (M) => (f) => (fa) => foldMapWithIndex_(M)(fa, f),
46
- });
47
- }
48
-
49
- export interface foldLeftWithIndex_<F extends HKT, FC = HKT.None> {
50
- <K, Q, W, X, I, S, R, E, A, B>(
51
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
52
- b: B,
53
- f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, b: B, a: A) => B,
54
- ): B;
55
- }
56
-
57
- export interface foldLeftWithIndex<F extends HKT, FC = HKT.None> {
58
- <K, A, B>(b: B, f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, b: B, a: A) => B): <Q, W, X, I, S, R, E>(
59
- fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>,
60
- ) => B;
61
- }
62
-
63
- export interface foldRightWithIndex_<F extends HKT, C = HKT.None> {
64
- <K, Q, W, X, I, S, R, E, A, B>(
65
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
66
- b: Eval<B>,
67
- f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A, b: Eval<B>) => Eval<B>,
68
- ): Eval<B>;
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);
69
37
  }
70
38
 
71
- export interface foldRightWithIndex<F extends HKT, C = HKT.None> {
72
- <K, A, B>(b: Eval<B>, f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A, b: Eval<B>) => Eval<B>): <
73
- Q,
74
- W,
75
- X,
76
- I,
77
- S,
78
- R,
79
- E,
80
- >(
81
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
82
- ) => Eval<B>;
83
- }
84
-
85
- export interface foldMapWithIndex_<F extends HKT, C = HKT.None> {
86
- <M>(M: Monoid<M>): <K, Q, W, X, I, S, R, E, A>(
87
- fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
88
- f: (k: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => M,
89
- ) => M;
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);
90
49
  }
91
50
 
92
- export interface foldMapWithIndex<F extends HKT, C = HKT.None> {
93
- <M>(M: Monoid<M>): <K, A>(
94
- f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => M,
95
- ) => <Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => M;
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>,
56
+ f: (k: HKT.IndexFor<F, K>, a: A) => M,
57
+ /** @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)));
96
61
  }