@fncts/base 0.0.2 → 0.0.5

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