@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
package/typeclass/Eq.d.ts CHANGED
@@ -1,27 +1,2 @@
1
- /**
2
- * @tsplus type fncts.Eq
3
- */
4
- export interface Eq<A> {
5
- readonly equals_: equals_<A>;
6
- readonly equals: equals<A>;
7
- }
8
- /**
9
- * @tsplus type fncts.EqOps
10
- */
11
- export interface EqOps {
12
- }
13
- export declare const Eq: EqOps;
14
- export declare type EqMin<A> = {
15
- readonly equals_: equals_<A>;
16
- };
17
- /**
18
- * @tsplus static fncts.EqOps __call
19
- * @tsplus location "@fncts/base/typeclass/Eq"
20
- */
21
- export declare function mkEq<A>(F: EqMin<A>): Eq<A>;
22
- export interface equals_<A> {
23
- (x: A, y: A): boolean;
24
- }
25
- export interface equals<A> {
26
- (y: A): (x: A) => boolean;
27
- }
1
+ export * from "./Eq/definition.js";
2
+ export {} from "./Eq/derivations.js";
@@ -2,22 +2,16 @@ import { HKT } from "@fncts/typelevel/HKT";
2
2
  /**
3
3
  * @tsplus type fncts.Fail
4
4
  */
5
- export interface Fail<F extends HKT, TC = HKT.None> extends HKT.Typeclass<F, TC> {
6
- readonly fail: fail<F, TC>;
5
+ export interface Fail<F extends HKT> extends HKT.Typeclass<F> {
6
+ fail<E, K = HKT.Low<"K">, Q = HKT.Low<"Q">, W = HKT.Low<"W">, X = HKT.Low<"X">, I = HKT.Low<"I">, S = HKT.Low<"S">, R = HKT.Low<"R">, A = never>(e: E): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
7
7
  }
8
8
  /**
9
9
  * @tsplus type fncts.FailOps
10
10
  */
11
11
  export interface FailOps {
12
12
  }
13
- export declare type FailMin<F extends HKT, C = HKT.None> = {
14
- readonly fail: fail<F, C>;
15
- };
16
13
  /**
17
- * @tsplus static fncts.FailOps __call
14
+ * @tsplus static fncts.FailOps fail
18
15
  * @tsplus location "@fncts/base/typeclass/Fail"
19
16
  */
20
- export declare function mkFail<F extends HKT, C = HKT.None>(F: FailMin<F, C>): Fail<F, C>;
21
- export interface fail<F extends HKT, C = HKT.None> {
22
- <E, K = HKT.Low<F, "K">, Q = HKT.Low<F, "Q">, W = HKT.Low<F, "W">, X = HKT.Low<F, "X">, I = HKT.Low<F, "I">, S = HKT.Low<F, "S">, R = HKT.Low<F, "R">, A = never>(e: HKT.OrFix<C, "E", E>): HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>;
23
- }
17
+ export declare function fail<F extends HKT, E, K = HKT.Low<"K">, Q = HKT.Low<"Q">, W = HKT.Low<"W">, X = HKT.Low<"X">, I = HKT.Low<"I">, S = HKT.Low<"S">, R = HKT.Low<"R">, A = never>(e: E, /** @tsplus auto */ F: Fail<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
@@ -1,22 +1,19 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
- import { Predicate } from "@fncts/base/data/Predicate/definition";
3
2
  import { Refinement } from "@fncts/base/data/Refinement/definition";
3
+ import { Predicate } from "@fncts/base/data/Predicate/definition";
4
4
  import { Maybe } from "@fncts/base/data/Maybe/definition";
5
5
  import { Either } from "@fncts/base/data/Either/definition";
6
- import type { FunctorMin } from "@fncts/base/typeclass/Functor";
7
- import { Functor } from "@fncts/base/typeclass/Functor";
6
+ import type { Functor } from "@fncts/base/typeclass/Functor";
8
7
  /**
9
8
  * @tsplus type fncts.Filterable
10
9
  */
11
- export interface Filterable<F extends HKT, FC = HKT.None> extends Functor<F, FC> {
12
- readonly filter_: filter_<F, FC>;
13
- readonly filter: filter<F, FC>;
14
- readonly filterMap_: filterMap_<F, FC>;
15
- readonly filterMap: filterMap<F, FC>;
16
- readonly partition_: partition_<F, FC>;
17
- readonly partition: partition<F, FC>;
18
- readonly partitionMap_: partitionMap_<F, FC>;
19
- readonly partitionMap: partitionMap<F, FC>;
10
+ export interface Filterable<F extends HKT> extends Functor<F> {
11
+ filter<K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
12
+ filter<K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, predicate: Predicate<A>): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
13
+ filterMap<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Maybe<B>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
14
+ partition<K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>): 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>];
15
+ partition<K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, predicate: Predicate<A>): 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>];
16
+ partitionMap<K, Q, W, X, I, S, R, E, A, B, B1>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Either<B, B1>): 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>];
20
17
  }
21
18
  /**
22
19
  * @tsplus type fncts.FilterableOps
@@ -24,45 +21,27 @@ export interface Filterable<F extends HKT, FC = HKT.None> extends Functor<F, FC>
24
21
  export interface FilterableOps {
25
22
  }
26
23
  export declare const Filterable: FilterableOps;
27
- export declare type FilterableMin<F extends HKT, FC = HKT.None> = FunctorMin<F, FC> & {
28
- readonly filter_: filter_<F, FC>;
29
- readonly filterMap_: filterMap_<F, FC>;
30
- readonly partition_: partition_<F, FC>;
31
- readonly partitionMap_: partitionMap_<F, FC>;
32
- };
33
24
  /**
34
- * @tsplus static fncts.FilterableOps __call
25
+ * @tsplus fluent fncts.Kind filter
35
26
  * @tsplus location "@fncts/base/typeclass/Filterable"
36
27
  */
37
- export declare function mkFilterable<F extends HKT, FC = HKT.None>(F: FilterableMin<F, FC>): Filterable<F, FC>;
38
- export interface filter_<F extends HKT, C = HKT.None> {
39
- <K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>): HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
40
- <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<F, C, K, Q, W, X, I, S, R, E, A>;
41
- }
42
- export interface filter<F extends HKT, C = HKT.None> {
43
- <A, B extends A>(refinement: Refinement<A, B>): <K, Q, W, X, I, S, R, E>(fa: 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>;
44
- <A>(predicate: Predicate<A>): <K, Q, W, X, I, S, R, E>(fa: 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>;
45
- }
46
- export interface filterMap_<F extends HKT, C = HKT.None> {
47
- <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<F, C, K, Q, W, X, I, S, R, E, B>;
48
- }
49
- export interface filterMap<F extends HKT, C = HKT.None> {
50
- <A, B>(f: (a: A) => Maybe<B>): <K, Q, W, X, I, S, R, E>(fa: 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>;
51
- }
52
- export interface partition_<F extends HKT, C = HKT.None> {
53
- <K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>): 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>];
54
- <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 [
55
- HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>,
56
- HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>
57
- ];
58
- }
59
- export interface partition<F extends HKT, C = HKT.None> {
60
- <A, B extends A>(refinement: Refinement<A, B>): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => 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>];
61
- <A>(predicate: Predicate<A>): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => 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>];
62
- }
63
- export interface partitionMap_<F extends HKT, C = HKT.None> {
64
- <K, Q, W, X, I, S, R, E, A, B, B1>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Either<B, B1>): 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>];
65
- }
66
- export interface partitionMap<F extends HKT, C = HKT.None> {
67
- <A, B, B1>(f: (a: A) => Either<B, B1>): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => 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>];
68
- }
28
+ export declare function filter<F extends HKT, K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>,
29
+ /** @tsplus auto */ F: Filterable<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
30
+ /**
31
+ * @tsplus fluent fncts.Kind filterMap
32
+ * @tsplus location "@fncts/base/typeclass/Filterable"
33
+ */
34
+ export declare function filterMap<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Maybe<B>,
35
+ /** @tsplus auto */ F: Filterable<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
36
+ /**
37
+ * @tsplus fluent fncts.Kind partition
38
+ * @tsplus location "@fncts/base/typeclass/Filterable"
39
+ */
40
+ export declare function partition<F extends HKT, K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: Refinement<A, B>,
41
+ /** @tsplus auto */ F: Filterable<F>): 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>];
42
+ /**
43
+ * @tsplus fluent fncts.Kind partitionMap
44
+ * @tsplus location "@fncts/base/typeclass/Filterable"
45
+ */
46
+ export declare function partitionMap<F extends HKT, K, Q, W, X, I, S, R, E, A, B, B1>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => Either<B, B1>,
47
+ /** @tsplus auto */ F: Filterable<F>): 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>];
@@ -1,24 +1,20 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
- import { PredicateWithIndex } from "@fncts/base/data/Predicate/definition";
3
2
  import { RefinementWithIndex } from "@fncts/base/data/Refinement/definition";
3
+ import { PredicateWithIndex } from "@fncts/base/data/Predicate/definition";
4
4
  import { Maybe } from "@fncts/base/data/Maybe/definition";
5
5
  import { Either } from "@fncts/base/data/Either/definition";
6
- import type { FilterableMin } from "@fncts/base/typeclass/Filterable";
7
- import type { FunctorWithIndexMin } from "@fncts/base/typeclass/FunctorWithIndex";
8
- import { Filterable } from "@fncts/base/typeclass/Filterable";
9
- import { FunctorWithIndex } from "@fncts/base/typeclass/FunctorWithIndex";
6
+ import type { Filterable } from "@fncts/base/typeclass/Filterable";
7
+ import type { FunctorWithIndex } from "@fncts/base/typeclass/FunctorWithIndex";
10
8
  /**
11
9
  * @tsplus type fncts.FilterableWithIndex
12
10
  */
13
- export interface FilterableWithIndex<F extends HKT, FC = HKT.None> extends FunctorWithIndex<F, FC>, Filterable<F, FC> {
14
- readonly filterWithIndex_: filterWithIndex_<F, FC>;
15
- readonly filterWithIndex: filterWithIndex<F, FC>;
16
- readonly filterMapWithIndex_: filterMapWithIndex_<F, FC>;
17
- readonly filterMapWithIndex: filterMapWithIndex<F, FC>;
18
- readonly partitionWithIndex_: partitionWithIndex_<F, FC>;
19
- readonly partitionWithIndex: partitionWithIndex<F, FC>;
20
- readonly partitionMapWithIndex_: partitionMapWithIndex_<F, FC>;
21
- readonly partitionMapWithIndex: partitionMapWithIndex<F, FC>;
11
+ export interface FilterableWithIndex<F extends HKT> extends FunctorWithIndex<F>, Filterable<F> {
12
+ filterWithIndex<K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: RefinementWithIndex<HKT.IndexFor<F, K>, A, B>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
13
+ filterWithIndex<K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, predicate: PredicateWithIndex<HKT.IndexFor<F, K>, A>): HKT.Kind<F, K, Q, W, X, I, S, R, E, A>;
14
+ filterMapWithIndex<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, K>, a: A) => Maybe<B>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
15
+ partitionWithIndex<K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, refinement: RefinementWithIndex<HKT.IndexFor<F, K>, A, B>): 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>];
16
+ partitionWithIndex<K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, predicate: PredicateWithIndex<HKT.IndexFor<F, K>, A>): 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>];
17
+ partitionMapWithIndex<K, Q, W, X, I, S, R, E, A, B, B1>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, K>, a: A) => Either<B, B1>): 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>];
22
18
  }
23
19
  /**
24
20
  * @tsplus type fncts.FilterableWithIndexOps
@@ -26,42 +22,3 @@ export interface FilterableWithIndex<F extends HKT, FC = HKT.None> extends Funct
26
22
  export interface FilterableWithIndexOps {
27
23
  }
28
24
  export declare const FilterableWithIndex: FilterableWithIndexOps;
29
- export declare type FilterableWithIndexMin<F extends HKT, FC = HKT.None> = FunctorWithIndexMin<F, FC> & 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
- * @tsplus static fncts.FilterableWithIndexOps __call
37
- * @tsplus location "@fncts/base/typeclass/FilterableWithIndex"
38
- */
39
- export declare function mkFilterableWithIndex<F extends HKT, FC = HKT.None>(F: FilterableWithIndexMin<F, FC>): FilterableWithIndex<F, FC>;
40
- export interface filterWithIndex_<F extends HKT, FC = HKT.None> {
41
- <K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
42
- <K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>;
43
- }
44
- export interface filterWithIndex<F extends HKT, FC = HKT.None> {
45
- <K, A, B extends A>(refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): <Q, W, X, I, S, R, E>(fa: 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>;
46
- <K, A>(predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): <Q, W, X, I, S, R, E>(fa: 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>;
47
- }
48
- export interface filterMapWithIndex_<F extends HKT, FC = HKT.None> {
49
- <K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Maybe<B>): HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, B>;
50
- }
51
- export interface filterMapWithIndex<F extends HKT, FC = HKT.None> {
52
- <K, A, B>(f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Maybe<B>): <Q, W, X, I, S, R, E>(fa: 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>;
53
- }
54
- export interface partitionWithIndex_<F extends HKT, FC = HKT.None> {
55
- <K, Q, W, X, I, S, R, E, A, B extends A>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): 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>];
56
- <K, Q, W, X, I, S, R, E, A>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): 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>];
57
- }
58
- export interface partitionWithIndex<F extends HKT, FC = HKT.None> {
59
- <K, A, B extends A>(refinement: RefinementWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A, B>): <Q, W, X, I, S, R, E>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => 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>];
60
- <K, A>(predicate: PredicateWithIndex<HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, A>): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => 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>];
61
- }
62
- export interface partitionMapWithIndex_<F extends HKT, FC = HKT.None> {
63
- <K, Q, W, X, I, S, R, E, A, B, B1>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, a: A) => Either<B, B1>): 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>];
64
- }
65
- export interface partitionMapWithIndex<F extends HKT, FC = HKT.None> {
66
- <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>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => 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>];
67
- }
@@ -4,13 +4,9 @@ import type { Monoid } from "@fncts/base/typeclass/Monoid";
4
4
  /**
5
5
  * @tsplus type fncts.Foldable
6
6
  */
7
- export interface Foldable<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F, FC> {
8
- readonly foldLeft_: foldLeft_<F, FC>;
9
- readonly foldLeft: foldLeft<F, FC>;
10
- readonly foldRight_: foldRight_<F, FC>;
11
- readonly foldRight: foldRight<F, FC>;
12
- readonly foldMap_: foldMap_<F, FC>;
13
- readonly foldMap: foldMap<F, FC>;
7
+ export interface Foldable<F extends HKT> extends HKT.Typeclass<F> {
8
+ 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;
9
+ foldRight<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>): Eval<B>;
14
10
  }
15
11
  /**
16
12
  * @tsplus type fncts.FoldableOps
@@ -18,30 +14,22 @@ export interface Foldable<F extends HKT, FC = HKT.None> extends HKT.Typeclass<F,
18
14
  export interface FoldableOps {
19
15
  }
20
16
  export declare const Foldable: FoldableOps;
21
- export declare type FoldableMin<F extends HKT, FC = HKT.None> = {
22
- readonly foldLeft_: foldLeft_<F, FC>;
23
- readonly foldRight_: foldRight_<F, FC>;
24
- };
25
17
  /**
26
- * @tsplus static fncts.FoldableOps __call
18
+ * @tsplus fluent fncts.Kind foldLeft
27
19
  * @tsplus location "@fncts/base/typeclass/Foldable"
28
20
  */
29
- export declare function mkFoldable<F extends HKT, FC = HKT.None>(F: FoldableMin<F, FC>): Foldable<F, FC>;
30
- export interface foldLeft_<F extends HKT, FC = HKT.None> {
31
- <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;
32
- }
33
- export interface foldLeft<F extends HKT, FC = HKT.None> {
34
- <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;
35
- }
36
- export interface foldRight_<F extends HKT, FC = HKT.None> {
37
- <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: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>): Eval<B>;
38
- }
39
- export interface foldRight<F extends HKT, FC = HKT.None> {
40
- <A, B>(b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>): <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => Eval<B>;
41
- }
42
- export interface foldMap_<F extends HKT, C = HKT.None> {
43
- <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;
44
- }
45
- export interface foldMap<F extends HKT, C = HKT.None> {
46
- <M>(M: Monoid<M>): <A>(f: (a: A) => M) => <K, Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => M;
47
- }
21
+ export declare function foldLeft<F extends HKT, 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,
22
+ /** @tsplus auto */ F: Foldable<F>): B;
23
+ /**
24
+ * @tsplus fluent fncts.Kind foldRight
25
+ * @tsplus location "@fncts/base/typeclass/Foldable"
26
+ */
27
+ export declare function foldRight<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: Eval<B>, f: (a: A, b: Eval<B>) => Eval<B>,
28
+ /** @tsplus auto */ F: Foldable<F>): Eval<B>;
29
+ /**
30
+ * @tsplus fluent fncts.Kind foldMap
31
+ * @tsplus location "@fncts/base/typeclass/Foldable"
32
+ */
33
+ export declare function foldMap<F extends HKT, K, Q, W, X, I, S, R, E, A, M>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => M,
34
+ /** @tsplus auto */ F: Foldable<F>,
35
+ /** @tsplus auto */ M: Monoid<M>): M;
@@ -1,18 +1,13 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
2
  import { Eval } from "@fncts/base/control/Eval/definition";
3
- import type { FoldableMin } from "@fncts/base/typeclass/Foldable";
3
+ import type { Foldable } from "@fncts/base/typeclass/Foldable";
4
4
  import type { Monoid } from "@fncts/base/typeclass/Monoid";
5
- import { Foldable } from "@fncts/base/typeclass/Foldable";
6
5
  /**
7
6
  * @tsplus type fncts.FoldableWithIndex
8
7
  */
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>;
8
+ export interface FoldableWithIndex<F extends HKT> extends Foldable<F> {
9
+ foldLeftWithIndex<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: (i: HKT.IndexFor<F, K>, b: B, a: A) => B): B;
10
+ foldRightWithIndex<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: Eval<B>, f: (i: HKT.IndexFor<F, K>, a: A, b: Eval<B>) => Eval<B>): Eval<B>;
16
11
  }
17
12
  /**
18
13
  * @tsplus type fncts.FoldableWithIndexOps
@@ -20,30 +15,22 @@ export interface FoldableWithIndex<F extends HKT, FC = HKT.None> extends Foldabl
20
15
  export interface FoldableWithIndexOps {
21
16
  }
22
17
  export declare const FoldableWithIndex: FoldableWithIndexOps;
23
- export declare type FoldableWithIndexMin<F extends HKT, FC = HKT.None> = FoldableMin<F, FC> & {
24
- readonly foldLeftWithIndex_: foldLeftWithIndex_<F, FC>;
25
- readonly foldRightWithIndex_: foldRightWithIndex_<F, FC>;
26
- };
27
18
  /**
28
- * @tsplus static fncts.FoldableWithIndexOps __call
19
+ * @tsplus fluent fncts.Kind foldLeftWithIndex
29
20
  * @tsplus location "@fncts/base/typeclass/FoldableWithIndex"
30
21
  */
31
- export declare function mkFoldableWithIndex<F extends HKT, FC = HKT.None>(F: FoldableWithIndexMin<F, FC>): FoldableWithIndex<F, FC>;
32
- export interface foldLeftWithIndex_<F extends HKT, FC = HKT.None> {
33
- <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: (i: HKT.IndexFor<F, HKT.OrFix<FC, "K", K>>, b: B, a: A) => B): B;
34
- }
35
- export interface foldLeftWithIndex<F extends HKT, FC = HKT.None> {
36
- <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>(fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, E, A>) => B;
37
- }
38
- export interface foldRightWithIndex_<F extends HKT, C = HKT.None> {
39
- <K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, b: Eval<B>, f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A, b: Eval<B>) => Eval<B>): Eval<B>;
40
- }
41
- export interface foldRightWithIndex<F extends HKT, C = HKT.None> {
42
- <K, A, B>(b: Eval<B>, f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A, b: Eval<B>) => Eval<B>): <Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => Eval<B>;
43
- }
44
- export interface foldMapWithIndex_<F extends HKT, C = HKT.None> {
45
- <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: (k: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => M) => M;
46
- }
47
- export interface foldMapWithIndex<F extends HKT, C = HKT.None> {
48
- <M>(M: Monoid<M>): <K, A>(f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => M) => <Q, W, X, I, S, R, E>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>) => M;
49
- }
22
+ export declare function foldLeftWithIndex<F extends HKT, 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: (i: HKT.IndexFor<F, K>, b: B, a: A) => B,
23
+ /** @tsplus auto */ F: FoldableWithIndex<F>): B;
24
+ /**
25
+ * @tsplus fluent fncts.Kind foldRightWithIndex
26
+ * @tsplus location "@fncts/base/typeclass/FoldableWithIndex"
27
+ */
28
+ export declare function foldRightWithIndex<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: Eval<B>, f: (i: HKT.IndexFor<F, K>, a: A, b: Eval<B>) => Eval<B>,
29
+ /** @tsplus auto */ F: FoldableWithIndex<F>): Eval<B>;
30
+ /**
31
+ * @tsplus fluent fncts.Kind foldMapWithIndex
32
+ * @tsplus location "@fncts/base/typeclass/FoldableWithIndex"
33
+ */
34
+ export declare function foldMapWithIndex<F extends HKT, K, Q, W, X, I, S, R, E, A, M>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (k: HKT.IndexFor<F, K>, a: A) => M,
35
+ /** @tsplus auto */ M: Monoid<M>,
36
+ /** @tsplus auto */ F: FoldableWithIndex<F>): M;
@@ -3,11 +3,8 @@ import { Lazy } from "@fncts/base/data/function/definition";
3
3
  /**
4
4
  * @tsplus type fncts.Functor
5
5
  */
6
- export interface Functor<F extends HKT, C = HKT.None> extends HKT.Typeclass<F, C> {
7
- readonly map_: map_<F, C>;
8
- readonly map: map<F, C>;
9
- readonly as_: as_<F, C>;
10
- readonly as: as<F, C>;
6
+ export interface Functor<F extends HKT> extends HKT.Typeclass<F> {
7
+ map<K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => B): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
11
8
  }
12
9
  /**
13
10
  * @tsplus type fncts.FunctorOps
@@ -15,23 +12,15 @@ export interface Functor<F extends HKT, C = HKT.None> extends HKT.Typeclass<F, C
15
12
  export interface FunctorOps {
16
13
  }
17
14
  export declare const Functor: FunctorOps;
18
- export declare type FunctorMin<F extends HKT, C = HKT.None> = {
19
- readonly map_: map_<F, C>;
20
- };
21
15
  /**
22
- * @tsplus static fncts.FunctorOps __call
16
+ * @tsplus fluent fncts.Kind map
23
17
  * @tsplus location "@fncts/base/typeclass/Functor"
24
18
  */
25
- export declare function mkFunctor<F extends HKT, C = HKT.None>(F: FunctorMin<F, C>): Functor<F, C>;
26
- export interface map_<F extends HKT, C = HKT.None> {
27
- <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) => B): HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
28
- }
29
- export interface map<F extends HKT, C = HKT.None> {
30
- <A, B>(f: (a: A) => B): <K, Q, W, X, I, S, R, E>(fa: 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>;
31
- }
32
- export interface as_<F extends HKT, C = HKT.None> {
33
- <K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, C, K, Q, W, X, I, S, R, E, A>, b: Lazy<B>): HKT.Kind<F, C, K, Q, W, X, I, S, R, E, B>;
34
- }
35
- export interface as<F extends HKT, C = HKT.None> {
36
- <B>(b: Lazy<B>): <K, Q, W, X, I, S, R, E, A>(fa: 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>;
37
- }
19
+ export declare function map<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, f: (a: A) => B,
20
+ /** @tsplus auto */ F: Functor<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
21
+ /**
22
+ * @tsplus fluent fncts.Kind as
23
+ * @tsplus location "@fncts/base/typeclass/Functor"
24
+ */
25
+ export declare function as<F extends HKT, K, Q, W, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, Q, W, X, I, S, R, E, A>, b: Lazy<B>,
26
+ /** @tsplus auto */ F: Functor<F>): HKT.Kind<F, K, Q, W, X, I, S, R, E, B>;
@@ -1,27 +1,11 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
- import type { FunctorMin } from "@fncts/base/typeclass/Functor";
3
- import { Functor } from "@fncts/base/typeclass/Functor";
4
- export interface FunctorWithIndex<F extends HKT, C = HKT.None> extends Functor<F, C> {
5
- readonly mapWithIndex_: mapWithIndex_<F, C>;
6
- readonly mapWithIndex: mapWithIndex<F, C>;
2
+ import type { Functor } from "@fncts/base/typeclass/Functor";
3
+ export interface FunctorWithIndex<F extends HKT> extends Functor<F> {
4
+ mapWithIndex<K, W, Q, X, I, S, R, E, A, B>(fa: HKT.Kind<F, K, W, Q, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, K>, a: A) => B): HKT.Kind<F, K, W, Q, X, I, S, R, E, B>;
7
5
  }
8
- export declare type FunctorWithIndexMin<F extends HKT, FC = HKT.None> = FunctorMin<F, FC> & {
9
- readonly mapWithIndex_: mapWithIndex_<F, FC>;
10
- };
11
6
  /**
12
7
  * @tsplus type fncts.FunctorWithIndexOps
13
8
  */
14
9
  export interface FunctorWithIndexOps {
15
10
  }
16
11
  export declare const FunctorWithIndex: FunctorWithIndexOps;
17
- /**
18
- * @tsplus static fncts.FunctorWithIndexOps __call
19
- * @tsplus location "@fncts/base/typeclass/FunctorWithIndex"
20
- */
21
- export declare function mkFunctorWithIndex<F extends HKT, C = HKT.None>(F: FunctorWithIndexMin<F, C>): FunctorWithIndex<F, C>;
22
- export interface mapWithIndex_<F extends HKT, C = HKT.None> {
23
- <K, W, Q, X, I, S, R, E, A, B>(fa: HKT.Kind<F, C, K, W, Q, X, I, S, R, E, A>, f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => B): HKT.Kind<F, C, K, W, Q, X, I, S, R, E, B>;
24
- }
25
- export interface mapWithIndex<F extends HKT, C = HKT.None> {
26
- <K, A, B>(f: (i: HKT.IndexFor<F, HKT.OrFix<C, "K", K>>, a: A) => B): <W, Q, X, I, S, R, E>(fa: HKT.Kind<F, C, K, W, Q, X, I, S, R, E, A>) => HKT.Kind<F, C, K, W, Q, X, I, S, R, E, B>;
27
- }
@@ -0,0 +1,20 @@
1
+ import { Refinement } from "@fncts/base/data/Refinement/definition";
2
+ import { Predicate } from "@fncts/base/data/Predicate/definition";
3
+ import { Guard } from "@fncts/base/typeclass/Guard/definition";
4
+ /**
5
+ * @tsplus fluent fncts.Guard __call
6
+ * @tsplus location "@fncts/base/typeclass/Guard/api"
7
+ */
8
+ export declare function is<A>(self: Guard<A>, u: unknown): u is A;
9
+ /**
10
+ * @tsplus fluent fncts.Guard refine
11
+ * @tsplus operator fncts.Guard &&
12
+ * @tsplus location "@fncts/base/typeclass/Guard/api"
13
+ */
14
+ export declare function refine<A, B extends A>(self: Guard<A>, refinement: Refinement<A, B>): Guard<B>;
15
+ export declare function refine<A>(self: Guard<A>, predicate: Predicate<A>): Guard<A>;
16
+ /**
17
+ * @tsplus fluent fncts.Guard assert
18
+ * @tsplus location "@fncts/base/typeclass/Guard/api"
19
+ */
20
+ export declare function assert<A>(self: Guard<A>, u: unknown): asserts u is A;
@@ -0,0 +1,22 @@
1
+ import { Refinement } from "@fncts/base/data/Refinement/definition";
2
+ export interface GuardF extends Guard<any> {
3
+ }
4
+ export declare const GuardTypeId: unique symbol;
5
+ export declare type GuardTypeId = typeof GuardTypeId;
6
+ /**
7
+ * @tsplus type fncts.Guard
8
+ * @tsplus companion fncts.GuardOps
9
+ */
10
+ export declare class Guard<A> {
11
+ readonly is: Refinement<unknown, A>;
12
+ readonly _typeId: GuardTypeId;
13
+ readonly [HKT.F]: GuardF;
14
+ readonly [HKT.A]: () => A;
15
+ readonly [HKT.T]: Guard<HKT._A<this>>;
16
+ constructor(is: Refinement<unknown, A>);
17
+ }
18
+ /**
19
+ * @tsplus static fncts.GuardOps __call
20
+ * @tsplus location "@fncts/base/typeclass/Guard/definition"
21
+ */
22
+ export declare function makeGuard<A>(refinement: Refinement<unknown, A>): Guard<A>;
@@ -0,0 +1,36 @@
1
+ import { Guard } from "@fncts/base/typeclass/Guard";
2
+ import type { Check } from "@fncts/typelevel/Check";
3
+ import type { OptionalKeys, RequiredKeys } from "@fncts/typelevel/Object";
4
+ /**
5
+ * @tsplus derive fncts.Guard lazy
6
+ * @tsplus location "@fncts/base/typeclass/Guard/derivations"
7
+ */
8
+ export declare function deriveLazy<A>(f: (_: Guard<A>) => Guard<A>): Guard<A>;
9
+ /**
10
+ * @tsplus derive fncts.Guard<_> 20
11
+ * @tsplus location "@fncts/base/typeclass/Guard/derivations"
12
+ */
13
+ export declare function deriveLiteral<A extends string | number | boolean>(...[value]: Check<Check.IsLiteral<A> & Check.Not<Check.IsUnion<A>>> extends Check.True ? [value: A] : never): Guard<A>;
14
+ /**
15
+ * @tsplus derive fncts.Guard<_> 20
16
+ * @tsplus location "@fncts/base/typeclass/Guard/derivations"
17
+ */
18
+ export declare function deriveStruct<A extends Record<string, any>>(...[requiredFields, optionalFields]: Check<Check.IsStruct<A>> extends Check.True ? [
19
+ ...[
20
+ requiredFields: {
21
+ [k in RequiredKeys<A>]: Guard<A[k]>;
22
+ }
23
+ ],
24
+ ...([OptionalKeys<A>] extends [never] ? [] : [
25
+ optionalFields: {
26
+ [k in OptionalKeys<A>]: Guard<NonNullable<A[k]>>;
27
+ }
28
+ ])
29
+ ] : never): Guard<A>;
30
+ /**
31
+ * @tsplus derive fncts.Guard<|> 30
32
+ * @tsplus location "@fncts/base/typeclass/Guard/derivations"
33
+ */
34
+ export declare function deriveUnion<A extends unknown[]>(...members: {
35
+ [K in keyof A]: Guard<A[K]>;
36
+ }): Guard<A[number]>;
@@ -0,0 +1,2 @@
1
+ export * from "./Guard/api.js";
2
+ export * from "./Guard/definition.js";
@@ -1,4 +1,3 @@
1
- import type { EqMin } from "./Eq.js";
2
1
  import type { Hash } from "./Hash.js";
3
2
  import { Eq } from "./Eq.js";
4
3
  /**
@@ -12,7 +11,7 @@ export interface HashEq<A> extends Hash<A>, Eq<A> {
12
11
  export interface HashEqOps {
13
12
  }
14
13
  export declare const HashEq: HashEqOps;
15
- export declare type HashEqMin<A> = Hash<A> & EqMin<A>;
14
+ export declare type HashEqMin<A> = Hash<A> & Eq<A>;
16
15
  /**
17
16
  * @tsplus static fncts.HashEqOps __call
18
17
  * @tsplus location "@fncts/base/typeclass/HashEq"
@@ -1,9 +1,7 @@
1
1
  import { HKT } from "@fncts/typelevel/HKT";
2
- import type { ApplicativeMin } from "@fncts/base/typeclass/Applicative";
3
- import type { ChainMin } from "@fncts/base/typeclass/Chain";
4
- import { Applicative } from "@fncts/base/typeclass/Applicative";
5
- import { FlatMap } from "@fncts/base/typeclass/Chain";
6
- export interface Monad<F extends HKT, FC = HKT.None> extends Applicative<F, FC>, FlatMap<F, FC> {
2
+ import type { Applicative } from "@fncts/base/typeclass/Applicative";
3
+ import type { FlatMap } from "@fncts/base/typeclass/Chain";
4
+ export interface Monad<F extends HKT> extends Applicative<F>, FlatMap<F> {
7
5
  }
8
6
  /**
9
7
  * @tsplus type fncts.MonadOps
@@ -11,9 +9,3 @@ export interface Monad<F extends HKT, FC = HKT.None> extends Applicative<F, FC>,
11
9
  export interface MonadOps {
12
10
  }
13
11
  export declare const Monad: MonadOps;
14
- export declare type MonadMin<F extends HKT, FC = HKT.None> = ApplicativeMin<F, FC> & ChainMin<F, FC>;
15
- /**
16
- * @tsplus static fncts.MonadOps __call
17
- * @tsplus location "@fncts/base/typeclass/Monad"
18
- */
19
- export declare function mkMonad<F extends HKT, FC = HKT.None>(F: MonadMin<F, FC>): Monad<F, FC>;