@fncts/base 0.0.12 → 0.0.15

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 (734) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs +16 -21
  2. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  3. package/_cjs/collection/compat/Array/api.cjs +10 -10
  4. package/_cjs/collection/compat/Array/derivations.cjs +96 -0
  5. package/_cjs/collection/compat/Array/derivations.cjs.map +1 -0
  6. package/_cjs/collection/compat/Array.cjs +13 -0
  7. package/_cjs/collection/compat/Array.cjs.map +1 -1
  8. package/_cjs/collection/compat/Record/instances.cjs +67 -16
  9. package/_cjs/collection/compat/Record/instances.cjs.map +1 -1
  10. package/_cjs/collection/compat.cjs +6 -0
  11. package/_cjs/collection/compat.cjs.map +1 -0
  12. package/_cjs/collection/immutable/Conc/api.cjs +9 -12
  13. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  14. package/_cjs/collection/immutable/Conc/definition.cjs +41 -43
  15. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  16. package/_cjs/collection/immutable/Conc/derivations.cjs +45 -0
  17. package/_cjs/collection/immutable/Conc/derivations.cjs.map +1 -0
  18. package/_cjs/collection/immutable/Conc.cjs +13 -0
  19. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  20. package/_cjs/collection/immutable/Dictionary/definition.cjs +2 -4
  21. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  22. package/_cjs/collection/immutable/HashMap/api.cjs +26 -29
  23. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  24. package/_cjs/collection/immutable/HashMap/definition.cjs +15 -17
  25. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  26. package/_cjs/collection/immutable/ImmutableArray/api.cjs +142 -159
  27. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  28. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs +2 -2
  29. package/_cjs/collection/immutable/ImmutableArray/definition.cjs +18 -15
  30. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  31. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs +41 -0
  32. package/_cjs/collection/immutable/ImmutableArray/derivations.cjs.map +1 -0
  33. package/_cjs/collection/immutable/ImmutableArray/instances.cjs +11 -9
  34. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  35. package/_cjs/collection/immutable/ImmutableArray.cjs +13 -0
  36. package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
  37. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs +21 -22
  38. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  39. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs +2 -2
  40. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs +3 -9
  41. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  42. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs +62 -0
  43. package/_cjs/collection/immutable/ImmutableNonEmptyArray/derivations.cjs.map +1 -0
  44. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs +8 -2
  45. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  46. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs +13 -0
  47. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +1 -1
  48. package/_cjs/collection/immutable/List/definition.cjs +2 -2
  49. package/_cjs/collection/immutable/RoseTree/definition.cjs +13 -15
  50. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  51. package/_cjs/collection/immutable/Vector/api.cjs +8 -12
  52. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  53. package/_cjs/collection/immutable/Vector/definition.cjs +11 -13
  54. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  55. package/_cjs/collection/immutable/Vector/internal.cjs +1 -1
  56. package/_cjs/collection/immutable.cjs +6 -0
  57. package/_cjs/collection/immutable.cjs.map +1 -0
  58. package/_cjs/collection/mutable/HashMap.cjs +4 -0
  59. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  60. package/_cjs/collection/mutable.cjs +6 -0
  61. package/_cjs/collection/mutable.cjs.map +1 -0
  62. package/_cjs/collection/weak/IterableWeakMap.cjs +51 -2
  63. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  64. package/_cjs/collection/weak/IterableWeakSet.cjs +59 -7
  65. package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
  66. package/_cjs/collection/weak.cjs +6 -0
  67. package/_cjs/collection/weak.cjs.map +1 -0
  68. package/_cjs/collection.cjs +6 -0
  69. package/_cjs/collection.cjs.map +1 -0
  70. package/_cjs/control/Eval/api.cjs +9 -3
  71. package/_cjs/control/Eval/api.cjs.map +1 -1
  72. package/_cjs/control/Eval/definition.cjs +1 -8
  73. package/_cjs/control/Eval/definition.cjs.map +1 -1
  74. package/_cjs/control/Eval/instance.cjs +6 -0
  75. package/_cjs/control/Eval/instance.cjs.map +1 -1
  76. package/_cjs/control/Z/api.cjs +16 -14
  77. package/_cjs/control/Z/api.cjs.map +1 -1
  78. package/_cjs/control/Z/definition.cjs +8 -14
  79. package/_cjs/control/Z/definition.cjs.map +1 -1
  80. package/_cjs/control/Z/instances.cjs +6 -0
  81. package/_cjs/control/Z/instances.cjs.map +1 -1
  82. package/_cjs/control/Z/runtime.cjs +17 -13
  83. package/_cjs/control/Z/runtime.cjs.map +1 -1
  84. package/_cjs/control.cjs +6 -0
  85. package/_cjs/control.cjs.map +1 -0
  86. package/_cjs/data/Cause/api/isEmpty.cjs +2 -0
  87. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  88. package/_cjs/data/Cause/api/linearize.cjs +2 -0
  89. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  90. package/_cjs/data/Cause/api.cjs +2 -0
  91. package/_cjs/data/Cause/api.cjs.map +1 -1
  92. package/_cjs/data/Const/definition.cjs +0 -7
  93. package/_cjs/data/Const/definition.cjs.map +1 -1
  94. package/_cjs/data/Const/instances.cjs +11 -8
  95. package/_cjs/data/Const/instances.cjs.map +1 -1
  96. package/_cjs/data/Datum/api.cjs +479 -0
  97. package/_cjs/data/Datum/api.cjs.map +1 -0
  98. package/_cjs/data/Datum/definition.cjs +142 -0
  99. package/_cjs/data/Datum/definition.cjs.map +1 -0
  100. package/_cjs/data/Datum/instances.cjs +69 -0
  101. package/_cjs/data/Datum/instances.cjs.map +1 -0
  102. package/_cjs/data/DatumEither/api.cjs +365 -0
  103. package/_cjs/data/DatumEither/api.cjs.map +1 -0
  104. package/_cjs/data/DatumEither/definition.cjs +9 -0
  105. package/_cjs/data/DatumEither/definition.cjs.map +1 -0
  106. package/_cjs/data/DecodeError/definition.cjs +16 -4
  107. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  108. package/_cjs/data/DecodeError/instances.cjs +6 -0
  109. package/_cjs/data/DecodeError/instances.cjs.map +1 -0
  110. package/_cjs/data/DecodeError.cjs +13 -0
  111. package/_cjs/data/DecodeError.cjs.map +1 -1
  112. package/_cjs/data/Decoder/definition.cjs +3 -10
  113. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  114. package/_cjs/data/Either/api/alignWith.cjs +2 -0
  115. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  116. package/_cjs/data/Either/api.cjs +21 -5
  117. package/_cjs/data/Either/api.cjs.map +1 -1
  118. package/_cjs/data/Either/definition.cjs +4 -11
  119. package/_cjs/data/Either/definition.cjs.map +1 -1
  120. package/_cjs/data/Either/instances.cjs +25 -23
  121. package/_cjs/data/Either/instances.cjs.map +1 -1
  122. package/_cjs/data/EitherT/api.cjs +106 -0
  123. package/_cjs/data/EitherT/api.cjs.map +1 -0
  124. package/_cjs/data/EitherT/definition.cjs +9 -0
  125. package/_cjs/data/EitherT/definition.cjs.map +1 -0
  126. package/_cjs/data/Environment/api.cjs +15 -14
  127. package/_cjs/data/Environment/api.cjs.map +1 -1
  128. package/_cjs/data/Environment/definition.cjs.map +1 -1
  129. package/_cjs/data/Identity/api.cjs +3 -1
  130. package/_cjs/data/Identity/api.cjs.map +1 -1
  131. package/_cjs/data/Identity/definition.cjs +2 -4
  132. package/_cjs/data/Identity/definition.cjs.map +1 -1
  133. package/_cjs/data/Identity/instances.cjs +6 -0
  134. package/_cjs/data/Identity/instances.cjs.map +1 -1
  135. package/_cjs/data/Intervals.cjs +292 -0
  136. package/_cjs/data/Intervals.cjs.map +1 -0
  137. package/_cjs/data/Maybe/api.cjs +3 -1
  138. package/_cjs/data/Maybe/api.cjs.map +1 -1
  139. package/_cjs/data/Maybe/definition.cjs +11 -13
  140. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  141. package/_cjs/data/Maybe/instances.cjs +13 -11
  142. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  143. package/_cjs/data/Newtype.cjs +3 -5
  144. package/_cjs/data/Newtype.cjs.map +1 -1
  145. package/_cjs/data/Patch/api.cjs +2 -0
  146. package/_cjs/data/Patch/api.cjs.map +1 -1
  147. package/_cjs/data/Struct/api.cjs +2 -0
  148. package/_cjs/data/Struct/api.cjs.map +1 -1
  149. package/_cjs/data/Struct/definition.cjs +2 -4
  150. package/_cjs/data/Struct/definition.cjs.map +1 -1
  151. package/_cjs/data/These/definition.cjs +1 -1
  152. package/_cjs/data/These/definition.cjs.map +1 -1
  153. package/_cjs/data/Zipped.cjs +55 -0
  154. package/_cjs/data/Zipped.cjs.map +1 -0
  155. package/_cjs/data/function/api.cjs +10 -0
  156. package/_cjs/data/function/api.cjs.map +1 -1
  157. package/_cjs/data/object/instances.cjs +9 -1
  158. package/_cjs/data/object/instances.cjs.map +1 -1
  159. package/_cjs/data/string/api.cjs +1 -1
  160. package/_cjs/data.cjs +6 -0
  161. package/_cjs/data.cjs.map +1 -0
  162. package/_cjs/global.cjs +6 -0
  163. package/_cjs/global.cjs.map +1 -0
  164. package/_cjs/index.cjs +6 -0
  165. package/_cjs/index.cjs.map +1 -0
  166. package/_cjs/json.cjs +6 -0
  167. package/_cjs/json.cjs.map +1 -0
  168. package/_cjs/optics/At/definition.cjs +2 -0
  169. package/_cjs/optics/At/definition.cjs.map +1 -1
  170. package/_cjs/optics/Iso/definition.cjs +4 -0
  171. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  172. package/_cjs/optics/Lens/definition.cjs +4 -0
  173. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  174. package/_cjs/optics/Optional/definition.cjs +5 -5
  175. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  176. package/_cjs/optics/Prism/definition.cjs +2 -0
  177. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  178. package/_cjs/optics/Traversal/api/compose.cjs +1 -1
  179. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  180. package/_cjs/optics/Traversal/api/fromTraversable.cjs +1 -1
  181. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  182. package/_cjs/optics/Traversal/definition.cjs +7 -3
  183. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  184. package/_cjs/optics.cjs +6 -0
  185. package/_cjs/optics.cjs.map +1 -0
  186. package/_cjs/typeclass/Alt.cjs +0 -7
  187. package/_cjs/typeclass/Alt.cjs.map +1 -1
  188. package/_cjs/typeclass/ApplicativeExcept.cjs +9 -35
  189. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  190. package/_cjs/typeclass/Apply.cjs +39 -66
  191. package/_cjs/typeclass/Apply.cjs.map +1 -1
  192. package/_cjs/typeclass/Chain.cjs +6 -28
  193. package/_cjs/typeclass/Chain.cjs.map +1 -1
  194. package/_cjs/typeclass/Fail.cjs +0 -10
  195. package/_cjs/typeclass/Fail.cjs.map +1 -1
  196. package/_cjs/typeclass/Filterable.cjs +0 -36
  197. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  198. package/_cjs/typeclass/Foldable.cjs +4 -34
  199. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  200. package/_cjs/typeclass/FoldableWithIndex.cjs +4 -34
  201. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  202. package/_cjs/typeclass/Functor.cjs +3 -18
  203. package/_cjs/typeclass/Functor.cjs.map +1 -1
  204. package/_cjs/typeclass/Guard/definition.cjs +3 -10
  205. package/_cjs/typeclass/Guard/definition.cjs.map +1 -1
  206. package/_cjs/typeclass/HashEq.cjs +2 -0
  207. package/_cjs/typeclass/HashEq.cjs.map +1 -1
  208. package/_cjs/typeclass/MonadExcept.cjs +2 -10
  209. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  210. package/_cjs/typeclass/Monoid.cjs +2 -0
  211. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  212. package/_cjs/typeclass/Nil.cjs +0 -10
  213. package/_cjs/typeclass/Nil.cjs.map +1 -1
  214. package/_cjs/typeclass/Ord/definition.cjs +2 -0
  215. package/_cjs/typeclass/Ord/definition.cjs.map +1 -1
  216. package/_cjs/typeclass/Ord/instances.cjs +4 -3
  217. package/_cjs/typeclass/Ord/instances.cjs.map +1 -1
  218. package/_cjs/typeclass/Pointed.cjs +0 -11
  219. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  220. package/_cjs/typeclass/Semialign.cjs +18 -46
  221. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  222. package/_cjs/typeclass/Semimonoidal.cjs +0 -11
  223. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  224. package/_cjs/typeclass/Showable/show.cjs +12 -12
  225. package/_cjs/typeclass/Showable/show.cjs.map +1 -1
  226. package/_cjs/typeclass/Traversable.cjs +7 -26
  227. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  228. package/_cjs/typeclass/TraversableWithIndex.cjs +3 -7
  229. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  230. package/_cjs/typeclass/Witherable.cjs +3 -45
  231. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  232. package/_cjs/typeclass/WitherableWithIndex.cjs +8 -44
  233. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  234. package/_cjs/util.cjs +6 -0
  235. package/_cjs/util.cjs.map +1 -0
  236. package/_mjs/collection/Iterable/api/traverseConc.mjs +16 -21
  237. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  238. package/_mjs/collection/compat/Array/api.mjs +10 -10
  239. package/_mjs/collection/compat/Array/derivations.mjs +70 -0
  240. package/_mjs/collection/compat/Array/derivations.mjs.map +1 -0
  241. package/_mjs/collection/compat/Array.mjs +1 -0
  242. package/_mjs/collection/compat/Array.mjs.map +1 -1
  243. package/_mjs/collection/compat/Record/instances.mjs +62 -16
  244. package/_mjs/collection/compat/Record/instances.mjs.map +1 -1
  245. package/_mjs/collection/compat.mjs +2 -0
  246. package/_mjs/collection/compat.mjs.map +1 -0
  247. package/_mjs/collection/immutable/Conc/api.mjs +8 -11
  248. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  249. package/_mjs/collection/immutable/Conc/definition.mjs +41 -42
  250. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  251. package/_mjs/collection/immutable/Conc/derivations.mjs +27 -0
  252. package/_mjs/collection/immutable/Conc/derivations.mjs.map +1 -0
  253. package/_mjs/collection/immutable/Conc.mjs +2 -1
  254. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  255. package/_mjs/collection/immutable/Dictionary/definition.mjs +2 -3
  256. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  257. package/_mjs/collection/immutable/HashMap/api.mjs +18 -20
  258. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  259. package/_mjs/collection/immutable/HashMap/definition.mjs +15 -16
  260. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  261. package/_mjs/collection/immutable/HashSet/api.mjs +1 -0
  262. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  263. package/_mjs/collection/immutable/ImmutableArray/api.mjs +134 -153
  264. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  265. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs +2 -2
  266. package/_mjs/collection/immutable/ImmutableArray/definition.mjs +16 -12
  267. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  268. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs +25 -0
  269. package/_mjs/collection/immutable/ImmutableArray/derivations.mjs.map +1 -0
  270. package/_mjs/collection/immutable/ImmutableArray/instances.mjs +9 -8
  271. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  272. package/_mjs/collection/immutable/ImmutableArray.mjs +1 -0
  273. package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
  274. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs +19 -19
  275. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  276. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs +2 -2
  277. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs +0 -2
  278. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  279. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs +39 -0
  280. package/_mjs/collection/immutable/ImmutableNonEmptyArray/derivations.mjs.map +1 -0
  281. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs +4 -3
  282. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  283. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs +1 -0
  284. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +1 -1
  285. package/_mjs/collection/immutable/List/definition.mjs +2 -2
  286. package/_mjs/collection/immutable/RoseTree/definition.mjs +13 -14
  287. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  288. package/_mjs/collection/immutable/SortedMap/api.mjs +1 -0
  289. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  290. package/_mjs/collection/immutable/Vector/api.mjs +8 -12
  291. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  292. package/_mjs/collection/immutable/Vector/definition.mjs +11 -12
  293. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  294. package/_mjs/collection/immutable/Vector/internal.mjs +1 -1
  295. package/_mjs/collection/immutable.mjs +2 -0
  296. package/_mjs/collection/immutable.mjs.map +1 -0
  297. package/_mjs/collection/mutable/HashMap.mjs +4 -0
  298. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  299. package/_mjs/collection/mutable.mjs +2 -0
  300. package/_mjs/collection/mutable.mjs.map +1 -0
  301. package/_mjs/collection/weak/IterableWeakMap.mjs +51 -2
  302. package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
  303. package/_mjs/collection/weak/IterableWeakSet.mjs +59 -7
  304. package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
  305. package/_mjs/collection/weak.mjs +2 -0
  306. package/_mjs/collection/weak.mjs.map +1 -0
  307. package/_mjs/collection.mjs +2 -0
  308. package/_mjs/collection.mjs.map +1 -0
  309. package/_mjs/control/Eval/api.mjs +9 -4
  310. package/_mjs/control/Eval/api.mjs.map +1 -1
  311. package/_mjs/control/Eval/definition.mjs +1 -2
  312. package/_mjs/control/Eval/definition.mjs.map +1 -1
  313. package/_mjs/control/Eval/instance.mjs +1 -0
  314. package/_mjs/control/Eval/instance.mjs.map +1 -1
  315. package/_mjs/control/Eval/run.mjs +1 -0
  316. package/_mjs/control/Eval/run.mjs.map +1 -1
  317. package/_mjs/control/Z/api.mjs +16 -15
  318. package/_mjs/control/Z/api.mjs.map +1 -1
  319. package/_mjs/control/Z/definition.mjs +3 -5
  320. package/_mjs/control/Z/definition.mjs.map +1 -1
  321. package/_mjs/control/Z/instances.mjs +1 -0
  322. package/_mjs/control/Z/instances.mjs.map +1 -1
  323. package/_mjs/control/Z/runtime.mjs +15 -13
  324. package/_mjs/control/Z/runtime.mjs.map +1 -1
  325. package/_mjs/control.mjs +2 -0
  326. package/_mjs/control.mjs.map +1 -0
  327. package/_mjs/data/Branded/derivations.mjs +1 -0
  328. package/_mjs/data/Branded/derivations.mjs.map +1 -1
  329. package/_mjs/data/Cause/api/isEmpty.mjs +1 -0
  330. package/_mjs/data/Cause/api/isEmpty.mjs.map +1 -1
  331. package/_mjs/data/Cause/api/linearize.mjs +1 -0
  332. package/_mjs/data/Cause/api/linearize.mjs.map +1 -1
  333. package/_mjs/data/Cause/api.mjs +2 -1
  334. package/_mjs/data/Cause/api.mjs.map +1 -1
  335. package/_mjs/data/Const/definition.mjs +0 -3
  336. package/_mjs/data/Const/definition.mjs.map +1 -1
  337. package/_mjs/data/Const/instances.mjs +7 -5
  338. package/_mjs/data/Const/instances.mjs.map +1 -1
  339. package/_mjs/data/Datum/api.mjs +404 -0
  340. package/_mjs/data/Datum/api.mjs.map +1 -0
  341. package/_mjs/data/Datum/definition.mjs +112 -0
  342. package/_mjs/data/Datum/definition.mjs.map +1 -0
  343. package/_mjs/data/Datum/instances.mjs +52 -0
  344. package/_mjs/data/Datum/instances.mjs.map +1 -0
  345. package/_mjs/data/DatumEither/api.mjs +290 -0
  346. package/_mjs/data/DatumEither/api.mjs.map +1 -0
  347. package/_mjs/data/DatumEither/definition.mjs +2 -0
  348. package/_mjs/data/DatumEither/definition.mjs.map +1 -0
  349. package/_mjs/data/DecodeError/definition.mjs +12 -3
  350. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  351. package/_mjs/data/DecodeError/instances.mjs +2 -0
  352. package/_mjs/data/DecodeError/instances.mjs.map +1 -0
  353. package/_mjs/data/DecodeError.mjs +1 -0
  354. package/_mjs/data/DecodeError.mjs.map +1 -1
  355. package/_mjs/data/Decoder/api.mjs +1 -0
  356. package/_mjs/data/Decoder/api.mjs.map +1 -1
  357. package/_mjs/data/Decoder/definition.mjs +0 -2
  358. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  359. package/_mjs/data/Either/api/alignWith.mjs +1 -0
  360. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  361. package/_mjs/data/Either/api.mjs +17 -4
  362. package/_mjs/data/Either/api.mjs.map +1 -1
  363. package/_mjs/data/Either/definition.mjs +1 -3
  364. package/_mjs/data/Either/definition.mjs.map +1 -1
  365. package/_mjs/data/Either/instances.mjs +24 -23
  366. package/_mjs/data/Either/instances.mjs.map +1 -1
  367. package/_mjs/data/EitherT/api.mjs +73 -0
  368. package/_mjs/data/EitherT/api.mjs.map +1 -0
  369. package/_mjs/data/EitherT/definition.mjs +2 -0
  370. package/_mjs/data/EitherT/definition.mjs.map +1 -0
  371. package/_mjs/data/Environment/api.mjs +12 -13
  372. package/_mjs/data/Environment/api.mjs.map +1 -1
  373. package/_mjs/data/Environment/definition.mjs.map +1 -1
  374. package/_mjs/data/Identity/api.mjs +2 -1
  375. package/_mjs/data/Identity/api.mjs.map +1 -1
  376. package/_mjs/data/Identity/definition.mjs +2 -3
  377. package/_mjs/data/Identity/definition.mjs.map +1 -1
  378. package/_mjs/data/Identity/instances.mjs +1 -0
  379. package/_mjs/data/Identity/instances.mjs.map +1 -1
  380. package/_mjs/data/Intervals.mjs +257 -0
  381. package/_mjs/data/Intervals.mjs.map +1 -0
  382. package/_mjs/data/Maybe/api.mjs +2 -1
  383. package/_mjs/data/Maybe/api.mjs.map +1 -1
  384. package/_mjs/data/Maybe/definition.mjs +8 -10
  385. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  386. package/_mjs/data/Maybe/instances.mjs +12 -11
  387. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  388. package/_mjs/data/Newtype.mjs +3 -4
  389. package/_mjs/data/Newtype.mjs.map +1 -1
  390. package/_mjs/data/Patch/api.mjs +1 -0
  391. package/_mjs/data/Patch/api.mjs.map +1 -1
  392. package/_mjs/data/Struct/api.mjs +1 -0
  393. package/_mjs/data/Struct/api.mjs.map +1 -1
  394. package/_mjs/data/Struct/definition.mjs +2 -3
  395. package/_mjs/data/Struct/definition.mjs.map +1 -1
  396. package/_mjs/data/These/definition.mjs +1 -1
  397. package/_mjs/data/These/definition.mjs.map +1 -1
  398. package/_mjs/data/Zipped.mjs +37 -0
  399. package/_mjs/data/Zipped.mjs.map +1 -0
  400. package/_mjs/data/function/api.mjs +8 -0
  401. package/_mjs/data/function/api.mjs.map +1 -1
  402. package/_mjs/data/object/instances.mjs +7 -1
  403. package/_mjs/data/object/instances.mjs.map +1 -1
  404. package/_mjs/data/string/api.mjs +1 -1
  405. package/_mjs/data.mjs +2 -0
  406. package/_mjs/data.mjs.map +1 -0
  407. package/_mjs/global.mjs +2 -0
  408. package/_mjs/global.mjs.map +1 -0
  409. package/_mjs/index.mjs +2 -0
  410. package/_mjs/index.mjs.map +1 -0
  411. package/_mjs/json.mjs +2 -0
  412. package/_mjs/json.mjs.map +1 -0
  413. package/_mjs/optics/At/api.mjs +1 -0
  414. package/_mjs/optics/At/api.mjs.map +1 -1
  415. package/_mjs/optics/At/definition.mjs +1 -0
  416. package/_mjs/optics/At/definition.mjs.map +1 -1
  417. package/_mjs/optics/Index/api.mjs +1 -0
  418. package/_mjs/optics/Index/api.mjs.map +1 -1
  419. package/_mjs/optics/Iso/api.mjs +1 -0
  420. package/_mjs/optics/Iso/api.mjs.map +1 -1
  421. package/_mjs/optics/Iso/definition.mjs +2 -0
  422. package/_mjs/optics/Iso/definition.mjs.map +1 -1
  423. package/_mjs/optics/Lens/api.mjs +1 -0
  424. package/_mjs/optics/Lens/api.mjs.map +1 -1
  425. package/_mjs/optics/Lens/definition.mjs +2 -0
  426. package/_mjs/optics/Lens/definition.mjs.map +1 -1
  427. package/_mjs/optics/Optional/api/compose.mjs +1 -0
  428. package/_mjs/optics/Optional/api/compose.mjs.map +1 -1
  429. package/_mjs/optics/Optional/definition.mjs +5 -5
  430. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  431. package/_mjs/optics/Prism/api/compose.mjs +1 -0
  432. package/_mjs/optics/Prism/api/compose.mjs.map +1 -1
  433. package/_mjs/optics/Prism/api/fromNullable.mjs +1 -0
  434. package/_mjs/optics/Prism/api/fromNullable.mjs.map +1 -1
  435. package/_mjs/optics/Prism/api/just.mjs +1 -0
  436. package/_mjs/optics/Prism/api/just.mjs.map +1 -1
  437. package/_mjs/optics/Prism/definition.mjs +1 -0
  438. package/_mjs/optics/Prism/definition.mjs.map +1 -1
  439. package/_mjs/optics/Traversal/api/compose.mjs +2 -1
  440. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  441. package/_mjs/optics/Traversal/api/fromTraversable.mjs +2 -1
  442. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  443. package/_mjs/optics/Traversal/definition.mjs +5 -3
  444. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  445. package/_mjs/optics.mjs +2 -0
  446. package/_mjs/optics.mjs.map +1 -0
  447. package/_mjs/typeclass/Alt.mjs +0 -5
  448. package/_mjs/typeclass/Alt.mjs.map +1 -1
  449. package/_mjs/typeclass/ApplicativeExcept.mjs +7 -32
  450. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  451. package/_mjs/typeclass/Apply.mjs +35 -65
  452. package/_mjs/typeclass/Apply.mjs.map +1 -1
  453. package/_mjs/typeclass/Chain.mjs +4 -25
  454. package/_mjs/typeclass/Chain.mjs.map +1 -1
  455. package/_mjs/typeclass/Eq/derivations.mjs +1 -0
  456. package/_mjs/typeclass/Eq/derivations.mjs.map +1 -1
  457. package/_mjs/typeclass/Fail.mjs +1 -8
  458. package/_mjs/typeclass/Fail.mjs.map +1 -1
  459. package/_mjs/typeclass/Filterable.mjs +0 -28
  460. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  461. package/_mjs/typeclass/Foldable.mjs +3 -30
  462. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  463. package/_mjs/typeclass/FoldableWithIndex.mjs +3 -30
  464. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  465. package/_mjs/typeclass/Functor.mjs +3 -16
  466. package/_mjs/typeclass/Functor.mjs.map +1 -1
  467. package/_mjs/typeclass/Guard/api.mjs +1 -0
  468. package/_mjs/typeclass/Guard/api.mjs.map +1 -1
  469. package/_mjs/typeclass/Guard/definition.mjs +0 -2
  470. package/_mjs/typeclass/Guard/definition.mjs.map +1 -1
  471. package/_mjs/typeclass/HashEq.mjs +1 -0
  472. package/_mjs/typeclass/HashEq.mjs.map +1 -1
  473. package/_mjs/typeclass/MonadExcept.mjs +2 -9
  474. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  475. package/_mjs/typeclass/Monoid.mjs +1 -0
  476. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  477. package/_mjs/typeclass/Nil.mjs +1 -8
  478. package/_mjs/typeclass/Nil.mjs.map +1 -1
  479. package/_mjs/typeclass/Ord/definition.mjs +1 -0
  480. package/_mjs/typeclass/Ord/definition.mjs.map +1 -1
  481. package/_mjs/typeclass/Ord/instances.mjs +3 -0
  482. package/_mjs/typeclass/Ord/instances.mjs.map +1 -1
  483. package/_mjs/typeclass/Pointed.mjs +0 -9
  484. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  485. package/_mjs/typeclass/Semialign.mjs +17 -45
  486. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  487. package/_mjs/typeclass/Semigroup/api.mjs +1 -0
  488. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  489. package/_mjs/typeclass/Semigroup/derivations.mjs +1 -0
  490. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -1
  491. package/_mjs/typeclass/Semimonoidal.mjs +0 -9
  492. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  493. package/_mjs/typeclass/Showable/show.mjs +12 -12
  494. package/_mjs/typeclass/Showable/show.mjs.map +1 -1
  495. package/_mjs/typeclass/Traversable.mjs +6 -25
  496. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  497. package/_mjs/typeclass/TraversableWithIndex.mjs +2 -6
  498. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  499. package/_mjs/typeclass/Witherable.mjs +3 -40
  500. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  501. package/_mjs/typeclass/WitherableWithIndex.mjs +6 -41
  502. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  503. package/_mjs/util.mjs +2 -0
  504. package/_mjs/util.mjs.map +1 -0
  505. package/_src/collection/Iterable/api/traverseConc.ts +24 -21
  506. package/_src/collection/compat/Array/api.ts +10 -10
  507. package/_src/collection/compat/Array/definition.ts +3 -3
  508. package/_src/collection/compat/Array/derivations.ts +85 -0
  509. package/_src/collection/compat/Array.ts +1 -0
  510. package/_src/collection/compat/Record/instances.ts +43 -0
  511. package/_src/collection/compat.ts +4 -0
  512. package/_src/collection/immutable/Conc/api.ts +9 -11
  513. package/_src/collection/immutable/Conc/definition.ts +18 -13
  514. package/_src/collection/immutable/Conc/derivations.ts +28 -0
  515. package/_src/collection/immutable/Conc.ts +1 -0
  516. package/_src/collection/immutable/Dictionary/definition.ts +1 -1
  517. package/_src/collection/immutable/HashMap/api.ts +20 -17
  518. package/_src/collection/immutable/HashMap/definition.ts +10 -6
  519. package/_src/collection/immutable/ImmutableArray/api.ts +62 -119
  520. package/_src/collection/immutable/ImmutableArray/constructors.ts +2 -2
  521. package/_src/collection/immutable/ImmutableArray/definition.ts +11 -5
  522. package/_src/collection/immutable/ImmutableArray/derivations.ts +28 -0
  523. package/_src/collection/immutable/ImmutableArray/instances.ts +47 -42
  524. package/_src/collection/immutable/ImmutableArray.ts +1 -0
  525. package/_src/collection/immutable/ImmutableNonEmptyArray/api.ts +13 -11
  526. package/_src/collection/immutable/ImmutableNonEmptyArray/constructors.ts +2 -2
  527. package/_src/collection/immutable/ImmutableNonEmptyArray/definition.ts +10 -5
  528. package/_src/collection/immutable/ImmutableNonEmptyArray/derivations.ts +44 -0
  529. package/_src/collection/immutable/ImmutableNonEmptyArray/instances.ts +24 -25
  530. package/_src/collection/immutable/ImmutableNonEmptyArray.ts +1 -0
  531. package/_src/collection/immutable/List/definition.ts +2 -2
  532. package/_src/collection/immutable/RoseTree/definition.ts +7 -4
  533. package/_src/collection/immutable/Vector/api.ts +12 -16
  534. package/_src/collection/immutable/Vector/definition.ts +10 -10
  535. package/_src/collection/immutable/Vector/internal.ts +1 -1
  536. package/_src/collection/immutable.ts +12 -0
  537. package/_src/collection/mutable/HashMap.ts +4 -0
  538. package/_src/collection/mutable.ts +6 -0
  539. package/_src/collection/weak/IterableWeakMap.ts +50 -5
  540. package/_src/collection/weak/IterableWeakSet.ts +57 -9
  541. package/_src/collection/weak.ts +4 -0
  542. package/_src/collection.ts +7 -0
  543. package/_src/control/Eval/api.ts +5 -2
  544. package/_src/control/Eval/definition.ts +8 -5
  545. package/_src/control/Eval/instance.ts +7 -7
  546. package/_src/control/Z/api.ts +40 -52
  547. package/_src/control/Z/definition.ts +36 -36
  548. package/_src/control/Z/instances.ts +3 -3
  549. package/_src/control/Z/runtime.ts +11 -11
  550. package/_src/control.ts +5 -0
  551. package/_src/data/Const/definition.ts +9 -17
  552. package/_src/data/Const/instances.ts +5 -5
  553. package/_src/data/Datum/api.ts +376 -0
  554. package/_src/data/Datum/definition.ts +102 -0
  555. package/_src/data/Datum/instances.ts +34 -0
  556. package/_src/data/DatumEither/api.ts +348 -0
  557. package/_src/data/DatumEither/definition.ts +20 -0
  558. package/_src/data/DecodeError/definition.ts +11 -3
  559. package/_src/data/DecodeError/instances.ts +0 -0
  560. package/_src/data/DecodeError.ts +1 -0
  561. package/_src/data/Decoder/definition.ts +7 -4
  562. package/_src/data/Either/api.ts +12 -2
  563. package/_src/data/Either/definition.ts +10 -15
  564. package/_src/data/Either/instances.ts +6 -6
  565. package/_src/data/EitherT/api.ts +239 -0
  566. package/_src/data/EitherT/definition.ts +23 -0
  567. package/_src/data/Environment/api.ts +8 -6
  568. package/_src/data/Environment/definition.ts +2 -2
  569. package/_src/data/Identity/api.ts +2 -2
  570. package/_src/data/Identity/definition.ts +2 -2
  571. package/_src/data/Identity/instances.ts +7 -7
  572. package/_src/data/Intervals.ts +126 -0
  573. package/_src/data/Maybe/api.ts +2 -2
  574. package/_src/data/Maybe/definition.ts +8 -5
  575. package/_src/data/Maybe/instances.ts +10 -10
  576. package/_src/data/Newtype.ts +32 -11
  577. package/_src/data/Struct/definition.ts +1 -1
  578. package/_src/data/Tag/definition.ts +2 -2
  579. package/_src/data/These/definition.ts +1 -1
  580. package/_src/data/Zipped.ts +52 -0
  581. package/_src/data/function/api.ts +8 -0
  582. package/_src/data/object/instances.ts +11 -1
  583. package/_src/data/string/api.ts +1 -1
  584. package/_src/data.ts +35 -0
  585. package/_src/global.ts +252 -0
  586. package/_src/index.ts +8 -0
  587. package/_src/json.ts +5 -0
  588. package/_src/optics/Optional/definition.ts +2 -2
  589. package/_src/optics/Traversal/api/compose.ts +1 -1
  590. package/_src/optics/Traversal/api/fromTraversable.ts +11 -11
  591. package/_src/optics/Traversal/definition.ts +13 -12
  592. package/_src/optics.ts +12 -0
  593. package/_src/typeclass/Align.ts +1 -1
  594. package/_src/typeclass/Alt.ts +24 -54
  595. package/_src/typeclass/Alternative.ts +1 -1
  596. package/_src/typeclass/Applicative.ts +6 -1
  597. package/_src/typeclass/ApplicativeExcept.ts +55 -81
  598. package/_src/typeclass/Apply.ts +224 -253
  599. package/_src/typeclass/Chain.ts +71 -98
  600. package/_src/typeclass/Fail.ts +10 -28
  601. package/_src/typeclass/Filterable.ts +13 -67
  602. package/_src/typeclass/FilterableWithIndex.ts +13 -13
  603. package/_src/typeclass/Foldable.ts +16 -35
  604. package/_src/typeclass/FoldableWithIndex.ts +14 -37
  605. package/_src/typeclass/Functor.ts +11 -21
  606. package/_src/typeclass/FunctorWithIndex.ts +4 -4
  607. package/_src/typeclass/Guard/definition.ts +1 -3
  608. package/_src/typeclass/Monad.ts +1 -1
  609. package/_src/typeclass/MonadExcept.ts +11 -7
  610. package/_src/typeclass/Nil.ts +10 -27
  611. package/_src/typeclass/Pointed.ts +11 -30
  612. package/_src/typeclass/Semialign.ts +285 -253
  613. package/_src/typeclass/Semimonoidal.ts +23 -54
  614. package/_src/typeclass/Showable/show.ts +10 -12
  615. package/_src/typeclass/Traversable.ts +45 -63
  616. package/_src/typeclass/TraversableWithIndex.ts +37 -34
  617. package/_src/typeclass/Witherable.ts +28 -115
  618. package/_src/typeclass/WitherableWithIndex.ts +82 -115
  619. package/_src/types/extractions.ts +1 -1
  620. package/_src/util.ts +8 -0
  621. package/collection/Iterable/api/traverseConc.d.ts +4 -6
  622. package/collection/compat/Array/api.d.ts +10 -10
  623. package/collection/compat/Array/definition.d.ts +3 -3
  624. package/collection/compat/Array/derivations.d.ts +24 -0
  625. package/collection/compat/Array.d.ts +1 -0
  626. package/collection/compat/Record/instances.d.ts +12 -0
  627. package/collection/compat.d.ts +2 -0
  628. package/collection/immutable/Conc/api.d.ts +4 -6
  629. package/collection/immutable/Conc/definition.d.ts +24 -20
  630. package/collection/immutable/Conc/derivations.d.ts +14 -0
  631. package/collection/immutable/Conc.d.ts +1 -0
  632. package/collection/immutable/Dictionary/definition.d.ts +1 -1
  633. package/collection/immutable/HashMap/api.d.ts +13 -13
  634. package/collection/immutable/HashMap/definition.d.ts +10 -7
  635. package/collection/immutable/ImmutableArray/api.d.ts +22 -24
  636. package/collection/immutable/ImmutableArray/constructors.d.ts +2 -2
  637. package/collection/immutable/ImmutableArray/definition.d.ts +12 -6
  638. package/collection/immutable/ImmutableArray/derivations.d.ts +14 -0
  639. package/collection/immutable/ImmutableArray/instances.d.ts +17 -17
  640. package/collection/immutable/ImmutableArray.d.ts +1 -0
  641. package/collection/immutable/ImmutableNonEmptyArray/api.d.ts +6 -5
  642. package/collection/immutable/ImmutableNonEmptyArray/constructors.d.ts +2 -2
  643. package/collection/immutable/ImmutableNonEmptyArray/definition.d.ts +9 -5
  644. package/collection/immutable/ImmutableNonEmptyArray/derivations.d.ts +14 -0
  645. package/collection/immutable/ImmutableNonEmptyArray/instances.d.ts +10 -10
  646. package/collection/immutable/ImmutableNonEmptyArray.d.ts +1 -0
  647. package/collection/immutable/List/definition.d.ts +2 -2
  648. package/collection/immutable/RoseTree/definition.d.ts +7 -5
  649. package/collection/immutable/Vector/api.d.ts +4 -4
  650. package/collection/immutable/Vector/definition.d.ts +9 -10
  651. package/collection/immutable/Vector/internal.d.ts +1 -1
  652. package/collection/immutable.d.ts +10 -0
  653. package/collection/mutable/HashMap.d.ts +1 -0
  654. package/collection/mutable.d.ts +4 -0
  655. package/collection/weak/IterableWeakMap.d.ts +9 -3
  656. package/collection/weak/IterableWeakSet.d.ts +10 -4
  657. package/collection/weak.d.ts +2 -0
  658. package/collection.d.ts +5 -0
  659. package/control/Eval/api.d.ts +6 -1
  660. package/control/Eval/definition.d.ts +6 -4
  661. package/control/Eval/instance.d.ts +3 -3
  662. package/control/Z/api.d.ts +32 -30
  663. package/control/Z/definition.d.ts +43 -37
  664. package/control/Z/instances.d.ts +2 -2
  665. package/control/Z/runtime.d.ts +9 -8
  666. package/control.d.ts +3 -0
  667. package/data/Const/definition.d.ts +8 -16
  668. package/data/Const/instances.d.ts +4 -3
  669. package/data/Datum/api.d.ts +188 -0
  670. package/data/Datum/definition.d.ts +75 -0
  671. package/data/Datum/instances.d.ts +32 -0
  672. package/data/DatumEither/api.d.ts +169 -0
  673. package/data/DatumEither/definition.d.ts +21 -0
  674. package/data/DecodeError/definition.d.ts +6 -0
  675. package/data/DecodeError/instances.d.ts +1 -0
  676. package/data/DecodeError.d.ts +1 -0
  677. package/data/Decoder/definition.d.ts +6 -4
  678. package/data/Either/api.d.ts +10 -0
  679. package/data/Either/definition.d.ts +8 -14
  680. package/data/Either/instances.d.ts +4 -3
  681. package/data/EitherT/api.d.ts +60 -0
  682. package/data/EitherT/definition.d.ts +12 -0
  683. package/data/Environment/api.d.ts +7 -5
  684. package/data/Environment/definition.d.ts +3 -3
  685. package/data/Identity/api.d.ts +2 -1
  686. package/data/Identity/definition.d.ts +2 -2
  687. package/data/Identity/instances.d.ts +3 -3
  688. package/data/Intervals.d.ts +53 -0
  689. package/data/Maybe/api.d.ts +2 -1
  690. package/data/Maybe/definition.d.ts +10 -5
  691. package/data/Maybe/instances.d.ts +6 -6
  692. package/data/Newtype.d.ts +9 -8
  693. package/data/Struct/definition.d.ts +1 -1
  694. package/data/Tag/definition.d.ts +2 -2
  695. package/data/Zipped.d.ts +24 -0
  696. package/data/function/api.d.ts +6 -0
  697. package/data/object/instances.d.ts +6 -1
  698. package/data/string/api.d.ts +1 -1
  699. package/data.d.ts +33 -0
  700. package/global.d.ts +237 -0
  701. package/index.d.ts +8 -0
  702. package/json.d.ts +3 -0
  703. package/optics/Traversal/api/fromTraversable.d.ts +1 -1
  704. package/optics/Traversal/definition.d.ts +2 -4
  705. package/optics.d.ts +10 -0
  706. package/package.json +6 -2
  707. package/typeclass/Align.d.ts +1 -1
  708. package/typeclass/Alt.d.ts +2 -4
  709. package/typeclass/Alternative.d.ts +1 -1
  710. package/typeclass/Applicative.d.ts +2 -1
  711. package/typeclass/ApplicativeExcept.d.ts +5 -13
  712. package/typeclass/Apply.d.ts +20 -32
  713. package/typeclass/Chain.d.ts +5 -13
  714. package/typeclass/Fail.d.ts +2 -7
  715. package/typeclass/Filterable.d.ts +7 -31
  716. package/typeclass/FilterableWithIndex.d.ts +7 -7
  717. package/typeclass/Foldable.d.ts +6 -19
  718. package/typeclass/FoldableWithIndex.d.ts +6 -19
  719. package/typeclass/Functor.d.ts +4 -11
  720. package/typeclass/FunctorWithIndex.d.ts +2 -2
  721. package/typeclass/Guard/definition.d.ts +1 -4
  722. package/typeclass/Monad.d.ts +1 -1
  723. package/typeclass/MonadExcept.d.ts +3 -4
  724. package/typeclass/Nil.d.ts +2 -7
  725. package/typeclass/Pointed.d.ts +2 -7
  726. package/typeclass/Semialign.d.ts +26 -32
  727. package/typeclass/Semimonoidal.d.ts +3 -8
  728. package/typeclass/Showable/show.d.ts +1 -1
  729. package/typeclass/Traversable.d.ts +21 -12
  730. package/typeclass/TraversableWithIndex.d.ts +19 -6
  731. package/typeclass/Witherable.d.ts +5 -19
  732. package/typeclass/WitherableWithIndex.d.ts +33 -19
  733. package/types/extractions.d.ts +1 -1
  734. package/util.d.ts +6 -0
@@ -1,5 +1,5 @@
1
1
  interface DictionaryN extends HKT {
2
- readonly [HKT.T]: Dictionary<HKT._A<this>>;
2
+ readonly type: Dictionary<this["A"]>;
3
3
  }
4
4
 
5
5
  /**
@@ -55,8 +55,8 @@ export function makeDefault<K, V>(): HashMap<K, V> {
55
55
  *
56
56
  * @tsplus fluent fncts.HashMapOps fromFoldable
57
57
  */
58
- export function fromFoldable<F extends HKT, C, K, A>(config: P.HashEq<K>, S: P.Semigroup<A>, F: P.Foldable<F>) {
59
- return <K_, Q, W, X, I, S, R, E>(fka: HKT.Kind<F, K_, Q, W, X, I, S, R, E, readonly [K, A]>): HashMap<K, A> => {
58
+ export function fromFoldable<F extends HKT, C, K, A>(config: P.HashEq<K>, S: P.Semigroup<A>, F: P.Foldable<F, C>) {
59
+ return <K_, Q, W, X, I, S, R, E>(fka: HKT.Kind<F, C, K_, Q, W, X, I, S, R, E, readonly [K, A]>): HashMap<K, A> => {
60
60
  return F.foldLeft(fka, makeWith(config), (b, [k, a]) => {
61
61
  const oa = b.get(k);
62
62
  if (oa.isJust()) {
@@ -529,15 +529,18 @@ export function foldLeft_<K, V, Z>(map: HashMap<K, V>, z: Z, f: (z: Z, v: V) =>
529
529
  }
530
530
 
531
531
  /**
532
- * @tsplus fluent fncts.HashMap traverseWithIndex
532
+ * @tsplus getter fncts.HashMap traverseWithIndex
533
533
  */
534
- export const traverseWithIndex_: P.TraversableWithIndex<HashMapF>["traverseWithIndex"] = (ta, f, G) =>
535
- ta.foldLeftWithIndex(G.pure(makeWith(ta.config)), (k, b, a) => b.zipWith(f(k, a), (map, b) => map.set(k, b), G));
534
+ export const traverseWithIndex = P.TraversableWithIndex.makeTraverseWithIndex<HashMapF>()(
535
+ () => (ta) => (G) => (f) =>
536
+ ta.foldLeftWithIndex(G.pure(makeWith(ta.config)), (k, b, a) => G.zipWith(b, f(k, a), (map, b) => map.set(k, b))),
537
+ );
536
538
 
537
539
  /**
538
- * @tsplus fluent fncts.HashMap traverse
540
+ * @tsplus getter fncts.HashMap traverse
539
541
  */
540
- export const traverse_: P.Traversable<HashMapF>["traverse"] = (ta, f, G) => ta.traverseWithIndex((_, a) => f(a), G);
542
+ export const traverse: P.Traversable<HashMapF>["traverse"] = (ta) => (G) => (f) =>
543
+ ta.traverseWithIndex(G)((_, a) => f(a));
541
544
 
542
545
  /**
543
546
  * @tsplus fluent fncts.HashMap unsafeGet
@@ -547,26 +550,26 @@ export function unsafeGet_<K, V>(self: HashMap<K, V>, key: K): V | undefined {
547
550
  }
548
551
 
549
552
  /**
550
- * @tsplus fluent fncts.HashMap witherWithIndex
553
+ * @tsplus getter fncts.HashMap witherWithIndex
551
554
  */
552
- export const witherWithIndex_: P.WitherableWithIndex<HashMapF>["witherWithIndex"] = (wa, f, G) =>
553
- wa.traverseWithIndex(f, G).map(compact, G);
555
+ export const witherWithIndex: P.WitherableWithIndex<HashMapF>["witherWithIndex"] = (wa) => (G) => (f) =>
556
+ G.map(wa.traverseWithIndex(G)(f), compact);
554
557
 
555
558
  /**
556
- * @tsplus fluent fncts.HashMap wither
559
+ * @tsplus getter fncts.HashMap wither
557
560
  */
558
- export const wither_: P.Witherable<HashMapF>["wither"] = (wa, f, G) => wa.witherWithIndex((_, a) => f(a), G);
561
+ export const wither: P.Witherable<HashMapF>["wither"] = (wa) => (G) => (f) => wa.witherWithIndex(G)((_, a) => f(a));
559
562
 
560
563
  /**
561
- * @tsplus fluent fncts.HashMap wiltWithIndex
564
+ * @tsplus getter fncts.HashMap wiltWithIndex
562
565
  */
563
- export const wiltWithIndex_: P.WitherableWithIndex<HashMapF>["wiltWithIndex"] = (wa, f, G) =>
564
- wa.traverseWithIndex(f, G).map(separate, G);
566
+ export const wiltWithIndex: P.WitherableWithIndex<HashMapF>["wiltWithIndex"] = (wa) => (G) => (f) =>
567
+ G.map(wa.traverseWithIndex(G)(f), separate);
565
568
 
566
569
  /**
567
- * @tsplus fluent fncts.HashMap wilt
570
+ * @tsplus getter fncts.HashMap wilt
568
571
  */
569
- export const wilt_: P.Witherable<HashMapF>["wilt"] = (wa, f, G) => wa.wiltWithIndex((_, a) => f(a), G);
572
+ export const wilt: P.Witherable<HashMapF>["wilt"] = (wa) => (G) => (f) => wa.wiltWithIndex(G)((_, a) => f(a));
570
573
 
571
574
  /**
572
575
  * @tsplus fluent fncts.HashMap unionWith
@@ -4,18 +4,22 @@ import type { HashEq } from "@fncts/base/typeclass";
4
4
  import { isEmptyNode } from "@fncts/base/collection/immutable/HashMap/internal";
5
5
  import { identity, tuple } from "@fncts/base/data/function";
6
6
 
7
- export interface HashMapF extends HashMap<any, any> {}
7
+ export interface HashMapF extends HKT {
8
+ type: HashMap<this["K"], this["A"]>;
9
+ variance: {
10
+ K: "+";
11
+ A: "+";
12
+ };
13
+ index: this["K"];
14
+ }
8
15
 
9
16
  /**
10
17
  * @tsplus type fncts.HashMap
11
18
  * @tsplus companion fncts.HashMapOps
12
19
  */
13
20
  export class HashMap<K, V> implements Iterable<readonly [K, V]>, Hashable, Equatable {
14
- readonly [HKT.F]!: HashMapF;
15
- readonly [HKT.K]!: () => K;
16
- readonly [HKT.A]!: () => V;
17
- readonly [HKT.T]!: HashMap<HKT._K<this>, HKT._A<this>>;
18
- readonly [HKT.Ix]!: K;
21
+ readonly _K!: () => K;
22
+ readonly _A!: () => V;
19
23
 
20
24
  constructor(
21
25
  public editable: boolean,
@@ -84,8 +84,8 @@ export function crossWith_<A, B, C>(
84
84
  /**
85
85
  * @tsplus fluent fncts.ImmutableArray cross
86
86
  */
87
- export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<readonly [A, B]> {
88
- return self.crossWith(fb, tuple);
87
+ export function cross_<A, B>(self: ImmutableArray<A>, fb: ImmutableArray<B>): ImmutableArray<Zipped.Make<A, B>> {
88
+ return self.crossWith(fb, (a, b) => Zipped(a, b));
89
89
  }
90
90
 
91
91
  /**
@@ -228,7 +228,9 @@ function comprehensionLoop<A, R>(
228
228
  if (input.length === 0) {
229
229
  return g(...scope) ? Eval.now(ImmutableArray(f(...scope))) : Eval.now(ImmutableArray.empty());
230
230
  } else {
231
- return input[0]!.traverse((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g)).map((rs) => rs.flatten);
231
+ return input[0]!
232
+ .traverse(Eval.Applicative)((a) => comprehensionLoop(scope.append(a), input.slice(1), f, g))
233
+ .map((rs) => rs.flatten);
232
234
  }
233
235
  }
234
236
 
@@ -536,7 +538,7 @@ export function findLastMapWithIndex_<A, B>(as: ImmutableArray<A>, f: (i: number
536
538
 
537
539
  /**
538
540
  * @tsplus fluent fncts.ImmutableArray foldLeftWithIndex
539
- * @tsplus fluent fncts.base.MutableArray foldLeftWithIndex
541
+ * @tsplus fluent fncts.MutableArray foldLeftWithIndex
540
542
  */
541
543
  export function foldLeftWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i: number, b: B, a: A) => B): B {
542
544
  const len = self.length;
@@ -549,7 +551,7 @@ export function foldLeftWithIndex_<A, B>(self: ImmutableArray<A>, b: B, f: (i: n
549
551
 
550
552
  /**
551
553
  * @tsplus fluent fncts.ImmutableArray foldLeft
552
- * @tsplus fluent fncts.base.MutableArray foldLeft
554
+ * @tsplus fluent fncts.MutableArray foldLeft
553
555
  */
554
556
  export function foldLeft_<A, B>(self: ImmutableArray<A>, b: B, f: (b: B, a: A) => B): B {
555
557
  return self.foldLeftWithIndex(b, (_, b, a) => f(b, a));
@@ -557,7 +559,7 @@ export function foldLeft_<A, B>(self: ImmutableArray<A>, b: B, f: (b: B, a: A) =
557
559
 
558
560
  /**
559
561
  * @tsplus fluent fncts.ImmutableArray foldLeftWhile
560
- * @tsplus fluent fncts.base.MutableArray foldLeftWhile
562
+ * @tsplus fluent fncts.MutableArray foldLeftWhile
561
563
  */
562
564
  export function foldLeftWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicate<B>, f: (b: B, a: A) => B): B {
563
565
  return self.foldLeftWithIndexWhile(b, p, (_, b, a) => f(b, a));
@@ -565,7 +567,7 @@ export function foldLeftWhile_<A, B>(self: ImmutableArray<A>, b: B, p: Predicate
565
567
 
566
568
  /**
567
569
  * @tsplus fluent fncts.ImmutableArray foldLeftWithIndexWhile
568
- * @tsplus fluent fncts.base.MutableArray foldLeftWithIndexWhile
570
+ * @tsplus fluent fncts.MutableArray foldLeftWithIndexWhile
569
571
  */
570
572
  export function foldLeftWithIndexWhile_<A, B>(
571
573
  self: ImmutableArray<A>,
@@ -659,7 +661,7 @@ export function forEach_<A, B>(self: ImmutableArray<A>, f: (a: A) => B): void {
659
661
 
660
662
  /**
661
663
  * @tsplus fluent fncts.ImmutableArray get
662
- * @tsplus fluent fncts.base.MutableArray get
664
+ * @tsplus fluent fncts.MutableArray get
663
665
  */
664
666
  export function get_<A>(self: ImmutableArray<A>, i: number): Maybe<A> {
665
667
  return self.isOutOfBound(i) ? Nothing() : Just(self._array[i]!);
@@ -952,7 +954,7 @@ export function prepend_<A, B>(self: ImmutableArray<A>, head: B): ImmutableArray
952
954
 
953
955
  /**
954
956
  * @tsplus fluent fncts.ImmutableArray prependAll
955
- * @tsplus fluent fncts.base.MutableArray prependAll
957
+ * @tsplus fluent fncts.MutableArray prependAll
956
958
  */
957
959
  export function prependAll_<A>(self: ImmutableArray<A>, a: A): ImmutableArray<A> {
958
960
  const out: Array<A> = [];
@@ -1164,16 +1166,20 @@ export function takeWhile_<A>(self: ImmutableArray<A>, p: Predicate<A>): Immutab
1164
1166
  }
1165
1167
 
1166
1168
  /**
1167
- * @tsplus fluent fncts.ImmutableArray traverseWithIndex
1169
+ * @tsplus getter fncts.ImmutableArray traverseWithIndex
1168
1170
  */
1169
- export const traverseWithIndex_: P.TraversableWithIndex<ImmutableArrayF>["traverseWithIndex"] = (ta, f, G) =>
1170
- ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) => fbs.zipWith(f(i, a), (bs, b) => bs.append(b), G));
1171
+ export const traverseWithIndex_ = P.TraversableWithIndex.makeTraverseWithIndex<ImmutableArrayF>()(
1172
+ () => (ta) => (G) => (f) =>
1173
+ ta.foldLeftWithIndex(G.pure(ImmutableArray.empty()), (i, fbs, a) =>
1174
+ G.zipWith(fbs, f(i, a), (bs, b) => bs.append(b)),
1175
+ ),
1176
+ );
1171
1177
 
1172
1178
  /**
1173
- * @tsplus fluent fncts.ImmutableArray traverse
1179
+ * @tsplus getter fncts.ImmutableArray traverse
1174
1180
  */
1175
- export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self, f, G) =>
1176
- self.traverseWithIndex((_, a) => f(a), G);
1181
+ export const traverse_: P.Traversable<ImmutableArrayF>["traverse"] = (self) => (G) => (f) =>
1182
+ self.traverseWithIndex(G)((_, a) => f(a));
1177
1183
 
1178
1184
  /**
1179
1185
  * @tsplus fluent fncts.ImmutableArray union
@@ -1292,122 +1298,59 @@ export function updateAt_<A>(as: ImmutableArray<A>, i: number, a: A): Maybe<Immu
1292
1298
  }
1293
1299
 
1294
1300
  /**
1295
- * @tsplus fluent fncts.ImmutableArray wilt
1296
- */
1297
- export function wilt_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1298
- self: ImmutableArray<A>,
1299
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1300
- /** @tsplus auto */
1301
- G: P.Applicative<G>,
1302
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1303
- return self
1304
- .foldLeft(
1305
- G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1306
- G,
1307
- KG,
1308
- QG,
1309
- WG,
1310
- XG,
1311
- IG,
1312
- SG,
1313
- RG,
1314
- EG,
1315
- readonly [B[], B1[]]
1316
- >,
1317
- (fbs, a) =>
1318
- f(a).zipWith(
1319
- fbs,
1320
- (eb, r) =>
1321
- eb.match(
1322
- (b1) => {
1323
- r[0].push(b1);
1324
- return r;
1325
- },
1326
- (b2) => {
1327
- r[1].push(b2);
1328
- return r;
1329
- },
1330
- ),
1331
- G,
1332
- ),
1333
- )
1334
- .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1335
- }
1336
-
1337
- export function wiltWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, B1, A, B>(
1338
- self: ImmutableArray<A>,
1339
- f: (i: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Either<B, B1>>,
1340
- /** @tsplus auto */
1341
- G: P.Applicative<G>,
1342
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, readonly [ImmutableArray<B>, ImmutableArray<B1>]> {
1343
- return self
1344
- .foldLeftWithIndex(
1345
- G.pure([[] as Array<B>, [] as Array<B1>] as const) as HKT.Kind<
1346
- G,
1347
- KG,
1348
- QG,
1349
- WG,
1350
- XG,
1351
- IG,
1352
- SG,
1353
- RG,
1354
- EG,
1355
- readonly [B[], B1[]]
1356
- >,
1357
- (i, fbs, a) =>
1358
- f(i, a).zipWith(
1359
- fbs,
1360
- (eb, r) =>
1361
- eb.match(
1362
- (b1) => {
1363
- r[0].push(b1);
1364
- return r;
1365
- },
1366
- (b2) => {
1367
- r[1].push(b2);
1368
- return r;
1369
- },
1370
- ),
1371
- G,
1301
+ * @tsplus getter fncts.ImmutableArray wiltWithIndex
1302
+ */
1303
+ export const wiltWithIndex = P.WitherableWithIndex.makeWiltWithIndex<ImmutableArrayF>()(
1304
+ (_) => (self) => (G) => (f) =>
1305
+ G.map(
1306
+ self.foldLeftWithIndex(G.pure([[] as Array<typeof _["B"]>, [] as Array<typeof _["B1"]>] as const), (i, fbs, a) =>
1307
+ G.zipWith(f(i, a), fbs, (eb, r) =>
1308
+ eb.match(
1309
+ (b1) => {
1310
+ r[0].push(b1);
1311
+ return r;
1312
+ },
1313
+ (b2) => {
1314
+ r[1].push(b2);
1315
+ return r;
1316
+ },
1317
+ ),
1372
1318
  ),
1373
- )
1374
- .map(([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray], G);
1375
- }
1319
+ ),
1320
+ ([b1s, b2s]) => [b1s.asImmutableArray, b2s.asImmutableArray],
1321
+ ),
1322
+ );
1376
1323
 
1377
1324
  /**
1378
- * @tsplus fluent fncts.ImmutableArray wither
1325
+ * @tsplus getter fncts.ImmutableArray wilt
1379
1326
  */
1380
- export function wither_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1381
- self: ImmutableArray<A>,
1382
- f: (a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1383
- /** @tsplus auto */ G: P.Applicative<G>,
1384
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1385
- return self.witherWithIndex((_, a) => f(a));
1386
- }
1327
+ export const wilt: P.WitherableWithIndex<ImmutableArrayF>["wilt"] = (self) => (G) => (f) =>
1328
+ self.wiltWithIndex(G)((_, a) => f(a));
1387
1329
 
1388
1330
  /**
1389
- * @tsplus fluent fncts.ImmutableArray witherWithIndex
1331
+ * @tsplus getter fncts.ImmutableArray witherWithIndex
1390
1332
  */
1391
- export function witherWithIndex_<G extends HKT, KG, QG, WG, XG, IG, SG, RG, EG, A, B>(
1392
- self: ImmutableArray<A>,
1393
- f: (k: number, a: A) => HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, Maybe<B>>,
1394
- /** @tsplus auto */ G: P.Applicative<G>,
1395
- ): HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, ImmutableArray<B>> {
1396
- return self
1397
- .foldLeftWithIndex(G.pure([] as Array<B>) as HKT.Kind<G, KG, QG, WG, XG, IG, SG, RG, EG, B[]>, (i, b, a) =>
1398
- f(i, a).zipWith(
1399
- b,
1400
- (maybeB, bs) => {
1333
+ export const witherWithIndex = P.WitherableWithIndex.makeWitherWithIndex<ImmutableArrayF>()(
1334
+ (_) => (self) => (G) => (f) => {
1335
+ return G.map(
1336
+ self.foldLeftWithIndex(G.pure([] as Array<typeof _["B"]>), (i, b, a) =>
1337
+ G.zipWith(f(i, a), b, (maybeB, bs) => {
1401
1338
  if (maybeB.isJust()) {
1402
1339
  bs.push(maybeB.value);
1403
1340
  }
1404
1341
  return bs;
1405
- },
1406
- G,
1342
+ }),
1407
1343
  ),
1408
- )
1409
- .map((bs) => bs.asImmutableArray, G);
1410
- }
1344
+ (bs) => bs.asImmutableArray,
1345
+ );
1346
+ },
1347
+ );
1348
+
1349
+ /**
1350
+ * @tsplus getter fncts.ImmutableArray wither
1351
+ */
1352
+ export const wither: P.Witherable<ImmutableArrayF>["wither"] = (self) => (G) => (f) =>
1353
+ self.witherWithIndex(G)((_, a) => f(a));
1411
1354
 
1412
1355
  /**
1413
1356
  * @tsplus fluent fncts.ImmutableArray zip
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @tsplus getter fncts.base.ReadonlyArray asImmutableArray
3
- * @tsplus getter fncts.base.Array asImmutableArray
2
+ * @tsplus getter fncts.ReadonlyArray asImmutableArray
3
+ * @tsplus getter fncts.Array asImmutableArray
4
4
  */
5
5
  export function asImmutableArray<A>(self: ReadonlyArray<A>): ImmutableArray<A> {
6
6
  return new ImmutableArray(self);
@@ -1,7 +1,13 @@
1
1
  export const ImmutableArrayTypeId = Symbol.for("fncts.ImmutableArray");
2
2
  export type ImmutableArrayTypeId = typeof ImmutableArrayTypeId;
3
3
 
4
- export interface ImmutableArrayF extends ImmutableArray<any> {}
4
+ export interface ImmutableArrayF extends HKT {
5
+ type: ImmutableArray<this["A"]>;
6
+ variance: {
7
+ A: "+";
8
+ };
9
+ index: number;
10
+ }
5
11
 
6
12
  /**
7
13
  * @tsplus type fncts.ImmutableArray
@@ -9,10 +15,7 @@ export interface ImmutableArrayF extends ImmutableArray<any> {}
9
15
  */
10
16
  export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
11
17
  readonly _typeId: ImmutableArrayTypeId = ImmutableArrayTypeId;
12
- [HKT.F]?: ImmutableArrayF;
13
- [HKT.A]?: () => A;
14
- [HKT.T]?: ImmutableArray<HKT._A<this>>;
15
- [HKT.Ix]?: number;
18
+ readonly _A!: () => A;
16
19
  constructor(readonly _array: ReadonlyArray<A>) {}
17
20
 
18
21
  [Symbol.equals](that: unknown): boolean {
@@ -32,6 +35,9 @@ export class ImmutableArray<A> implements Equatable, Hashable, Iterable<A> {
32
35
  }
33
36
  }
34
37
 
38
+ /**
39
+ * @tsplus static fncts.ImmutableArrayOps is
40
+ */
35
41
  export function isImmutableArray(u: unknown): u is ImmutableArray<unknown> {
36
42
  return hasTypeId(u, ImmutableArrayTypeId);
37
43
  }
@@ -0,0 +1,28 @@
1
+ import type { Check } from "@fncts/typelevel/Check";
2
+
3
+ /**
4
+ * @tsplus derive fncts.Guard[fncts.ImmutableArray]<_> 10
5
+ */
6
+ export function deriveGuard<A extends ImmutableArray<any>>(
7
+ ...[element]: [A] extends [ImmutableArray<infer A>] ? [element: Guard<A>] : never
8
+ ): Guard<A> {
9
+ return Guard((u): u is A => {
10
+ if (ImmutableArray.is(u)) {
11
+ return u._array.every(element.is);
12
+ }
13
+ return false;
14
+ });
15
+ }
16
+
17
+ /**
18
+ * @tsplus derive fncts.Decoder[fncts.ImmutableArray]<_> 10
19
+ */
20
+ export function deriveDecoder<A extends ImmutableArray<any>>(
21
+ ...[array, elem]: [A] extends [ImmutableArray<infer _A>]
22
+ ? Check<Check.IsEqual<A, ImmutableArray<_A>>> extends Check.True
23
+ ? [array: Decoder<Array<_A>>, elem: Decoder<_A>]
24
+ : never
25
+ : never
26
+ ): Decoder<A> {
27
+ return Decoder((u) => array.decode(u).map((as) => new ImmutableArray(as) as A), `ImmutableArray<${elem.label}>`);
28
+ }
@@ -1,5 +1,7 @@
1
1
  import type { ImmutableArrayF } from "@fncts/base/collection/immutable/ImmutableArray/definition";
2
+ import type { DecodeError } from "@fncts/base/data/DecodeError";
2
3
  import type * as P from "@fncts/base/typeclass";
4
+ import type { Check } from "@fncts/typelevel/Check";
3
5
 
4
6
  import {
5
7
  alignWith_,
@@ -23,168 +25,171 @@ import {
23
25
  partitionWithIndex_,
24
26
  traverse_,
25
27
  traverseWithIndex_,
26
- wilt_,
27
- wiltWithIndex_,
28
- wither_,
29
- witherWithIndex_,
28
+ wilt,
29
+ wiltWithIndex,
30
+ wither,
31
+ witherWithIndex,
30
32
  } from "@fncts/base/collection/immutable/ImmutableArray/api";
31
33
  import { empty } from "@fncts/base/collection/immutable/ImmutableArray/constructors";
34
+ import { isImmutableArray } from "@fncts/base/collection/immutable/ImmutableArray/definition";
35
+ import { CompoundError, OptionalIndexError, PrimitiveError } from "@fncts/base/data/DecodeError";
36
+ import { Decoder } from "@fncts/base/data/Decoder";
32
37
 
33
38
  /**
34
39
  * @tsplus implicit
35
40
  */
36
- export const Align: P.Align<ImmutableArrayF> = {
41
+ export const Align = HKT.instance<P.Align<ImmutableArrayF>>({
37
42
  map: map_,
38
43
  alignWith: alignWith_,
39
44
  nil: empty,
40
- };
45
+ });
41
46
 
42
47
  /**
43
48
  * @tsplus implicit
44
49
  */
45
- export const Functor: P.Functor<ImmutableArrayF> = {
50
+ export const Functor = HKT.instance<P.Functor<ImmutableArrayF>>({
46
51
  map: map_,
47
- };
52
+ });
48
53
 
49
54
  /**
50
55
  * @tsplus implicit
51
56
  */
52
- export const FunctorWithIndex: P.FunctorWithIndex<ImmutableArrayF> = {
57
+ export const FunctorWithIndex = HKT.instance<P.FunctorWithIndex<ImmutableArrayF>>({
53
58
  map: map_,
54
59
  mapWithIndex: mapWithIndex_,
55
- };
60
+ });
56
61
 
57
62
  /**
58
63
  * @tsplus implicit
59
64
  */
60
- export const Apply: P.Apply<ImmutableArrayF> = {
65
+ export const Apply = HKT.instance<P.Apply<ImmutableArrayF>>({
61
66
  map: map_,
62
67
  zip: cross_,
63
68
  zipWith: crossWith_,
64
- };
69
+ });
65
70
 
66
71
  /**
67
72
  * @tsplus implicit
68
73
  */
69
- export const Applicative: P.Applicative<ImmutableArrayF> = {
74
+ export const Applicative = HKT.instance<P.Applicative<ImmutableArrayF>>({
70
75
  map: map_,
71
76
  zip: cross_,
72
77
  zipWith: crossWith_,
73
78
  pure: (a) => ImmutableArray(a),
74
- };
79
+ });
75
80
 
76
81
  /**
77
82
  * @tsplus implicit
78
83
  */
79
- export const Alt: P.Alt<ImmutableArrayF> = {
84
+ export const Alt = HKT.instance<P.Alt<ImmutableArrayF>>({
80
85
  map: map_,
81
86
  alt: alt_,
82
- };
87
+ });
83
88
 
84
89
  /**
85
90
  * @tsplus implicit
86
91
  */
87
- export const Alternative: P.Alternative<ImmutableArrayF> = {
92
+ export const Alternative = HKT.instance<P.Alternative<ImmutableArrayF>>({
88
93
  map: map_,
89
94
  zip: cross_,
90
95
  zipWith: crossWith_,
91
96
  pure: (a) => ImmutableArray(a),
92
97
  alt: alt_,
93
98
  nil: empty,
94
- };
99
+ });
95
100
 
96
101
  /**
97
102
  * @tsplus implicit
98
103
  */
99
- export const Filterable: P.Filterable<ImmutableArrayF> = {
104
+ export const Filterable = HKT.instance<P.Filterable<ImmutableArrayF>>({
100
105
  map: map_,
101
106
  filter: filter_,
102
107
  filterMap: filterMap_,
103
108
  partition: partition_,
104
109
  partitionMap: partitionMap_,
105
- };
110
+ });
106
111
 
107
112
  /**
108
113
  * @tsplus implicit
109
114
  */
110
- export const FilterableWithIndex: P.FilterableWithIndex<ImmutableArrayF> = {
115
+ export const FilterableWithIndex = HKT.instance<P.FilterableWithIndex<ImmutableArrayF>>({
111
116
  ...FunctorWithIndex,
112
117
  ...Filterable,
113
118
  filterWithIndex: filterWithIndex_,
114
119
  filterMapWithIndex: filterMapWithIndex_,
115
120
  partitionWithIndex: partitionWithIndex_,
116
121
  partitionMapWithIndex: partitionMapWithIndex_,
117
- };
122
+ });
118
123
 
119
124
  /**
120
125
  * @tsplus implicit
121
126
  */
122
- export const Foldable: P.Foldable<ImmutableArrayF> = {
127
+ export const Foldable = HKT.instance<P.Foldable<ImmutableArrayF>>({
123
128
  foldLeft: foldLeft_,
124
129
  foldRight: foldRight_,
125
- };
130
+ });
126
131
 
127
132
  /**
128
133
  * @tsplus implicit
129
134
  */
130
- export const FoldableWithIndex: P.FoldableWithIndex<ImmutableArrayF> = {
135
+ export const FoldableWithIndex = HKT.instance<P.FoldableWithIndex<ImmutableArrayF>>({
131
136
  ...Foldable,
132
137
  foldLeftWithIndex: foldLeftWithIndex_,
133
138
  foldRightWithIndex: foldRightWithIndex_,
134
- };
139
+ });
135
140
 
136
141
  /**
137
142
  * @tsplus implicit
138
143
  */
139
- export const FlatMap: P.FlatMap<ImmutableArrayF> = {
144
+ export const FlatMap = HKT.instance<P.FlatMap<ImmutableArrayF>>({
140
145
  ...Functor,
141
146
  flatMap: flatMap_,
142
- };
147
+ });
143
148
 
144
149
  /**
145
150
  * @tsplus implicit
146
151
  */
147
- export const Monad: P.Monad<ImmutableArrayF> = {
152
+ export const Monad = HKT.instance<P.Monad<ImmutableArrayF>>({
148
153
  ...Applicative,
149
154
  ...FlatMap,
150
- };
155
+ });
151
156
 
152
157
  /**
153
158
  * @tsplus implicit
154
159
  */
155
- export const Traversable: P.Traversable<ImmutableArrayF> = {
160
+ export const Traversable = HKT.instance<P.Traversable<ImmutableArrayF>>({
156
161
  ...Functor,
157
162
  ...Foldable,
158
163
  traverse: traverse_,
159
- };
164
+ });
160
165
 
161
166
  /**
162
167
  * @tsplus implicit
163
168
  */
164
- export const TraversableWithIndex: P.TraversableWithIndex<ImmutableArrayF> = {
169
+ export const TraversableWithIndex = HKT.instance<P.TraversableWithIndex<ImmutableArrayF>>({
165
170
  ...Traversable,
166
171
  ...FoldableWithIndex,
167
172
  ...FunctorWithIndex,
168
173
  traverseWithIndex: traverseWithIndex_,
169
- };
174
+ });
170
175
 
171
176
  /**
172
177
  * @tsplus implicit
173
178
  */
174
- export const Witherable: P.Witherable<ImmutableArrayF> = {
179
+ export const Witherable = HKT.instance<P.Witherable<ImmutableArrayF>>({
175
180
  ...Traversable,
176
181
  ...Filterable,
177
- wither: wither_,
178
- wilt: wilt_,
179
- };
182
+ wither,
183
+ wilt,
184
+ });
180
185
 
181
186
  /**
182
187
  * @tsplus implicit
183
188
  */
184
- export const WitherableWithIndex: P.WitherableWithIndex<ImmutableArrayF> = {
189
+ export const WitherableWithIndex = HKT.instance<P.WitherableWithIndex<ImmutableArrayF>>({
185
190
  ...TraversableWithIndex,
186
191
  ...FilterableWithIndex,
187
192
  ...Witherable,
188
- witherWithIndex: witherWithIndex_,
189
- wiltWithIndex: wiltWithIndex_,
190
- };
193
+ witherWithIndex,
194
+ wiltWithIndex,
195
+ });