@fncts/base 0.0.3 → 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 (760) 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/compat/Array/api.cjs +1 -1
  6. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  7. package/_cjs/collection/immutable/Conc/api.cjs +41 -53
  8. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  9. package/_cjs/collection/immutable/Conc/definition.cjs +49 -39
  10. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  11. package/_cjs/collection/immutable/Dictionary/definition.cjs +4 -2
  12. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  13. package/_cjs/collection/immutable/HashMap/api.cjs +35 -108
  14. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  15. package/_cjs/collection/immutable/HashMap/definition.cjs +19 -15
  16. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  17. package/_cjs/collection/immutable/HashSet/api.cjs +10 -10
  18. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  19. package/_cjs/collection/immutable/ImmutableArray/api.cjs +153 -248
  20. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  21. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +12 -10
  22. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  23. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +153 -157
  24. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  25. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +118 -181
  26. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  27. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +3 -0
  28. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  29. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +45 -81
  30. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  31. package/_cjs/collection/immutable/List/api.cjs +4 -7
  32. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  33. package/_cjs/collection/immutable/RoseTree/api.cjs +485 -0
  34. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -0
  35. package/_cjs/collection/immutable/RoseTree/definition.cjs +58 -0
  36. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -0
  37. package/_cjs/collection/immutable/RoseTree.cjs +32 -0
  38. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -0
  39. package/_cjs/collection/immutable/SortedMap/api.cjs +65 -65
  40. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  41. package/_cjs/collection/immutable/Vector/api.cjs +70 -15
  42. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  43. package/_cjs/collection/immutable/Vector/definition.cjs +13 -11
  44. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  45. package/_cjs/collection/mutable/HashMap.cjs +5 -5
  46. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  47. package/_cjs/collection/mutable/HashSet.cjs +4 -4
  48. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  49. package/_cjs/control/Eval/api.cjs +6 -0
  50. package/_cjs/control/Eval/api.cjs.map +1 -1
  51. package/_cjs/control/Eval/definition.cjs +7 -0
  52. package/_cjs/control/Eval/definition.cjs.map +1 -1
  53. package/_cjs/control/Eval/instance.cjs +14 -25
  54. package/_cjs/control/Eval/instance.cjs.map +1 -1
  55. package/_cjs/control/Z/definition.cjs +9 -3
  56. package/_cjs/control/Z/definition.cjs.map +1 -1
  57. package/_cjs/control/Z/instances.cjs +6 -13
  58. package/_cjs/control/Z/instances.cjs.map +1 -1
  59. package/_cjs/data/Branded/definition.cjs +29 -0
  60. package/_cjs/data/Branded/definition.cjs.map +1 -0
  61. package/_cjs/data/Branded/derivations.cjs +58 -0
  62. package/_cjs/data/Branded/derivations.cjs.map +1 -0
  63. package/_cjs/data/Branded.cjs +32 -0
  64. package/_cjs/data/Branded.cjs.map +1 -0
  65. package/_cjs/data/Cause/api/fold.cjs +2 -0
  66. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  67. package/_cjs/data/Cause/api.cjs +23 -0
  68. package/_cjs/data/Cause/api.cjs.map +1 -1
  69. package/_cjs/data/Const/api.cjs +3 -7
  70. package/_cjs/data/Const/api.cjs.map +1 -1
  71. package/_cjs/data/Const/definition.cjs +19 -1
  72. package/_cjs/data/Const/definition.cjs.map +1 -1
  73. package/_cjs/data/Const/instances.cjs +9 -20
  74. package/_cjs/data/Const/instances.cjs.map +1 -1
  75. package/_cjs/data/DecodeError/definition.cjs +308 -0
  76. package/_cjs/data/DecodeError/definition.cjs.map +1 -0
  77. package/_cjs/data/DecodeError.cjs +19 -0
  78. package/_cjs/data/DecodeError.cjs.map +1 -0
  79. package/_cjs/data/Decoder/api.cjs +217 -0
  80. package/_cjs/data/Decoder/api.cjs.map +1 -0
  81. package/_cjs/data/Decoder/definition.cjs +41 -0
  82. package/_cjs/data/Decoder/definition.cjs.map +1 -0
  83. package/_cjs/data/Decoder.cjs +32 -0
  84. package/_cjs/data/Decoder.cjs.map +1 -0
  85. package/_cjs/data/Duration/api.cjs +22 -9
  86. package/_cjs/data/Duration/api.cjs.map +1 -1
  87. package/_cjs/data/Either/api/alignWith.cjs +2 -0
  88. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  89. package/_cjs/data/Either/api.cjs +105 -42
  90. package/_cjs/data/Either/api.cjs.map +1 -1
  91. package/_cjs/data/Either/definition.cjs +39 -10
  92. package/_cjs/data/Either/definition.cjs.map +1 -1
  93. package/_cjs/data/Either/destructors.cjs +2 -0
  94. package/_cjs/data/Either/destructors.cjs.map +1 -1
  95. package/_cjs/data/Either/instances.cjs +123 -40
  96. package/_cjs/data/Either/instances.cjs.map +1 -1
  97. package/_cjs/data/Environment/api.cjs +29 -8
  98. package/_cjs/data/Environment/api.cjs.map +1 -1
  99. package/_cjs/data/Identity/api.cjs +35 -6
  100. package/_cjs/data/Identity/api.cjs.map +1 -1
  101. package/_cjs/data/Identity/definition.cjs +10 -1
  102. package/_cjs/data/Identity/definition.cjs.map +1 -1
  103. package/_cjs/data/Identity/instances.cjs +11 -25
  104. package/_cjs/data/Identity/instances.cjs.map +1 -1
  105. package/_cjs/data/Interval.cjs +154 -0
  106. package/_cjs/data/Interval.cjs.map +1 -0
  107. package/_cjs/data/Maybe/api.cjs +30 -43
  108. package/_cjs/data/Maybe/api.cjs.map +1 -1
  109. package/_cjs/data/Maybe/definition.cjs +45 -18
  110. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  111. package/_cjs/data/Maybe/destructors.cjs +1 -0
  112. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  113. package/_cjs/data/Maybe/instances.cjs +62 -42
  114. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  115. package/_cjs/data/Newtype.cjs +5 -3
  116. package/_cjs/data/Newtype.cjs.map +1 -1
  117. package/_cjs/data/Patch/api.cjs +1 -1
  118. package/_cjs/data/Patch/api.cjs.map +1 -1
  119. package/_cjs/data/Refinement/api.cjs +0 -4
  120. package/_cjs/data/Refinement/api.cjs.map +1 -1
  121. package/_cjs/data/Struct/definition.cjs +4 -2
  122. package/_cjs/data/Struct/definition.cjs.map +1 -1
  123. package/_cjs/data/These/api.cjs +299 -0
  124. package/_cjs/data/These/api.cjs.map +1 -0
  125. package/_cjs/data/These/constructors.cjs +24 -4
  126. package/_cjs/data/These/constructors.cjs.map +1 -1
  127. package/_cjs/data/These/definition.cjs +16 -0
  128. package/_cjs/data/These/definition.cjs.map +1 -1
  129. package/_cjs/data/These/destructors.cjs +70 -0
  130. package/_cjs/data/These/destructors.cjs.map +1 -1
  131. package/_cjs/data/These/instances.cjs +54 -0
  132. package/_cjs/data/These/instances.cjs.map +1 -0
  133. package/_cjs/data/These.cjs +13 -0
  134. package/_cjs/data/These.cjs.map +1 -1
  135. package/_cjs/data/bigint/definition.cjs +6 -0
  136. package/_cjs/data/bigint/definition.cjs.map +1 -0
  137. package/_cjs/data/bigint/instances.cjs +24 -0
  138. package/_cjs/data/bigint/instances.cjs.map +1 -0
  139. package/_cjs/data/bigint.cjs +32 -0
  140. package/_cjs/data/bigint.cjs.map +1 -0
  141. package/_cjs/data/boolean/definition.cjs +6 -0
  142. package/_cjs/data/boolean/definition.cjs.map +1 -0
  143. package/_cjs/data/boolean/instances.cjs +24 -0
  144. package/_cjs/data/boolean/instances.cjs.map +1 -0
  145. package/_cjs/data/boolean.cjs +32 -0
  146. package/_cjs/data/boolean.cjs.map +1 -0
  147. package/_cjs/data/number/instances.cjs +18 -5
  148. package/_cjs/data/number/instances.cjs.map +1 -1
  149. package/_cjs/data/object/instances.cjs +24 -0
  150. package/_cjs/data/object/instances.cjs.map +1 -0
  151. package/_cjs/data/string/instances.cjs +24 -9
  152. package/_cjs/data/string/instances.cjs.map +1 -1
  153. package/_cjs/internal/Stack.cjs +4 -0
  154. package/_cjs/internal/Stack.cjs.map +1 -1
  155. package/_cjs/json/EitherJson.cjs +33 -0
  156. package/_cjs/json/EitherJson.cjs.map +1 -0
  157. package/_cjs/json/MaybeJson.cjs +31 -0
  158. package/_cjs/json/MaybeJson.cjs.map +1 -0
  159. package/_cjs/json/TheseJson.cjs +37 -0
  160. package/_cjs/json/TheseJson.cjs.map +1 -0
  161. package/_cjs/optics/Optional/definition.cjs +6 -4
  162. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  163. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  164. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  165. package/_cjs/optics/Traversal/api/fromTraversable.cjs +4 -4
  166. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  167. package/_cjs/optics/Traversal/definition.cjs +17 -12
  168. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  169. package/_cjs/typeclass/Align.cjs +0 -20
  170. package/_cjs/typeclass/Align.cjs.map +1 -1
  171. package/_cjs/typeclass/Alt.cjs +5 -15
  172. package/_cjs/typeclass/Alt.cjs.map +1 -1
  173. package/_cjs/typeclass/Alternative.cjs +0 -23
  174. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  175. package/_cjs/typeclass/Applicative.cjs +0 -22
  176. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  177. package/_cjs/typeclass/ApplicativeExcept.cjs +40 -34
  178. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  179. package/_cjs/typeclass/Apply.cjs +93 -49
  180. package/_cjs/typeclass/Apply.cjs.map +1 -1
  181. package/_cjs/typeclass/Chain.cjs +40 -17
  182. package/_cjs/typeclass/Chain.cjs.map +1 -1
  183. package/_cjs/typeclass/Closure.cjs +1 -4
  184. package/_cjs/typeclass/Closure.cjs.map +1 -1
  185. package/_cjs/typeclass/Eq/definition.cjs +18 -0
  186. package/_cjs/typeclass/Eq/definition.cjs.map +1 -0
  187. package/_cjs/typeclass/Eq/derivations.cjs +59 -0
  188. package/_cjs/typeclass/Eq/derivations.cjs.map +1 -0
  189. package/_cjs/typeclass/Eq.cjs +11 -13
  190. package/_cjs/typeclass/Eq.cjs.map +1 -1
  191. package/_cjs/typeclass/Fail.cjs +6 -12
  192. package/_cjs/typeclass/Fail.cjs.map +1 -1
  193. package/_cjs/typeclass/Filterable.cjs +31 -18
  194. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  195. package/_cjs/typeclass/FilterableWithIndex.cjs +0 -26
  196. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  197. package/_cjs/typeclass/Foldable.cjs +33 -19
  198. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  199. package/_cjs/typeclass/FoldableWithIndex.cjs +33 -21
  200. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  201. package/_cjs/typeclass/Functor.cjs +19 -16
  202. package/_cjs/typeclass/Functor.cjs.map +1 -1
  203. package/_cjs/typeclass/FunctorWithIndex.cjs +0 -21
  204. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  205. package/_cjs/typeclass/Guard/api.cjs +40 -0
  206. package/_cjs/typeclass/Guard/api.cjs.map +1 -0
  207. package/_cjs/typeclass/Guard/definition.cjs +40 -0
  208. package/_cjs/typeclass/Guard/definition.cjs.map +1 -0
  209. package/_cjs/typeclass/Guard/derivations.cjs +85 -0
  210. package/_cjs/typeclass/Guard/derivations.cjs.map +1 -0
  211. package/_cjs/typeclass/Guard.cjs +32 -0
  212. package/_cjs/typeclass/Guard.cjs.map +1 -0
  213. package/_cjs/typeclass/HashEq.cjs +3 -3
  214. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  215. package/_cjs/typeclass/Monad.cjs +0 -22
  216. package/_cjs/typeclass/Monad.cjs.map +1 -1
  217. package/_cjs/typeclass/MonadExcept.cjs +12 -19
  218. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  219. package/_cjs/typeclass/Monoid.cjs +56 -2
  220. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  221. package/_cjs/typeclass/Nil.cjs +10 -0
  222. package/_cjs/typeclass/Nil.cjs.map +1 -1
  223. package/_cjs/typeclass/Ord/api/contramap.cjs +2 -4
  224. package/_cjs/typeclass/Ord/api/contramap.cjs.map +1 -1
  225. package/_cjs/typeclass/Ord/api/max.cjs +1 -1
  226. package/_cjs/typeclass/Ord/api/max.cjs.map +1 -1
  227. package/_cjs/typeclass/Ord/api/min.cjs +1 -1
  228. package/_cjs/typeclass/Ord/api/min.cjs.map +1 -1
  229. package/_cjs/typeclass/Ord/definition.cjs +2 -3
  230. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  231. package/_cjs/typeclass/Ord/instances.cjs +7 -7
  232. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  233. package/_cjs/typeclass/Pointed.cjs +6 -11
  234. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  235. package/_cjs/typeclass/Semialign.cjs +77 -94
  236. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  237. package/_cjs/typeclass/Semigroup/api.cjs +2 -2
  238. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  239. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  240. package/_cjs/typeclass/Semigroup/derivations.cjs +63 -0
  241. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -0
  242. package/_cjs/typeclass/Semimonoidal.cjs +9 -13
  243. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  244. package/_cjs/typeclass/Showable/show.cjs +11 -11
  245. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  246. package/_cjs/typeclass/Traversable.cjs +26 -34
  247. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  248. package/_cjs/typeclass/TraversableWithIndex.cjs +7 -38
  249. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  250. package/_cjs/typeclass/Witherable.cjs +41 -42
  251. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  252. package/_cjs/typeclass/WitherableWithIndex.cjs +41 -50
  253. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  254. package/_cjs/typeclass.cjs +13 -0
  255. package/_cjs/typeclass.cjs.map +1 -1
  256. package/_cjs/util/predicates.cjs +5 -0
  257. package/_cjs/util/predicates.cjs.map +1 -1
  258. package/_mjs/collection/Iterable/api/traverseConc.mjs +20 -15
  259. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  260. package/_mjs/collection/Iterable/api.mjs +21 -31
  261. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  262. package/_mjs/collection/compat/Array/api.mjs +1 -1
  263. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  264. package/_mjs/collection/immutable/Conc/api.mjs +35 -36
  265. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  266. package/_mjs/collection/immutable/Conc/definition.mjs +48 -39
  267. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  268. package/_mjs/collection/immutable/Dictionary/definition.mjs +3 -2
  269. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  270. package/_mjs/collection/immutable/HashMap/api.mjs +26 -66
  271. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  272. package/_mjs/collection/immutable/HashMap/definition.mjs +18 -15
  273. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  274. package/_mjs/collection/immutable/HashSet/api.mjs +5 -5
  275. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  276. package/_mjs/collection/immutable/ImmutableArray/api.mjs +135 -177
  277. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  278. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +11 -10
  279. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  280. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +151 -138
  281. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  282. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +108 -142
  283. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  284. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +2 -0
  285. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  286. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +46 -67
  287. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  288. package/_mjs/collection/immutable/List/api.mjs +4 -5
  289. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  290. package/_mjs/collection/immutable/RoseTree/api.mjs +447 -0
  291. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -0
  292. package/_mjs/collection/immutable/RoseTree/definition.mjs +35 -0
  293. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -0
  294. package/_mjs/collection/immutable/RoseTree.mjs +4 -0
  295. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -0
  296. package/_mjs/collection/immutable/SortedMap/api.mjs +65 -65
  297. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  298. package/_mjs/collection/immutable/Vector/api.mjs +59 -15
  299. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  300. package/_mjs/collection/immutable/Vector/definition.mjs +12 -11
  301. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  302. package/_mjs/collection/mutable/HashMap.mjs +5 -5
  303. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  304. package/_mjs/collection/mutable/HashSet.mjs +4 -4
  305. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  306. package/_mjs/control/Eval/api.mjs +5 -2
  307. package/_mjs/control/Eval/api.mjs.map +1 -1
  308. package/_mjs/control/Eval/definition.mjs +1 -0
  309. package/_mjs/control/Eval/definition.mjs.map +1 -1
  310. package/_mjs/control/Eval/instance.mjs +15 -18
  311. package/_mjs/control/Eval/instance.mjs.map +1 -1
  312. package/_mjs/control/Z/definition.mjs +2 -0
  313. package/_mjs/control/Z/definition.mjs.map +1 -1
  314. package/_mjs/control/Z/instances.mjs +7 -8
  315. package/_mjs/control/Z/instances.mjs.map +1 -1
  316. package/_mjs/data/Branded/definition.mjs +18 -0
  317. package/_mjs/data/Branded/definition.mjs.map +1 -0
  318. package/_mjs/data/Branded/derivations.mjs +39 -0
  319. package/_mjs/data/Branded/derivations.mjs.map +1 -0
  320. package/_mjs/data/Branded.mjs +4 -0
  321. package/_mjs/data/Branded.mjs.map +1 -0
  322. package/_mjs/data/Cause/api/fold.mjs +2 -0
  323. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  324. package/_mjs/data/Cause/api.mjs +20 -0
  325. package/_mjs/data/Cause/api.mjs.map +1 -1
  326. package/_mjs/data/Const/api.mjs +3 -3
  327. package/_mjs/data/Const/api.mjs.map +1 -1
  328. package/_mjs/data/Const/definition.mjs +13 -1
  329. package/_mjs/data/Const/definition.mjs.map +1 -1
  330. package/_mjs/data/Const/instances.mjs +7 -15
  331. package/_mjs/data/Const/instances.mjs.map +1 -1
  332. package/_mjs/data/DecodeError/definition.mjs +226 -0
  333. package/_mjs/data/DecodeError/definition.mjs.map +1 -0
  334. package/_mjs/data/DecodeError.mjs +3 -0
  335. package/_mjs/data/DecodeError.mjs.map +1 -0
  336. package/_mjs/data/Decoder/api.mjs +179 -0
  337. package/_mjs/data/Decoder/api.mjs.map +1 -0
  338. package/_mjs/data/Decoder/definition.mjs +24 -0
  339. package/_mjs/data/Decoder/definition.mjs.map +1 -0
  340. package/_mjs/data/Decoder.mjs +4 -0
  341. package/_mjs/data/Decoder.mjs.map +1 -0
  342. package/_mjs/data/Duration/api.mjs +17 -8
  343. package/_mjs/data/Duration/api.mjs.map +1 -1
  344. package/_mjs/data/Either/api/alignWith.mjs +2 -0
  345. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  346. package/_mjs/data/Either/api.mjs +91 -21
  347. package/_mjs/data/Either/api.mjs.map +1 -1
  348. package/_mjs/data/Either/definition.mjs +25 -5
  349. package/_mjs/data/Either/definition.mjs.map +1 -1
  350. package/_mjs/data/Either/destructors.mjs +2 -0
  351. package/_mjs/data/Either/destructors.mjs.map +1 -1
  352. package/_mjs/data/Either/instances.mjs +109 -39
  353. package/_mjs/data/Either/instances.mjs.map +1 -1
  354. package/_mjs/data/Environment/api.mjs +23 -7
  355. package/_mjs/data/Environment/api.mjs.map +1 -1
  356. package/_mjs/data/Identity/api.mjs +24 -5
  357. package/_mjs/data/Identity/api.mjs.map +1 -1
  358. package/_mjs/data/Identity/definition.mjs +3 -1
  359. package/_mjs/data/Identity/definition.mjs.map +1 -1
  360. package/_mjs/data/Identity/instances.mjs +12 -18
  361. package/_mjs/data/Identity/instances.mjs.map +1 -1
  362. package/_mjs/data/Interval.mjs +114 -0
  363. package/_mjs/data/Interval.mjs.map +1 -0
  364. package/_mjs/data/Maybe/api.mjs +30 -35
  365. package/_mjs/data/Maybe/api.mjs.map +1 -1
  366. package/_mjs/data/Maybe/definition.mjs +37 -14
  367. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  368. package/_mjs/data/Maybe/destructors.mjs +1 -0
  369. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  370. package/_mjs/data/Maybe/instances.mjs +56 -39
  371. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  372. package/_mjs/data/Newtype.mjs +4 -3
  373. package/_mjs/data/Newtype.mjs.map +1 -1
  374. package/_mjs/data/Patch/api.mjs +1 -1
  375. package/_mjs/data/Patch/api.mjs.map +1 -1
  376. package/_mjs/data/Refinement/api.mjs +0 -4
  377. package/_mjs/data/Refinement/api.mjs.map +1 -1
  378. package/_mjs/data/Struct/definition.mjs +3 -2
  379. package/_mjs/data/Struct/definition.mjs.map +1 -1
  380. package/_mjs/data/These/api.mjs +262 -0
  381. package/_mjs/data/These/api.mjs.map +1 -0
  382. package/_mjs/data/These/constructors.mjs +14 -2
  383. package/_mjs/data/These/constructors.mjs.map +1 -1
  384. package/_mjs/data/These/definition.mjs +8 -0
  385. package/_mjs/data/These/definition.mjs.map +1 -1
  386. package/_mjs/data/These/destructors.mjs +53 -0
  387. package/_mjs/data/These/destructors.mjs.map +1 -1
  388. package/_mjs/data/These/instances.mjs +36 -0
  389. package/_mjs/data/These/instances.mjs.map +1 -0
  390. package/_mjs/data/These.mjs +1 -0
  391. package/_mjs/data/These.mjs.map +1 -1
  392. package/_mjs/data/bigint/definition.mjs +2 -0
  393. package/_mjs/data/bigint/definition.mjs.map +1 -0
  394. package/_mjs/data/bigint/instances.mjs +10 -0
  395. package/_mjs/data/bigint/instances.mjs.map +1 -0
  396. package/_mjs/data/bigint.mjs +4 -0
  397. package/_mjs/data/bigint.mjs.map +1 -0
  398. package/_mjs/data/boolean/definition.mjs +2 -0
  399. package/_mjs/data/boolean/definition.mjs.map +1 -0
  400. package/_mjs/data/boolean/instances.mjs +10 -0
  401. package/_mjs/data/boolean/instances.mjs.map +1 -0
  402. package/_mjs/data/boolean.mjs +4 -0
  403. package/_mjs/data/boolean.mjs.map +1 -0
  404. package/_mjs/data/number/instances.mjs +14 -4
  405. package/_mjs/data/number/instances.mjs.map +1 -1
  406. package/_mjs/data/object/instances.mjs +10 -0
  407. package/_mjs/data/object/instances.mjs.map +1 -0
  408. package/_mjs/data/string/instances.mjs +20 -8
  409. package/_mjs/data/string/instances.mjs.map +1 -1
  410. package/_mjs/internal/Stack.mjs +4 -0
  411. package/_mjs/internal/Stack.mjs.map +1 -1
  412. package/_mjs/json/EitherJson.mjs +18 -0
  413. package/_mjs/json/EitherJson.mjs.map +1 -0
  414. package/_mjs/json/MaybeJson.mjs +16 -0
  415. package/_mjs/json/MaybeJson.mjs.map +1 -0
  416. package/_mjs/json/TheseJson.mjs +22 -0
  417. package/_mjs/json/TheseJson.mjs.map +1 -0
  418. package/_mjs/optics/Optional/definition.mjs +5 -4
  419. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  420. package/_mjs/optics/Traversal/api/compose.mjs +1 -1
  421. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  422. package/_mjs/optics/Traversal/api/fromTraversable.mjs +5 -4
  423. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  424. package/_mjs/optics/Traversal/definition.mjs +14 -12
  425. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  426. package/_mjs/typeclass/Align.mjs +0 -11
  427. package/_mjs/typeclass/Align.mjs.map +1 -1
  428. package/_mjs/typeclass/Alt.mjs +4 -7
  429. package/_mjs/typeclass/Alt.mjs.map +1 -1
  430. package/_mjs/typeclass/Alternative.mjs +0 -13
  431. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  432. package/_mjs/typeclass/Applicative.mjs +0 -12
  433. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  434. package/_mjs/typeclass/ApplicativeExcept.mjs +32 -24
  435. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  436. package/_mjs/typeclass/Apply.mjs +85 -42
  437. package/_mjs/typeclass/Apply.mjs.map +1 -1
  438. package/_mjs/typeclass/Chain.mjs +33 -12
  439. package/_mjs/typeclass/Chain.mjs.map +1 -1
  440. package/_mjs/typeclass/Closure.mjs +1 -4
  441. package/_mjs/typeclass/Closure.mjs.map +1 -1
  442. package/_mjs/typeclass/Eq/definition.mjs +9 -0
  443. package/_mjs/typeclass/Eq/definition.mjs.map +1 -0
  444. package/_mjs/typeclass/Eq/derivations.mjs +46 -0
  445. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -0
  446. package/_mjs/typeclass/Eq.mjs +1 -11
  447. package/_mjs/typeclass/Eq.mjs.map +1 -1
  448. package/_mjs/typeclass/Fail.mjs +5 -7
  449. package/_mjs/typeclass/Fail.mjs.map +1 -1
  450. package/_mjs/typeclass/Filterable.mjs +27 -13
  451. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  452. package/_mjs/typeclass/FilterableWithIndex.mjs +0 -16
  453. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  454. package/_mjs/typeclass/Foldable.mjs +29 -12
  455. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  456. package/_mjs/typeclass/FoldableWithIndex.mjs +29 -13
  457. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  458. package/_mjs/typeclass/Functor.mjs +16 -9
  459. package/_mjs/typeclass/Functor.mjs.map +1 -1
  460. package/_mjs/typeclass/FunctorWithIndex.mjs +0 -12
  461. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  462. package/_mjs/typeclass/Guard/api.mjs +23 -0
  463. package/_mjs/typeclass/Guard/api.mjs.map +1 -0
  464. package/_mjs/typeclass/Guard/definition.mjs +23 -0
  465. package/_mjs/typeclass/Guard/definition.mjs.map +1 -0
  466. package/_mjs/typeclass/Guard/derivations.mjs +67 -0
  467. package/_mjs/typeclass/Guard/derivations.mjs.map +1 -0
  468. package/_mjs/typeclass/Guard.mjs +4 -0
  469. package/_mjs/typeclass/Guard.mjs.map +1 -0
  470. package/_mjs/typeclass/HashEq.mjs +3 -3
  471. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  472. package/_mjs/typeclass/Monad.mjs +0 -12
  473. package/_mjs/typeclass/Monad.mjs.map +1 -1
  474. package/_mjs/typeclass/MonadExcept.mjs +9 -13
  475. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  476. package/_mjs/typeclass/Monoid.mjs +50 -1
  477. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  478. package/_mjs/typeclass/Nil.mjs +8 -1
  479. package/_mjs/typeclass/Nil.mjs.map +1 -1
  480. package/_mjs/typeclass/Ord/api/contramap.mjs +2 -4
  481. package/_mjs/typeclass/Ord/api/contramap.mjs.map +1 -1
  482. package/_mjs/typeclass/Ord/api/max.mjs +1 -1
  483. package/_mjs/typeclass/Ord/api/max.mjs.map +1 -1
  484. package/_mjs/typeclass/Ord/api/min.mjs +1 -1
  485. package/_mjs/typeclass/Ord/api/min.mjs.map +1 -1
  486. package/_mjs/typeclass/Ord/definition.mjs +2 -3
  487. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  488. package/_mjs/typeclass/Ord/instances.mjs +7 -7
  489. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  490. package/_mjs/typeclass/Pointed.mjs +5 -4
  491. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  492. package/_mjs/typeclass/Semialign.mjs +67 -74
  493. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  494. package/_mjs/typeclass/Semigroup/api.mjs +2 -2
  495. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  496. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  497. package/_mjs/typeclass/Semigroup/derivations.mjs +50 -0
  498. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -0
  499. package/_mjs/typeclass/Semigroup.mjs +1 -1
  500. package/_mjs/typeclass/Semimonoidal.mjs +8 -6
  501. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  502. package/_mjs/typeclass/Showable/show.mjs +11 -11
  503. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  504. package/_mjs/typeclass/Traversable.mjs +25 -24
  505. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  506. package/_mjs/typeclass/TraversableWithIndex.mjs +6 -24
  507. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  508. package/_mjs/typeclass/Witherable.mjs +39 -32
  509. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  510. package/_mjs/typeclass/WitherableWithIndex.mjs +39 -37
  511. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  512. package/_mjs/typeclass.mjs +1 -0
  513. package/_mjs/typeclass.mjs.map +1 -1
  514. package/_mjs/util/predicates.mjs +3 -0
  515. package/_mjs/util/predicates.mjs.map +1 -1
  516. package/_src/collection/Iterable/api/traverseConc.ts +21 -29
  517. package/_src/collection/Iterable/api.ts +20 -34
  518. package/_src/collection/compat/Array/api.ts +1 -1
  519. package/_src/collection/immutable/Conc/api.ts +26 -46
  520. package/_src/collection/immutable/Conc/definition.ts +19 -8
  521. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  522. package/_src/collection/immutable/HashMap/api.ts +24 -81
  523. package/_src/collection/immutable/HashMap/definition.ts +7 -9
  524. package/_src/collection/immutable/HashMap/internal.ts +1 -1
  525. package/_src/collection/immutable/HashSet/api.ts +4 -4
  526. package/_src/collection/immutable/ImmutableArray/api.ts +180 -219
  527. package/_src/collection/immutable/ImmutableArray/definition.ts +6 -8
  528. package/_src/collection/immutable/ImmutableArray/instances.ts +156 -134
  529. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +87 -158
  530. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +4 -8
  531. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +39 -49
  532. package/_src/collection/immutable/List/api.ts +2 -6
  533. package/_src/collection/immutable/RoseTree/api.ts +278 -0
  534. package/_src/collection/immutable/RoseTree/definition.ts +29 -0
  535. package/_src/collection/immutable/RoseTree.ts +4 -0
  536. package/_src/collection/immutable/SortedMap/api.ts +56 -53
  537. package/_src/collection/immutable/Vector/api.ts +57 -17
  538. package/_src/collection/immutable/Vector/definition.ts +10 -0
  539. package/_src/collection/mutable/HashMap.ts +5 -5
  540. package/_src/collection/mutable/HashSet.ts +4 -4
  541. package/_src/control/Eval/api.ts +5 -1
  542. package/_src/control/Eval/definition.ts +5 -8
  543. package/_src/control/Eval/instance.ts +16 -15
  544. package/_src/control/Z/definition.ts +26 -19
  545. package/_src/control/Z/instances.ts +9 -8
  546. package/_src/data/Branded/definition.ts +47 -0
  547. package/_src/data/Branded/derivations.ts +57 -0
  548. package/_src/data/Branded.ts +4 -0
  549. package/_src/data/Cause/api/fold.ts +1 -0
  550. package/_src/data/Cause/api.ts +18 -0
  551. package/_src/data/Const/api.ts +3 -3
  552. package/_src/data/Const/definition.ts +22 -5
  553. package/_src/data/Const/instances.ts +12 -21
  554. package/_src/data/DecodeError/definition.ts +227 -0
  555. package/_src/data/DecodeError.ts +3 -0
  556. package/_src/data/Decoder/api.ts +198 -0
  557. package/_src/data/Decoder/definition.ts +25 -0
  558. package/_src/data/Decoder.ts +4 -0
  559. package/_src/data/Duration/api.ts +21 -14
  560. package/_src/data/Either/api/alignWith.ts +2 -0
  561. package/_src/data/Either/api.ts +85 -30
  562. package/_src/data/Either/definition.ts +41 -19
  563. package/_src/data/Either/destructors.ts +1 -0
  564. package/_src/data/Either/instances.ts +102 -51
  565. package/_src/data/Environment/api.ts +19 -4
  566. package/_src/data/Identity/api.ts +19 -4
  567. package/_src/data/Identity/definition.ts +7 -3
  568. package/_src/data/Identity/instances.ts +15 -8
  569. package/_src/data/Interval.ts +103 -0
  570. package/_src/data/Maybe/api.ts +21 -31
  571. package/_src/data/Maybe/definition.ts +31 -19
  572. package/_src/data/Maybe/destructors.ts +1 -0
  573. package/_src/data/Maybe/instances.ts +61 -34
  574. package/_src/data/Newtype.ts +11 -32
  575. package/_src/data/Patch/api.ts +1 -1
  576. package/_src/data/Refinement/api.ts +4 -2
  577. package/_src/data/Struct/definition.ts +1 -1
  578. package/_src/data/These/api.ts +184 -0
  579. package/_src/data/These/constructors.ts +10 -0
  580. package/_src/data/These/definition.ts +7 -0
  581. package/_src/data/These/destructors.ts +45 -0
  582. package/_src/data/These/instances.ts +43 -0
  583. package/_src/data/These.ts +1 -0
  584. package/_src/data/bigint/definition.ts +13 -0
  585. package/_src/data/bigint/instances.ts +8 -0
  586. package/_src/data/bigint.ts +4 -0
  587. package/_src/data/boolean/definition.ts +13 -0
  588. package/_src/data/boolean/instances.ts +8 -0
  589. package/_src/data/boolean.ts +4 -0
  590. package/_src/data/number/instances.ts +13 -3
  591. package/_src/data/object/instances.ts +7 -0
  592. package/_src/data/string/instances.ts +17 -5
  593. package/_src/internal/Stack.ts +4 -0
  594. package/_src/json/EitherJson.ts +28 -0
  595. package/_src/json/MaybeJson.ts +27 -0
  596. package/_src/json/TheseJson.ts +31 -0
  597. package/_src/optics/Optional/definition.ts +2 -2
  598. package/_src/optics/Traversal/api/compose.ts +1 -1
  599. package/_src/optics/Traversal/api/fromTraversable.ts +15 -41
  600. package/_src/optics/Traversal/definition.ts +21 -23
  601. package/_src/typeclass/Align.ts +4 -18
  602. package/_src/typeclass/Alt.ts +59 -90
  603. package/_src/typeclass/Alternative.ts +4 -20
  604. package/_src/typeclass/Applicative.ts +3 -23
  605. package/_src/typeclass/ApplicativeExcept.ts +94 -193
  606. package/_src/typeclass/Apply.ts +319 -509
  607. package/_src/typeclass/Chain.ts +127 -199
  608. package/_src/typeclass/Closure.ts +4 -20
  609. package/_src/typeclass/Eq/definition.ts +20 -0
  610. package/_src/typeclass/Eq/derivations.ts +61 -0
  611. package/_src/typeclass/Eq.ts +2 -36
  612. package/_src/typeclass/Fail.ts +28 -27
  613. package/_src/typeclass/Filterable.ts +70 -117
  614. package/_src/typeclass/FilterableWithIndex.ts +27 -131
  615. package/_src/typeclass/Foldable.ts +35 -52
  616. package/_src/typeclass/FoldableWithIndex.ts +40 -75
  617. package/_src/typeclass/Functor.ts +21 -59
  618. package/_src/typeclass/FunctorWithIndex.ts +6 -34
  619. package/_src/typeclass/Guard/api.ts +32 -0
  620. package/_src/typeclass/Guard/definition.ts +23 -0
  621. package/_src/typeclass/Guard/derivations.ts +80 -0
  622. package/_src/typeclass/Guard.ts +5 -0
  623. package/_src/typeclass/HashEq.ts +3 -4
  624. package/_src/typeclass/Monad.ts +3 -18
  625. package/_src/typeclass/MonadExcept.ts +9 -32
  626. package/_src/typeclass/Monoid.ts +60 -2
  627. package/_src/typeclass/Nil.ts +26 -17
  628. package/_src/typeclass/Ord/api/contramap.ts +2 -4
  629. package/_src/typeclass/Ord/api/max.ts +1 -1
  630. package/_src/typeclass/Ord/api/min.ts +1 -1
  631. package/_src/typeclass/Ord/definition.ts +3 -19
  632. package/_src/typeclass/Ord/instances.ts +6 -6
  633. package/_src/typeclass/Pointed.ts +29 -25
  634. package/_src/typeclass/Semialign.ts +308 -444
  635. package/_src/typeclass/Semigroup/api.ts +2 -2
  636. package/_src/typeclass/Semigroup/definition.ts +2 -6
  637. package/_src/typeclass/Semigroup/derivations.ts +64 -0
  638. package/_src/typeclass/Semigroup.ts +1 -1
  639. package/_src/typeclass/Semimonoidal.ts +55 -84
  640. package/_src/typeclass/Showable/show.ts +6 -8
  641. package/_src/typeclass/Traversable.ts +67 -157
  642. package/_src/typeclass/TraversableWithIndex.ts +37 -127
  643. package/_src/typeclass/Witherable.ts +120 -279
  644. package/_src/typeclass/WitherableWithIndex.ts +129 -337
  645. package/_src/typeclass.ts +2 -0
  646. package/_src/util/predicates.ts +4 -0
  647. package/collection/Iterable/api/traverseConc.d.ts +6 -4
  648. package/collection/Iterable/api.d.ts +5 -13
  649. package/collection/immutable/Conc/api.d.ts +15 -23
  650. package/collection/immutable/Conc/definition.d.ts +10 -7
  651. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  652. package/collection/immutable/HashMap/api.d.ts +15 -27
  653. package/collection/immutable/HashMap/definition.d.ts +6 -9
  654. package/collection/immutable/HashMap/internal.d.ts +1 -1
  655. package/collection/immutable/ImmutableArray/api.d.ts +42 -94
  656. package/collection/immutable/ImmutableArray/definition.d.ts +6 -8
  657. package/collection/immutable/ImmutableArray/instances.d.ts +86 -17
  658. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +26 -47
  659. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +4 -8
  660. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +1 -1
  661. package/collection/immutable/List/api.d.ts +1 -2
  662. package/collection/immutable/RoseTree/api.d.ts +63 -0
  663. package/collection/immutable/RoseTree/definition.d.ts +23 -0
  664. package/collection/immutable/RoseTree.d.ts +2 -0
  665. package/collection/immutable/SortedMap/api.d.ts +2 -1
  666. package/collection/immutable/Vector/api.d.ts +31 -8
  667. package/collection/immutable/Vector/definition.d.ts +10 -0
  668. package/control/Eval/api.d.ts +1 -0
  669. package/control/Eval/definition.d.ts +5 -8
  670. package/control/Eval/instance.d.ts +4 -1
  671. package/control/Z/definition.d.ts +23 -18
  672. package/control/Z/instances.d.ts +4 -3
  673. package/data/Branded/definition.d.ts +36 -0
  674. package/data/Branded/derivations.d.ts +24 -0
  675. package/data/Branded.d.ts +2 -0
  676. package/data/Cause/api.d.ts +7 -1
  677. package/data/Const/api.d.ts +1 -1
  678. package/data/Const/definition.d.ts +23 -7
  679. package/data/Const/instances.d.ts +4 -12
  680. package/data/DecodeError/definition.d.ts +141 -0
  681. package/data/DecodeError.d.ts +1 -0
  682. package/data/Decoder/api.d.ts +65 -0
  683. package/data/Decoder/definition.d.ts +24 -0
  684. package/data/Decoder.d.ts +2 -0
  685. package/data/Duration/api.d.ts +12 -8
  686. package/data/Either/api.d.ts +29 -17
  687. package/data/Either/definition.d.ts +31 -14
  688. package/data/Either/instances.d.ts +26 -11
  689. package/data/Environment/api.d.ts +5 -0
  690. package/data/Identity/api.d.ts +11 -0
  691. package/data/Identity/definition.d.ts +7 -2
  692. package/data/Identity/instances.d.ts +5 -9
  693. package/data/Interval.d.ts +71 -0
  694. package/data/Maybe/api.d.ts +3 -17
  695. package/data/Maybe/definition.d.ts +20 -14
  696. package/data/Maybe/instances.d.ts +14 -8
  697. package/data/Newtype.d.ts +8 -9
  698. package/data/Refinement/api.d.ts +2 -0
  699. package/data/Struct/definition.d.ts +1 -1
  700. package/data/These/api.d.ts +73 -0
  701. package/data/These/constructors.d.ts +7 -1
  702. package/data/These/definition.d.ts +5 -0
  703. package/data/These/destructors.d.ts +27 -1
  704. package/data/These/instances.d.ts +13 -0
  705. package/data/These.d.ts +1 -0
  706. package/data/bigint/definition.d.ts +13 -0
  707. package/data/bigint/instances.d.ts +7 -0
  708. package/data/bigint.d.ts +2 -0
  709. package/data/boolean/definition.d.ts +13 -0
  710. package/data/boolean/instances.d.ts +7 -0
  711. package/data/boolean.d.ts +2 -0
  712. package/data/number/instances.d.ts +8 -0
  713. package/data/object/instances.d.ts +7 -0
  714. package/data/string/instances.d.ts +10 -0
  715. package/internal/Stack.d.ts +1 -0
  716. package/json/EitherJson.d.ts +24 -0
  717. package/json/MaybeJson.d.ts +23 -0
  718. package/json/TheseJson.d.ts +26 -0
  719. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  720. package/optics/Traversal/definition.d.ts +4 -9
  721. package/package.json +2 -2
  722. package/typeclass/Align.d.ts +3 -10
  723. package/typeclass/Alt.d.ts +6 -19
  724. package/typeclass/Alternative.d.ts +4 -12
  725. package/typeclass/Applicative.d.ts +3 -12
  726. package/typeclass/ApplicativeExcept.d.ts +14 -39
  727. package/typeclass/Apply.d.ts +41 -72
  728. package/typeclass/Chain.d.ts +18 -28
  729. package/typeclass/Closure.d.ts +2 -12
  730. package/typeclass/Eq/definition.d.ts +17 -0
  731. package/typeclass/Eq/derivations.d.ts +24 -0
  732. package/typeclass/Eq.d.ts +2 -27
  733. package/typeclass/Fail.d.ts +4 -10
  734. package/typeclass/Filterable.d.ts +30 -51
  735. package/typeclass/FilterableWithIndex.d.ts +10 -53
  736. package/typeclass/Foldable.d.ts +19 -31
  737. package/typeclass/FoldableWithIndex.d.ts +20 -33
  738. package/typeclass/Functor.d.ts +11 -22
  739. package/typeclass/FunctorWithIndex.d.ts +3 -19
  740. package/typeclass/Guard/api.d.ts +20 -0
  741. package/typeclass/Guard/definition.d.ts +22 -0
  742. package/typeclass/Guard/derivations.d.ts +36 -0
  743. package/typeclass/Guard.d.ts +2 -0
  744. package/typeclass/HashEq.d.ts +1 -2
  745. package/typeclass/Monad.d.ts +3 -11
  746. package/typeclass/MonadExcept.d.ts +6 -17
  747. package/typeclass/Monoid.d.ts +24 -2
  748. package/typeclass/Nil.d.ts +7 -8
  749. package/typeclass/Ord/definition.d.ts +2 -14
  750. package/typeclass/Pointed.d.ts +4 -10
  751. package/typeclass/Semialign.d.ts +51 -63
  752. package/typeclass/Semigroup/definition.d.ts +3 -5
  753. package/typeclass/Semigroup/derivations.d.ts +25 -0
  754. package/typeclass/Semimonoidal.d.ts +5 -14
  755. package/typeclass/Traversable.d.ts +17 -57
  756. package/typeclass/TraversableWithIndex.d.ts +9 -52
  757. package/typeclass/Witherable.d.ts +22 -82
  758. package/typeclass/WitherableWithIndex.d.ts +26 -98
  759. package/typeclass.d.ts +1 -0
  760. package/util/predicates.d.ts +1 -0
@@ -1,9 +1,11 @@
1
1
  import type { ImmutableNonEmptyArrayF } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/definition";
2
+ import type * as P from "@fncts/base/typeclass";
2
3
 
3
4
  import {
4
5
  align_,
5
6
  alignWith_,
6
7
  ap_,
8
+ cross_,
7
9
  crossWith_,
8
10
  flatMap_,
9
11
  foldLeft_,
@@ -16,100 +18,88 @@ import {
16
18
  traverseWithIndex_,
17
19
  } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/api";
18
20
  import { make } from "@fncts/base/collection/immutable/ImmutableNonEmptyArray/constructors";
19
- import * as P from "@fncts/base/typeclass";
20
21
 
21
22
  /**
22
23
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Semialign
23
24
  */
24
- export const Semialign: P.Semialign<ImmutableNonEmptyArrayF> = P.Semialign({
25
- map_,
26
- alignWith_,
27
- align_,
28
- });
25
+ export const Semialign: P.Semialign<ImmutableNonEmptyArrayF> = {
26
+ map: map_,
27
+ alignWith: alignWith_,
28
+ };
29
29
 
30
30
  /**
31
31
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Functor
32
32
  */
33
- export const Functor: P.Functor<ImmutableNonEmptyArrayF> = P.Functor({
34
- map_,
35
- });
33
+ export const Functor: P.Functor<ImmutableNonEmptyArrayF> = {
34
+ map: map_,
35
+ };
36
36
 
37
37
  /**
38
38
  * @tsplus static fncts.ImmutableNonEmptyArrayOps FunctorWithIndex
39
39
  */
40
- export const FunctorWithIndex: P.FunctorWithIndex<ImmutableNonEmptyArrayF> = P.FunctorWithIndex({
41
- map_,
42
- mapWithIndex_,
43
- });
40
+ export const FunctorWithIndex: P.FunctorWithIndex<ImmutableNonEmptyArrayF> = {
41
+ map: map_,
42
+ mapWithIndex: mapWithIndex_,
43
+ };
44
44
 
45
45
  /**
46
46
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Apply
47
47
  */
48
- export const Apply: P.Apply<ImmutableNonEmptyArrayF> = P.Apply({
49
- map_,
50
- zipWith_: crossWith_,
51
- ap_,
48
+ export const Apply: P.Apply<ImmutableNonEmptyArrayF> = ({
49
+ ...Functor,
50
+ zip: cross_,
51
+ zipWith: crossWith_,
52
52
  });
53
53
 
54
54
  /**
55
55
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Applicative
56
56
  */
57
- export const Applicative: P.Applicative<ImmutableNonEmptyArrayF> = P.Applicative({
58
- map_,
59
- zipWith_: crossWith_,
60
- ap_,
57
+ export const Applicative: P.Applicative<ImmutableNonEmptyArrayF> = ({
58
+ ...Apply,
61
59
  pure: make,
62
60
  });
63
61
 
64
62
  /**
65
63
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Monad
66
64
  */
67
- export const Monad: P.Monad<ImmutableNonEmptyArrayF> = P.Monad({
68
- map_,
69
- zipWith_: crossWith_,
70
- ap_,
71
- pure: make,
72
- flatMap_: flatMap_,
65
+ export const Monad: P.Monad<ImmutableNonEmptyArrayF> = ({
66
+ ...Applicative,
67
+ flatMap: flatMap_,
73
68
  });
74
69
 
75
70
  /**
76
71
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Foldable
77
72
  */
78
- export const Foldable: P.Foldable<ImmutableNonEmptyArrayF> = P.Foldable({
79
- foldLeft_,
80
- foldRight_,
73
+ export const Foldable: P.Foldable<ImmutableNonEmptyArrayF> = ({
74
+ foldLeft: foldLeft_,
75
+ foldRight: foldRight_,
81
76
  });
82
77
 
83
78
  /**
84
79
  * @tsplus static fncts.ImmutableNonEmptyArrayOps FoldableWithIndex
85
80
  */
86
- export const FoldableWithIndex: P.FoldableWithIndex<ImmutableNonEmptyArrayF> = P.FoldableWithIndex({
87
- foldLeft_,
88
- foldRight_,
89
- foldLeftWithIndex_,
90
- foldRightWithIndex_,
81
+ export const FoldableWithIndex: P.FoldableWithIndex<ImmutableNonEmptyArrayF> = ({
82
+ ...Foldable,
83
+ foldLeftWithIndex: foldLeftWithIndex_,
84
+ foldRightWithIndex: foldRightWithIndex_,
91
85
  });
92
86
 
93
87
  /**
94
88
  * @tsplus static fncts.ImmutableNonEmptyArrayOps Traversable
95
89
  */
96
- export const Traversable: P.Traversable<ImmutableNonEmptyArrayF> = P.Traversable({
97
- map_,
98
- foldLeft_,
99
- foldRight_,
100
- traverse_,
90
+ export const Traversable: P.Traversable<ImmutableNonEmptyArrayF> = ({
91
+ ...Functor,
92
+ ...Foldable,
93
+ traverse: traverse_,
101
94
  });
102
95
 
103
96
  /**
104
97
  * @tsplus static fncts.ImmutableNonEmptyArrayOps TraversableWithIndex
105
98
  */
106
- export const TraversableWithIndex: P.TraversableWithIndex<ImmutableNonEmptyArrayF> = P.TraversableWithIndex({
107
- map_,
108
- foldLeft_,
109
- foldRight_,
110
- traverse_,
111
- mapWithIndex_,
112
- foldLeftWithIndex_,
113
- foldRightWithIndex_,
114
- traverseWithIndex_,
99
+ export const TraversableWithIndex: P.TraversableWithIndex<ImmutableNonEmptyArrayF> = ({
100
+ ...Functor,
101
+ ...FunctorWithIndex,
102
+ ...FoldableWithIndex,
103
+ ...Traversable,
104
+ traverseWithIndex: traverseWithIndex_,
115
105
  });
@@ -252,15 +252,11 @@ export function reverse<A>(self: List<A>): List<A> {
252
252
  return result;
253
253
  }
254
254
 
255
- export function sort<A>(O: P.Ord<A>) {
256
- return (self: List<A>): List<A> => sortWith_(self, O.compare_);
257
- }
258
-
259
255
  /**
260
256
  * @tsplus fluent fncts.List sort
261
257
  */
262
- export function sortSelf<A>(self: List<A>, O: P.Ord<A>): List<A> {
263
- return self.sortWith(O.compare_);
258
+ export function sort<A>(self: List<A>, /** @tsplus auto */ O: P.Ord<A>): List<A> {
259
+ return sortWith_(self, O.compare);
264
260
  }
265
261
 
266
262
  /**
@@ -0,0 +1,278 @@
1
+ /**
2
+ * @tsplus static fncts.RoseTreeOps __call
3
+ */
4
+ export function make<A>(value: A, forest: Vector<RoseTree<A>> = Vector.empty()): RoseTree<A> {
5
+ return new RoseTree(value, forest);
6
+ }
7
+
8
+ /**
9
+ * @tsplus fluent fncts.RoseTree foldLeft
10
+ */
11
+ export function foldLeft<A, B>(self: RoseTree<A>, b: B, f: (b: B, a: A) => B): B {
12
+ return foldLeftLoop(f, b, Vector(self), Vector());
13
+ }
14
+
15
+ /**
16
+ * @tsplus fluent fncts.RoseTree foldRight
17
+ */
18
+ export function foldRight<A, B>(self: RoseTree<A>, b: B, f: (a: A, b: B) => B): B {
19
+ return self.foldLeft(Vector<A>(), (b, a) => b.prepend(a)).foldLeft(b, (b, a) => f(a, b));
20
+ }
21
+
22
+ /**
23
+ * @tsplus tailRec
24
+ */
25
+ function foldLeftLoop<A, B>(
26
+ f: (b: B, a: A) => B,
27
+ b: B,
28
+ trees: Vector<RoseTree<A>>,
29
+ nextSets: Vector<Vector<RoseTree<A>>>,
30
+ ): B {
31
+ if (trees.isEmpty()) {
32
+ if (nextSets.isEmpty()) {
33
+ return b;
34
+ } else {
35
+ return foldLeftLoop(f, b, nextSets.unsafeHead!, nextSets.tail);
36
+ }
37
+ } else {
38
+ const tree = trees.unsafeHead!;
39
+ if (tree.forest.isEmpty()) {
40
+ return foldLeftLoop(f, f(b, tree.value), trees.tail, nextSets);
41
+ } else {
42
+ return foldLeftLoop(f, f(b, tree.value), tree.forest, trees.tail + nextSets);
43
+ }
44
+ }
45
+ }
46
+
47
+ /**
48
+ * @tsplus fluent fncts.RoseTree map
49
+ */
50
+ export function map<A, B>(self: RoseTree<A>, f: (a: A) => B): RoseTree<B> {
51
+ return self.mapAccum(undefined, (_, a) => [undefined, f(a)])[1];
52
+ }
53
+
54
+ /**
55
+ * @tsplus fluent fncts.RoseTree mapAccum
56
+ */
57
+ export function mapAccum<A, S, B>(
58
+ self: RoseTree<A>,
59
+ s: S,
60
+ f: (s: S, a: A) => readonly [S, B],
61
+ ): readonly [S, RoseTree<B>] {
62
+ const [state, b] = f(s, self.value);
63
+ return mapAccumLoop(f, state, { todo: self.forest, done: Vector(), label: b }, List());
64
+ }
65
+
66
+ /**
67
+ * @tsplus fluent fncts.RoseTree mapWithIndex
68
+ */
69
+ export function mapWithIndex<A, B>(self: RoseTree<A>, f: (i: number, a: A) => B): RoseTree<B> {
70
+ return self.mapAccum(0, (idx, elem) => [idx + 1, f(idx, elem)])[1];
71
+ }
72
+
73
+ interface MapAcc<A, B> {
74
+ readonly todo: Vector<RoseTree<A>>;
75
+ readonly done: Vector<RoseTree<B>>;
76
+ readonly label: B;
77
+ }
78
+
79
+ /**
80
+ * @tsplus tailRec
81
+ */
82
+ function mapAccumLoop<S, A, B>(
83
+ f: (s: S, a: A) => readonly [S, B],
84
+ state: S,
85
+ acc: MapAcc<A, B>,
86
+ stack: List<MapAcc<A, B>>,
87
+ ): readonly [S, RoseTree<B>] {
88
+ if (acc.todo.isEmpty()) {
89
+ const node = RoseTree(acc.label, acc.done.reverse);
90
+ if (stack.isEmpty()) {
91
+ return [state, node];
92
+ }
93
+ const top = stack.head;
94
+ return mapAccumLoop(f, state, { label: top.label, todo: top.todo, done: node + top.done }, stack.tail);
95
+ } else {
96
+ const head = acc.todo.unsafeHead!;
97
+ const [state_, label_] = f(state, head.value);
98
+ if (head.forest.isEmpty()) {
99
+ return mapAccumLoop(
100
+ f,
101
+ state_,
102
+ { label: acc.label, todo: acc.todo.tail, done: RoseTree(label_, Vector()) + acc.done },
103
+ stack,
104
+ );
105
+ }
106
+ return mapAccumLoop(
107
+ f,
108
+ state_,
109
+ { label: label_, todo: head.forest, done: Vector() },
110
+ Cons({ label: acc.label, done: acc.done, todo: acc.todo.tail }, stack),
111
+ );
112
+ }
113
+ }
114
+
115
+ /**
116
+ * @tsplus static fncts.RoseTreeOps unfold
117
+ */
118
+ export function unfold<A, B>(b: B, f: (b: B) => readonly [A, Vector<B>]): RoseTree<A> {
119
+ const [label, todo] = f(b);
120
+ return unfoldLoop(f, { todo, label, done: Vector() }, Nil());
121
+ }
122
+
123
+ interface UnfoldAcc<A, B> {
124
+ readonly todo: Vector<B>;
125
+ readonly done: Vector<RoseTree<A>>;
126
+ readonly label: A;
127
+ }
128
+
129
+ /**
130
+ * @tsplus tailRec
131
+ */
132
+ function unfoldLoop<A, B>(
133
+ f: (b: B) => readonly [A, Vector<B>],
134
+ acc: UnfoldAcc<A, B>,
135
+ stack: List<UnfoldAcc<A, B>>,
136
+ ): RoseTree<A> {
137
+ if (acc.todo.isEmpty()) {
138
+ const node = RoseTree(acc.label, acc.done.reverse);
139
+ if (stack.isEmpty()) {
140
+ return node;
141
+ }
142
+ const top = stack.head;
143
+ return unfoldLoop(f, { label: top.label, todo: top.todo, done: node + top.done }, stack.tail);
144
+ } else {
145
+ const [label, todo] = f(acc.todo.unsafeHead!);
146
+ if (todo.isEmpty()) {
147
+ return unfoldLoop(f, { label: acc.label, todo: acc.todo.tail, done: RoseTree(label) + acc.done }, stack);
148
+ }
149
+ return unfoldLoop(
150
+ f,
151
+ { todo, label, done: Vector() },
152
+ Cons({ done: acc.done, label: acc.label, todo: acc.todo.tail }, stack),
153
+ );
154
+ }
155
+ }
156
+
157
+ /**
158
+ * @tsplus fluent fncts.RoseTree zipWith
159
+ */
160
+ export function zipWith<A, B, C>(self: RoseTree<A>, that: RoseTree<B>, f: (a: A, b: B) => C): RoseTree<C> {
161
+ return self.zipWithAccum(that, undefined, (s, a, b) => [s, f(a, b)])[1];
162
+ }
163
+
164
+ /**
165
+ * @tsplus fluent fncts.RoseTree zipWithAccum
166
+ */
167
+ export function zipWithAccum<A, S, B, C>(
168
+ self: RoseTree<A>,
169
+ that: RoseTree<B>,
170
+ s: S,
171
+ f: (s: S, a: A, b: B) => readonly [S, C],
172
+ ): readonly [S, RoseTree<C>] {
173
+ const [state, c] = f(s, self.value, that.value);
174
+ return zipWithAccumLoop(f, state, { todoL: self.forest, todoR: that.forest, done: Vector(), label: c }, List());
175
+ }
176
+
177
+ export interface ZipWithAcc<A, B, C> {
178
+ readonly todoL: Vector<RoseTree<A>>;
179
+ readonly todoR: Vector<RoseTree<B>>;
180
+ readonly done: Vector<RoseTree<C>>;
181
+ readonly label: C;
182
+ }
183
+
184
+ /**
185
+ * @tsplus tailRec
186
+ */
187
+ export function zipWithAccumLoop<S, A, B, C>(
188
+ f: (s: S, a: A, b: B) => readonly [S, C],
189
+ state: S,
190
+ acc: ZipWithAcc<A, B, C>,
191
+ stack: List<ZipWithAcc<A, B, C>>,
192
+ ): readonly [S, RoseTree<C>] {
193
+ if (acc.todoL.isEmpty()) {
194
+ const node = RoseTree(acc.label, acc.done.reverse);
195
+ if (stack.isEmpty()) {
196
+ return [state, node];
197
+ } else {
198
+ const top = stack.unsafeHead!;
199
+ return zipWithAccumLoop(
200
+ f,
201
+ state,
202
+ { todoL: top.todoL, todoR: top.todoR, label: top.label, done: node + top.done },
203
+ stack.tail,
204
+ );
205
+ }
206
+ }
207
+ if (acc.todoR.isEmpty()) {
208
+ const node = RoseTree(acc.label, acc.done.reverse);
209
+ if (stack.isEmpty()) {
210
+ return [state, node];
211
+ } else {
212
+ const top = stack.unsafeHead!;
213
+ return zipWithAccumLoop(
214
+ f,
215
+ state,
216
+ { todoL: top.todoL, todoR: top.todoR, label: top.label, done: node + top.done },
217
+ stack.tail,
218
+ );
219
+ }
220
+ }
221
+ const treeA = acc.todoL.unsafeHead!;
222
+ const treeB = acc.todoR.unsafeHead!;
223
+ const a = treeA.value;
224
+ const b = treeB.value;
225
+ const [state_, label_] = f(state, a, b);
226
+ return zipWithAccumLoop(
227
+ f,
228
+ state_,
229
+ { todoL: treeA.forest, todoR: treeB.forest, done: Vector(), label: label_ },
230
+ Cons({ todoL: acc.todoL.tail, todoR: acc.todoR.tail, label: acc.label, done: acc.done }, stack),
231
+ );
232
+ }
233
+
234
+ /**
235
+ * @tsplus getter fncts.RoseTree draw
236
+ */
237
+ export function draw(tree: RoseTree<string>): string {
238
+ return (
239
+ tree.value +
240
+ drawLoop(Vector("\n"), { todo: tree.forest, len: tree.forest.length, done: Vector() }, List())
241
+ );
242
+ }
243
+
244
+ interface DrawAcc {
245
+ len: number;
246
+ todo: Vector<RoseTree<string>>;
247
+ done: Vector<string>;
248
+ }
249
+
250
+ /**
251
+ * @tsplus tailRec
252
+ */
253
+ function drawLoop(indentation: Vector<string>, acc: DrawAcc, stack: List<DrawAcc>): string {
254
+ if (acc.todo.isEmpty()) {
255
+ if (stack.isEmpty()) {
256
+ return acc.done.reverse.join("");
257
+ }
258
+ const top = stack.head;
259
+ return drawLoop(
260
+ indentation.pop,
261
+ { len: top.len, todo: top.todo, done: acc.done + top.done },
262
+ stack.tail,
263
+ );
264
+ } else {
265
+ const tree = acc.todo.unsafeHead!;
266
+ const rest = acc.todo.tail;
267
+ const isLast = rest.length === 0;
268
+ return drawLoop(
269
+ indentation + (acc.len > 1 && !isLast ? "│ " : " "),
270
+ {
271
+ len: tree.forest.length,
272
+ todo: tree.forest,
273
+ done: Vector(indentation.join("") + (isLast ? "└" : "├") + "─ " + tree.value)
274
+ },
275
+ Cons({ len: acc.len, todo: rest, done: acc.done }, stack),
276
+ );
277
+ }
278
+ }
@@ -0,0 +1,29 @@
1
+ export const RoseTreeTypeId = Symbol.for("fncts.RoseTree");
2
+ export type RoseTreeTypeId = typeof RoseTreeTypeId;
3
+
4
+ export interface RoseTreeF extends RoseTree<any> {}
5
+
6
+ /**
7
+ * @tsplus type fncts.RoseTree
8
+ * @tsplus companion fncts.RoseTreeOps
9
+ */
10
+ export class RoseTree<A> implements Hashable, Equatable {
11
+ readonly _typeId: RoseTreeTypeId = RoseTreeTypeId;
12
+ readonly [HKT.F]!: RoseTreeF;
13
+ readonly [HKT.A]!: () => A;
14
+ readonly [HKT.T]!: RoseTree<HKT._A<this>>;
15
+ constructor(readonly value: A, readonly forest: Vector<RoseTree<A>>) {}
16
+ [Symbol.equals](that: unknown): boolean {
17
+ return isRoseTree(that) ? Equatable.strictEquals(this.value, that.value) && this.forest == that.forest : false;
18
+ }
19
+ get [Symbol.hash]() {
20
+ let h = Hashable.symbol(RoseTreeTypeId);
21
+ h ^= Hashable.unknown(this.value);
22
+ h ^= Hashable.unknown(this.forest);
23
+ return Hashable.optimize(h);
24
+ }
25
+ }
26
+
27
+ export function isRoseTree(u: unknown): u is RoseTree<unknown> {
28
+ return hasTypeId(u, RoseTreeTypeId);
29
+ }
@@ -0,0 +1,4 @@
1
+ // codegen:start { preset: barrel, include: ./RoseTree/*.ts }
2
+ export * from "./RoseTree/api.js";
3
+ export * from "./RoseTree/definition.js";
4
+ // codegen:end
@@ -19,7 +19,7 @@ export function find_<K, V>(m: SortedMap<K, V>, key: K, direction: 0 | 1 = 0): S
19
19
  return {
20
20
  ord: m.ord,
21
21
  [Symbol.iterator]() {
22
- const cmp = m.ord.compare_;
22
+ const cmp = m.ord.compare;
23
23
  let n = m.root;
24
24
  const stack: Array<Node<K, V>> = [];
25
25
  while (n) {
@@ -124,7 +124,7 @@ export function forEachGt_<K, V>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V)
124
124
  * @tsplus fluent fncts.SortedMap get
125
125
  */
126
126
  export function get_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
127
- const cmp = m.ord.compare_;
127
+ const cmp = m.ord.compare;
128
128
  let n = m.root;
129
129
  while (n) {
130
130
  const d = cmp(key, n.key);
@@ -151,7 +151,7 @@ export function get_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
151
151
  * @tsplus fluent fncts.SortedMap getGt
152
152
  */
153
153
  export function getGt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
154
- const cmp = m.ord.compare_;
154
+ const cmp = m.ord.compare;
155
155
  let n = m.root;
156
156
  let lastValue = Nothing<V>();
157
157
  while (n) {
@@ -175,7 +175,7 @@ export function getGt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
175
175
  * @tsplus fluent fncts.SortedMap getLt
176
176
  */
177
177
  export function getLt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
178
- const cmp = m.ord.compare_;
178
+ const cmp = m.ord.compare;
179
179
  let n = m.root;
180
180
  let lastValue = Nothing<V>();
181
181
  while (n) {
@@ -198,7 +198,7 @@ export function getLt_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
198
198
  * @tsplus fluent fncts.SortedMap getLte
199
199
  */
200
200
  export function getLte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
201
- const cmp = m.ord.compare_;
201
+ const cmp = m.ord.compare;
202
202
  let n = m.root;
203
203
  let lastValue = Nothing<V>();
204
204
  while (n) {
@@ -222,7 +222,7 @@ export function getLte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
222
222
  * @tsplus fluent fncts.SortedMap getGte
223
223
  */
224
224
  export function getGte_<K, V>(m: SortedMap<K, V>, key: K): Maybe<V> {
225
- const cmp = m.ord.compare_;
225
+ const cmp = m.ord.compare;
226
226
  let n = m.root;
227
227
  let lastValue = Nothing<V>();
228
228
  while (n) {
@@ -251,7 +251,7 @@ export function insert_<K, V>(m: SortedMap<K, V>, key: K, value: V): SortedMap<K
251
251
  if (isEmptyNode(m.root)) {
252
252
  return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
253
253
  }
254
- const cmp = m.ord.compare_;
254
+ const cmp = m.ord.compare;
255
255
  const nodeStack: Array<Node<K, V>> = [];
256
256
  const orderStack: Array<Ordering> = [];
257
257
  let n: RBNode<K, V> = m.root;
@@ -277,49 +277,52 @@ export function insert_<K, V>(m: SortedMap<K, V>, key: K, value: V): SortedMap<K
277
277
  * Inserts an element into the correct position in the map, combining the values of keys of equal ordering
278
278
  * with a `Semigroup` instance
279
279
  */
280
- export function insertWith_<V>(S: Semigroup<V>) {
281
- return <K>(m: SortedMap<K, V>, key: K, value: V) => {
282
- if (isEmptyNode(m.root)) {
283
- return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
284
- }
285
- const com = S.combine_;
286
- const cmp = m.ord.compare_;
287
- const nodeStack: Array<Node<K, V>> = [];
288
- const orderStack: Array<1 | -1> = [];
289
- let n: RBNode<K, V> = m.root;
290
- let cv: V | null = null;
291
- while (n && !cv) {
292
- const d = cmp(key, n.key);
293
- nodeStack.push(n);
294
- switch (d) {
295
- case -1: {
296
- orderStack.push(d);
297
- n = n.left;
298
- break;
299
- }
300
- case 1: {
301
- orderStack.push(d);
302
- n = n.right;
303
- break;
304
- }
305
- case 0: {
306
- cv = com(n.value, value);
307
- break;
308
- }
280
+ export function insertWith_<K, V>(
281
+ m: SortedMap<K, V>,
282
+ key: K,
283
+ value: V,
284
+ /** @tsplus auto */ S: Semigroup<V>,
285
+ ): SortedMap<K, V> {
286
+ if (isEmptyNode(m.root)) {
287
+ return new SortedMap(m.ord, new Node(Color.R, Leaf, key, value, Leaf, 1));
288
+ }
289
+ const com = S.combine;
290
+ const cmp = m.ord.compare;
291
+ const nodeStack: Array<Node<K, V>> = [];
292
+ const orderStack: Array<1 | -1> = [];
293
+ let n: RBNode<K, V> = m.root;
294
+ let cv: V | null = null;
295
+ while (n && !cv) {
296
+ const d = cmp(key, n.key);
297
+ nodeStack.push(n);
298
+ switch (d) {
299
+ case -1: {
300
+ orderStack.push(d);
301
+ n = n.left;
302
+ break;
303
+ }
304
+ case 1: {
305
+ orderStack.push(d);
306
+ n = n.right;
307
+ break;
308
+ }
309
+ case 0: {
310
+ cv = com(n.value, value);
311
+ break;
309
312
  }
310
313
  }
311
- if (cv) {
312
- const u = nodeStack[nodeStack.length - 1]!;
313
- const updated = new Node(u.color, u.left, u.key, cv, u.right, u.count);
314
- nodeStack[nodeStack.length - 1] = updated;
315
- rebuildModifiedPath(nodeStack, orderStack, 0);
316
- } else {
317
- nodeStack.push(new Node(Color.R, Leaf, key, value, Leaf, 1));
318
- rebuildModifiedPath(nodeStack, orderStack);
319
- balanceModifiedPath(nodeStack);
320
- }
321
- return new SortedMap(m.ord, nodeStack[0]!);
322
- };
314
+ }
315
+ if (cv) {
316
+ const u = nodeStack[nodeStack.length - 1]!;
317
+ const updated = new Node(u.color, u.left, u.key, cv, u.right, u.count);
318
+ nodeStack[nodeStack.length - 1] = updated;
319
+ rebuildModifiedPath(nodeStack, orderStack, 0);
320
+ } else {
321
+ nodeStack.push(new Node(Color.R, Leaf, key, value, Leaf, 1));
322
+ rebuildModifiedPath(nodeStack, orderStack);
323
+ balanceModifiedPath(nodeStack);
324
+ }
325
+ return new SortedMap(m.ord, nodeStack[0]!);
323
326
  }
324
327
 
325
328
  /**
@@ -386,7 +389,7 @@ export function visitLte<K, V, A>(m: SortedMap<K, V>, max: K, visit: (k: K, v: V
386
389
  let current: RBNode<K, V> = m.root;
387
390
  const stack: Stack<Node<K, V>> = Stack();
388
391
  let done = false;
389
- const cmp = m.ord.compare_;
392
+ const cmp = m.ord.compare;
390
393
 
391
394
  while (!done) {
392
395
  if (current) {
@@ -416,7 +419,7 @@ export function visitLt<K, V, A>(m: SortedMap<K, V>, max: K, visit: (k: K, v: V)
416
419
  let current: RBNode<K, V> = m.root;
417
420
  const stack: Stack<Node<K, V>> = Stack();
418
421
  let done = false;
419
- const cmp = m.ord.compare_;
422
+ const cmp = m.ord.compare;
420
423
 
421
424
  while (!done) {
422
425
  if (current) {
@@ -446,7 +449,7 @@ export function visitGte<K, V, A>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V
446
449
  let current: RBNode<K, V> = m.root;
447
450
  const stack: Stack<Node<K, V>> = Stack();
448
451
  let done = false;
449
- const cmp = m.ord.compare_;
452
+ const cmp = m.ord.compare;
450
453
 
451
454
  while (!done) {
452
455
  if (current) {
@@ -479,7 +482,7 @@ export function visitGt<K, V, A>(m: SortedMap<K, V>, min: K, visit: (k: K, v: V)
479
482
  let current: RBNode<K, V> = m.root;
480
483
  const stack: Stack<Node<K, V>> = Stack();
481
484
  let done = false;
482
- const cmp = m.ord.compare_;
485
+ const cmp = m.ord.compare;
483
486
 
484
487
  while (!done) {
485
488
  if (current) {
@@ -512,7 +515,7 @@ export function visitBetween<K, V, A>(m: SortedMap<K, V>, min: K, max: K, visit:
512
515
  let current: RBNode<K, V> = m.root;
513
516
  const stack: Stack<Node<K, V>> = Stack();
514
517
  let done = false;
515
- const cmp = m.ord.compare_;
518
+ const cmp = m.ord.compare;
516
519
 
517
520
  while (!done) {
518
521
  if (current) {