@fncts/base 0.0.12 → 0.0.15

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,239 @@
1
+ import type { EitherT } from "./definition.js";
2
+ import type * as P from "@fncts/base/typeclass";
3
+
4
+ /**
5
+ * @tsplus static fncts.EitherTOps __call
6
+ */
7
+ export function make<F extends HKT, FC, K, Q, W, X, I, S, R, FE, E, A>(
8
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, Either<E, A>>,
9
+ ): EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A> {
10
+ return self;
11
+ }
12
+
13
+ /**
14
+ * @tsplus static fncts.EitherTOps right
15
+ */
16
+ export function right<F extends HKT, FC>(
17
+ F: P.Pointed<F, FC>,
18
+ ): <K, Q, W, X, I, S, R, FE, E = never, A = never>(a: A) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A> {
19
+ return (a) => F.pure(Either.right(a));
20
+ }
21
+
22
+ /**
23
+ * @tsplus static fncts.EitherTOps left
24
+ */
25
+ export function left<F extends HKT, FC>(
26
+ F: P.Pointed<F, FC>,
27
+ ): <K, Q, W, X, I, S, R, FE, E, A = never>(e: E) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A> {
28
+ return (e) => F.pure(Either.left(e));
29
+ }
30
+
31
+ /**
32
+ * @tsplus static fncts.EitherTOps rightF
33
+ */
34
+ export function rightF<F extends HKT, FC>(
35
+ F: P.Functor<F, FC>,
36
+ ): <K, Q, W, X, I, S, R, FE, E = never, A = never>(
37
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, A>,
38
+ ) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A> {
39
+ return (self) => F.map(self, Either.right);
40
+ }
41
+
42
+ /**
43
+ * @tsplus static fncts.EitherTOps leftF
44
+ */
45
+ export function leftF<F extends HKT, FC>(
46
+ F: P.Functor<F, FC>,
47
+ ): <K, Q, W, X, I, S, R, FE, E = never, A = never>(
48
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, E>,
49
+ ) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A> {
50
+ return (self) => F.map(self, Either.left);
51
+ }
52
+
53
+ /**
54
+ * @tsplus static fncts.EitherTOps map
55
+ */
56
+ export function map<F extends HKT, FC>(
57
+ F: P.Functor<F, FC>,
58
+ ): <K, Q, W, X, I, S, R, FE, E, A, B>(
59
+ self: EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A>,
60
+ f: (a: A) => B,
61
+ ) => EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, B> {
62
+ return (self, f) => F.map(self, (either) => either.map(f));
63
+ }
64
+
65
+ /**
66
+ * @tsplus static fncts.EitherTOps mapLeft
67
+ */
68
+ export function mapLeft<F extends HKT, FC = HKT.None>(
69
+ F: P.Functor<F, FC>,
70
+ ): <K, Q, W, X, I, S, R, FE, E, A, E1>(
71
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, Either<E, A>>,
72
+ f: (e: E) => E1,
73
+ ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, Either<E1, A>> {
74
+ return (self, f) => F.map(self, (either) => either.mapLeft(f));
75
+ }
76
+
77
+ /**
78
+ * @tsplus static fncts.EitherTOps bimap
79
+ */
80
+ export function bimap<F extends HKT, FC = HKT.None>(
81
+ F: P.Functor<F, FC>,
82
+ ): <K, Q, W, X, I, S, R, FE, E, A, E1, B>(
83
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, Either<E, A>>,
84
+ f: (e: E) => E1,
85
+ g: (a: A) => B,
86
+ ) => HKT.Kind<F, FC, K, Q, W, X, I, S, R, FE, Either<E1, B>> {
87
+ return (self, f, g) => F.map(self, (either) => either.bimap(f, g));
88
+ }
89
+
90
+ /**
91
+ * @tsplus static fncts.EitherTOps flatMap
92
+ */
93
+ export function flatMap<F extends HKT, FC>(F: P.Monad<F, FC>) {
94
+ return <K, Q, W, X, I, S, R, FE, E, A, K1, Q1, W1, X1, I1, S1, R1, FE1, E1, B>(
95
+ self: EitherT<F, FC, K, Q, W, X, I, S, R, FE, E, A>,
96
+ f: (
97
+ a: A,
98
+ ) => HKT.Kind<
99
+ F,
100
+ FC,
101
+ HKT.Intro<F, "K", K, K1>,
102
+ HKT.Intro<F, "Q", Q, Q1>,
103
+ HKT.Intro<F, "W", W, W1>,
104
+ HKT.Intro<F, "X", X, X1>,
105
+ HKT.Intro<F, "I", I, I1>,
106
+ HKT.Intro<F, "S", S, S1>,
107
+ HKT.Intro<F, "R", R, R1>,
108
+ HKT.Intro<F, "E", FE, FE1>,
109
+ Either<E1, B>
110
+ >,
111
+ ): EitherT<
112
+ F,
113
+ FC,
114
+ HKT.Mix<F, "K", [K, K1]>,
115
+ HKT.Mix<F, "Q", [Q, Q1]>,
116
+ HKT.Mix<F, "W", [W, W1]>,
117
+ HKT.Mix<F, "X", [X, X1]>,
118
+ HKT.Mix<F, "I", [I, I1]>,
119
+ HKT.Mix<F, "S", [S, S1]>,
120
+ HKT.Mix<F, "R", [R, R1]>,
121
+ HKT.Mix<F, "E", [FE, FE1]>,
122
+ E | E1,
123
+ B
124
+ > =>
125
+ F.flatMap(
126
+ self,
127
+ (either) =>
128
+ either.match(
129
+ (e) => F.pure(Either.left(e)),
130
+ (a) => f(a),
131
+ ) as HKT.Kind<
132
+ F,
133
+ FC,
134
+ HKT.Intro<F, "K", K, K1>,
135
+ HKT.Intro<F, "Q", Q, Q1>,
136
+ HKT.Intro<F, "W", W, W1>,
137
+ HKT.Intro<F, "X", X, X1>,
138
+ HKT.Intro<F, "I", I, I1>,
139
+ HKT.Intro<F, "S", S, S1>,
140
+ HKT.Intro<F, "R", R, R1>,
141
+ HKT.Intro<F, "E", FE, FE1>,
142
+ Either<E1, B>
143
+ >,
144
+ );
145
+ }
146
+
147
+ /**
148
+ * @tsplus static fncts.EitherTOps zipWith
149
+ */
150
+ export function zipWith<F extends HKT, FC = HKT.None>(
151
+ F: P.Apply<F, FC>,
152
+ ): <K, Q, W, X, I, S, R, EF, E, A, K1, Q1, W1, X1, I1, S1, R1, EF1, E1, B, C>(
153
+ self: HKT.Kind<F, FC, K, Q, W, X, I, S, R, EF, Either<E, A>>,
154
+ that: HKT.Kind<
155
+ F,
156
+ FC,
157
+ HKT.Intro<F, "K", K, K1>,
158
+ HKT.Intro<F, "Q", Q, Q1>,
159
+ HKT.Intro<F, "W", W, W1>,
160
+ HKT.Intro<F, "X", X, X1>,
161
+ HKT.Intro<F, "I", I, I1>,
162
+ HKT.Intro<F, "S", S, S1>,
163
+ HKT.Intro<F, "R", R, R1>,
164
+ HKT.Intro<F, "E", EF, EF1>,
165
+ Either<E1, B>
166
+ >,
167
+ f: (a: A, b: B) => C,
168
+ ) => HKT.Kind<
169
+ F,
170
+ FC,
171
+ HKT.Intro<F, "K", K, K1>,
172
+ HKT.Intro<F, "Q", Q, Q1>,
173
+ HKT.Intro<F, "W", W, W1>,
174
+ HKT.Intro<F, "X", X, X1>,
175
+ HKT.Intro<F, "I", I, I1>,
176
+ HKT.Intro<F, "S", S, S1>,
177
+ HKT.Intro<F, "R", R, R1>,
178
+ HKT.Intro<F, "E", EF, EF1>,
179
+ Either<E | E1, C>
180
+ >;
181
+ export function zipWith<F extends HKT>(
182
+ F: P.Apply<HKT.F<F>>,
183
+ ): <E, A, E1, B, C>(
184
+ self: HKT.FK1<F, Either<E, A>>,
185
+ that: HKT.FK1<F, Either<E1, B>>,
186
+ f: (a: A, b: B) => C,
187
+ ) => HKT.FK1<F, Either<E | E1, C>> {
188
+ return (self, that, f) => F.zipWith(self, that, (a, b) => a.zipWith(b, f));
189
+ }
190
+
191
+ /**
192
+ * @tsplus static fncts.EitherTOps orElse
193
+ */
194
+ export function orElse<F extends HKT, FC = HKT.None>(
195
+ F: P.Monad<F, FC>,
196
+ ): <K, Q, W, X, I, S, R, EF, E, A, K1, Q1, W1, X1, I1, S1, R1, EF1, E1, B>(
197
+ fa: HKT.Kind<F, FC, K, Q, W, X, I, S, R, EF, Either<E, A>>,
198
+ that: Lazy<
199
+ HKT.Kind<
200
+ F,
201
+ FC,
202
+ HKT.Intro<F, "K", K, K1>,
203
+ HKT.Intro<F, "Q", Q, Q1>,
204
+ HKT.Intro<F, "W", W, W1>,
205
+ HKT.Intro<F, "X", X, X1>,
206
+ HKT.Intro<F, "I", I, I1>,
207
+ HKT.Intro<F, "S", S, S1>,
208
+ HKT.Intro<F, "R", R, R1>,
209
+ HKT.Intro<F, "E", EF, EF1>,
210
+ Either<E1, B>
211
+ >
212
+ >,
213
+ ) => HKT.Kind<
214
+ F,
215
+ FC,
216
+ HKT.Mix<F, "K", [K, K1]>,
217
+ HKT.Mix<F, "Q", [Q, Q1]>,
218
+ HKT.Mix<F, "W", [W, W1]>,
219
+ HKT.Mix<F, "X", [X, X1]>,
220
+ HKT.Mix<F, "I", [I, I1]>,
221
+ HKT.Mix<F, "S", [S, S1]>,
222
+ HKT.Mix<F, "R", [R, R1]>,
223
+ HKT.Mix<F, "E", [EF, EF1]>,
224
+ Either<E | E1, A | B>
225
+ >;
226
+ export function orElse<F>(
227
+ F: P.Monad<HKT.F1<F>>,
228
+ ): <E, A, E1, B>(
229
+ self: HKT.FK1<F, Either<E, A>>,
230
+ that: Lazy<HKT.FK1<F, Either<E1, B>>>,
231
+ ) => HKT.FK1<F, Either<E | E1, A | B>> {
232
+ return (self, that) =>
233
+ F.flatMap(self, (either) =>
234
+ either.match(
235
+ () => that(),
236
+ () => F.pure(either),
237
+ ),
238
+ );
239
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @tsplus type fncts.EitherT
3
+ */
4
+ export type EitherT<F extends HKT, FC, K, Q, W, X, I, S, R, EF, E, A> = HKT.Kind<
5
+ F,
6
+ FC,
7
+ K,
8
+ Q,
9
+ W,
10
+ X,
11
+ I,
12
+ S,
13
+ R,
14
+ EF,
15
+ Either<E, A>
16
+ >;
17
+
18
+ /**
19
+ * @tsplus type fncts.EitherTOps
20
+ */
21
+ export interface EitherTOps {}
22
+
23
+ export const EitherT: EitherTOps = {};
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @tsplus fluent fncts.Environment add
3
3
  */
4
- export function add<R, S, H extends S = S>(self: Environment<R>, service: H, tag: Tag<S>): Environment<R & Has<S>> {
4
+ export function add<R, H extends S, S = H>(self: Environment<R>, service: H, tag: Tag<S>): Environment<R | S> {
5
5
  const self0 = self.index === Number.MAX_SAFE_INTEGER ? self.clean : self;
6
6
  return new Environment(self0.map.set(tag, [service, self0.index]), self0.index + 1);
7
7
  }
@@ -11,11 +11,13 @@ export function add<R, S, H extends S = S>(self: Environment<R>, service: H, tag
11
11
  */
12
12
  export const empty = Environment();
13
13
 
14
+ type Tags<R> = R extends infer S ? Tag<S> : never;
15
+
14
16
  /**
15
17
  * @tsplus fluent fncts.Environment get
16
18
  */
17
- export function get<R extends Has<S>, S>(self: Environment<R>, tag: Tag<S>): S {
18
- return self.unsafeGet(tag);
19
+ export function get<R, T extends Tags<R>>(self: Environment<R>, tag: T): T extends Tag<infer S> ? S : never {
20
+ return unsafeCoerce(self.unsafeGet(tag));
19
21
  }
20
22
 
21
23
  /**
@@ -28,7 +30,7 @@ export function getMaybe<R extends Has<S>, S>(self: Environment<R>, tag: Tag<S>)
28
30
  /**
29
31
  * @tsplus static fncts.EnvironmentOps __call
30
32
  */
31
- export function make(): Environment<unknown> {
33
+ export function make(): Environment<never> {
32
34
  return new Environment(HashMap.makeDefault(), 0, HashMap.makeDefault());
33
35
  }
34
36
 
@@ -88,6 +90,6 @@ export function unsafeGet<R, S>(self: Environment<R>, tag: Tag<S>): S {
88
90
  /**
89
91
  * @tsplus fluent fncts.Environment update
90
92
  */
91
- export function update<R extends Has<S>, S>(self: Environment<R>, f: (s: S) => S, tag: Tag<S>): Environment<R> {
92
- return self.add(f(self.get(tag)), tag);
93
+ export function update<R, S extends R>(self: Environment<R>, f: (s: S) => S, tag: Tag<S>): Environment<R> {
94
+ return self.add(f(self.unsafeGet(tag)), tag);
93
95
  }
@@ -13,9 +13,9 @@ export class Environment<R> implements Hashable, Equatable {
13
13
  readonly _typeId: EnvSymbol = EnvSymbol;
14
14
  readonly [EnvSymbol]!: (_: never) => R;
15
15
  constructor(
16
- readonly map: HashMap<Tag<unknown>, readonly [unknown, number]>,
16
+ readonly map: HashMap<Tag<any>, readonly [unknown, number]>,
17
17
  readonly index: number,
18
- public cache: HashMap<Tag<unknown>, unknown> = HashMap.makeDefault(),
18
+ public cache: HashMap<Tag<any>, unknown> = HashMap.makeDefault(),
19
19
  ) {}
20
20
 
21
21
  get [Symbol.hash](): number {
@@ -30,8 +30,8 @@ export function zipWith_<A, B, C>(fa: Identity<A>, fb: Identity<B>, f: (a: A, b:
30
30
  /**
31
31
  * @tsplus fluent fncts.Identity zip
32
32
  */
33
- export function zip_<A, B>(fa: Identity<A>, fb: Identity<B>): Identity<readonly [A, B]> {
34
- return fa.zipWith(fb, (a, b) => [a, b]);
33
+ export function zip_<A, B>(fa: Identity<A>, fb: Identity<B>): Identity<Zipped.Make<A, B>> {
34
+ return fa.zipWith(fb, (a, b) => Zipped(a, b));
35
35
  }
36
36
 
37
37
  /**
@@ -1,5 +1,5 @@
1
- export interface IdentityN {
2
- readonly [HKT.T]: Identity<HKT._A<this>>;
1
+ export interface IdentityN extends HKT {
2
+ type: Identity<this["A"]>;
3
3
  }
4
4
 
5
5
  /**
@@ -1,28 +1,28 @@
1
1
  import type * as P from "../../typeclass.js";
2
2
  import type { IdentityN } from "@fncts/base/data/Identity/definition";
3
3
 
4
- import { ap_, map_, pure, zip_, zipWith_ } from "./api.js";
4
+ import { map_, pure, zip_, zipWith_ } from "./api.js";
5
5
 
6
6
  /**
7
7
  * @tsplus static fncts.IdentityOps Functor
8
8
  */
9
- export const Functor: P.Functor<IdentityN> = {
9
+ export const Functor = HKT.instance<P.Functor<IdentityN>>({
10
10
  map: map_,
11
- };
11
+ });
12
12
 
13
13
  /**
14
14
  * @tsplus static fncts.IdentityOps Apply
15
15
  */
16
- export const Apply: P.Apply<IdentityN> = {
16
+ export const Apply = HKT.instance<P.Apply<IdentityN>>({
17
17
  ...Functor,
18
18
  zip: zip_,
19
19
  zipWith: zipWith_,
20
- };
20
+ });
21
21
 
22
22
  /**
23
23
  * @tsplus static fncts.IdentityOps Applicative
24
24
  */
25
- export const Applicative: P.Applicative<IdentityN> = {
25
+ export const Applicative = HKT.instance<P.Applicative<IdentityN>>({
26
26
  ...Apply,
27
27
  pure,
28
- };
28
+ });
@@ -0,0 +1,126 @@
1
+ /**
2
+ * @tsplus type fncts.Intervals
3
+ * @tsplus companion fncts.IntervalsOps
4
+ */
5
+ export class Intervals {
6
+ constructor(readonly intervals: List<Interval>) {}
7
+ }
8
+
9
+ /**
10
+ * @tsplus static fncts.IntervalsOps __call
11
+ */
12
+ export function make(intervals: List<Interval>): Intervals {
13
+ return new Intervals(intervals);
14
+ }
15
+
16
+ /**
17
+ * @tsplus fluent fncts.Intervals union
18
+ * @tsplus operator fncts.Intervals ||
19
+ */
20
+ export function union(self: Intervals, that: Intervals): Intervals {
21
+ if (that.intervals.isEmpty()) {
22
+ return self;
23
+ } else if (self.intervals.isEmpty()) {
24
+ return that;
25
+ } else if (self.intervals.head.startMilliseconds < that.intervals.head.startMilliseconds) {
26
+ return unionLoop(self.intervals.tail, that.intervals, self.intervals.head, Nil());
27
+ } else {
28
+ return unionLoop(self.intervals, that.intervals.tail, that.intervals.head, Nil());
29
+ }
30
+ }
31
+
32
+ /**
33
+ * @tsplus tailRec
34
+ */
35
+ function unionLoop(left: List<Interval>, right: List<Interval>, interval: Interval, acc: List<Interval>): Intervals {
36
+ if (left.isEmpty() && right.isEmpty()) {
37
+ return Intervals((interval + acc).reverse);
38
+ } else if (left.isEmpty() && right.isNonEmpty()) {
39
+ const rightHead = right.head;
40
+ const rights = right.tail;
41
+ if (interval.endMilliseconds < rightHead.startMilliseconds)
42
+ return unionLoop(Nil(), rights, rightHead, interval + acc);
43
+ else return unionLoop(Nil(), rights, Interval(interval.startMilliseconds, rightHead.endMilliseconds), acc);
44
+ } else if (left.isNonEmpty() && right.isEmpty()) {
45
+ const leftHead = left.head;
46
+ const lefts = left.tail;
47
+ if (interval.endMilliseconds < leftHead.startMilliseconds) return unionLoop(lefts, Nil(), leftHead, interval + acc);
48
+ else return unionLoop(lefts, Nil(), Interval(interval.startMilliseconds, leftHead.endMilliseconds), acc);
49
+ } else {
50
+ const leftHead = left.unsafeHead;
51
+ const lefts = left.unsafeTail;
52
+ const rightHead = right.unsafeHead;
53
+ const rights = right.unsafeTail;
54
+ if (leftHead.startMilliseconds < rightHead.startMilliseconds) {
55
+ if (interval.endMilliseconds < leftHead.startMilliseconds)
56
+ return unionLoop(lefts, right, leftHead, interval + acc);
57
+ else return unionLoop(lefts, right, Interval(interval.startMilliseconds, leftHead.endMilliseconds), acc);
58
+ } else {
59
+ if (interval.endMilliseconds < rightHead.startMilliseconds)
60
+ return unionLoop(left, rights, rightHead, interval + acc);
61
+ else return unionLoop(left, rights, Interval(interval.startMilliseconds, rightHead.endMilliseconds), acc);
62
+ }
63
+ }
64
+ }
65
+
66
+ /**
67
+ * @tsplus fluent fncts.Intervals intersect
68
+ * @tsplus operator fncts.Intervals &&
69
+ */
70
+ export function intersect(self: Intervals, that: Intervals): Intervals {
71
+ return intersectLoop(self.intervals, that.intervals, Nil());
72
+ }
73
+
74
+ /**
75
+ * @tsplus tailRec
76
+ */
77
+ function intersectLoop(left: List<Interval>, right: List<Interval>, acc: List<Interval>): Intervals {
78
+ if (left.isEmpty() || right.isEmpty()) {
79
+ return Intervals(acc.reverse);
80
+ } else {
81
+ const leftHead = left.head;
82
+ const lefts = left.tail;
83
+ const rightHead = right.head;
84
+ const rights = right.tail;
85
+ const interval = leftHead.intersect(rightHead);
86
+ const intervals = interval.isEmpty ? acc : interval + acc;
87
+ if (leftHead < rightHead) return intersectLoop(lefts, right, intervals);
88
+ else return intersectLoop(left, rights, intervals);
89
+ }
90
+ }
91
+
92
+ /**
93
+ * @tsplus getter fncts.Intervals start
94
+ */
95
+ export function start(self: Intervals): number {
96
+ return self.intervals.head.getOrElse(Interval.empty).startMilliseconds;
97
+ }
98
+
99
+ /**
100
+ * @tsplus getter fncts.Intervals end
101
+ */
102
+ export function end(self: Intervals): number {
103
+ return self.intervals.head.getOrElse(Interval.empty).endMilliseconds;
104
+ }
105
+
106
+ /**
107
+ * @tsplus fluent fncts.Intervals lt
108
+ * @tsplus operator fncts.Intervals <
109
+ */
110
+ export function lt(self: Intervals, that: Intervals): boolean {
111
+ return self.start < that.start;
112
+ }
113
+
114
+ /**
115
+ * @tsplus fluent fncts.Intervals max
116
+ */
117
+ export function max(self: Intervals, that: Intervals): Intervals {
118
+ return self < that ? that : self;
119
+ }
120
+
121
+ /**
122
+ * @tsplus getter fncts.Intervals isNonEmpty
123
+ */
124
+ export function isNonEmpty(self: Intervals): boolean {
125
+ return self.intervals.isNonEmpty();
126
+ }
@@ -172,6 +172,6 @@ export function zipWith_<A, B, C>(self: Maybe<A>, fb: Maybe<B>, f: (a: A, b: B)
172
172
  /**
173
173
  * @tsplus fluent fncts.Maybe zip
174
174
  */
175
- export function zip_<A, B>(self: Maybe<A>, that: Maybe<B>): Maybe<readonly [A, B]> {
176
- return self.zipWith(that, (a, b) => [a, b]);
175
+ export function zip_<A, B>(self: Maybe<A>, that: Maybe<B>): Maybe<Zipped.Make<A, B>> {
176
+ return self.zipWith(that, (a, b) => Zipped(a, b));
177
177
  }
@@ -8,7 +8,12 @@ export const enum MaybeTag {
8
8
  export const MaybeTypeId = Symbol.for("fncts.Maybe");
9
9
  export type MaybeTypdId = typeof MaybeTypeId;
10
10
 
11
- export type MaybeF = Maybe<any>;
11
+ export interface MaybeF extends HKT {
12
+ type: Maybe<this["A"]>;
13
+ variance: {
14
+ A: "+";
15
+ };
16
+ }
12
17
 
13
18
  const _justHash = Hashable.string("fncts.Just");
14
19
  const _nothingHash = Hashable.string("fncts.Nothing");
@@ -18,10 +23,8 @@ const _nothingHash = Hashable.string("fncts.Nothing");
18
23
  * @tsplus companion fncts.MaybeOps
19
24
  */
20
25
  export class Maybe<A> {
26
+ declare _A: () => A;
21
27
  readonly _typeId: MaybeTypdId = MaybeTypeId;
22
- readonly [HKT.F]!: MaybeF;
23
- readonly [HKT.A]!: () => A;
24
- readonly [HKT.T]!: Maybe<HKT._A<this>>;
25
28
  }
26
29
 
27
30
  /**
@@ -58,7 +61,7 @@ export class Nothing extends Maybe<never> {
58
61
  /**
59
62
  * @tsplus unify fncts.Maybe
60
63
  */
61
- export function unifyMaybe<X extends Maybe<any>>(self: X): Maybe<[X] extends [Maybe<infer A>] ? A : never> {
64
+ export function unifyMaybe<X extends Maybe<any>>(self: X): Maybe<[X] extends [{ _A: () => infer A }] ? A : never> {
62
65
  return self;
63
66
  }
64
67
 
@@ -17,32 +17,32 @@ import {
17
17
  } from "./api.js";
18
18
  import { just } from "./constructors.js";
19
19
 
20
- export const Functor: P.Functor<MaybeF> = { map: map_ };
20
+ export const Functor = HKT.instance<P.Functor<MaybeF>>({ map: map_ });
21
21
 
22
- export const Apply: P.Apply<MaybeF> = { ...Functor, zip: zip_, zipWith: zipWith_ };
22
+ export const Apply = HKT.instance<P.Apply<MaybeF>>({ ...Functor, zip: zip_, zipWith: zipWith_ });
23
23
 
24
- export const Applicative: P.Applicative<MaybeF> = {
24
+ export const Applicative = HKT.instance<P.Applicative<MaybeF>>({
25
25
  ...Apply,
26
26
  pure: just,
27
- };
27
+ });
28
28
 
29
- export const Monad: P.Monad<MaybeF> = {
29
+ export const Monad = HKT.instance<P.Monad<MaybeF>>({
30
30
  ...Applicative,
31
31
  flatMap: flatMap_,
32
- };
32
+ });
33
33
 
34
- export const Foldable: P.Foldable<MaybeF> = {
34
+ export const Foldable = HKT.instance<P.Foldable<MaybeF>>({
35
35
  foldLeft: foldLeft_,
36
36
  foldRight: foldRight_,
37
- };
37
+ });
38
38
 
39
- export const Filterable: P.Filterable<MaybeF> = {
39
+ export const Filterable = HKT.instance<P.Filterable<MaybeF>>({
40
40
  ...Functor,
41
41
  filter: filter_,
42
42
  filterMap: filterMap_,
43
43
  partition: partition_,
44
44
  partitionMap: partitionMap_,
45
- };
45
+ });
46
46
 
47
47
  /**
48
48
  * @tsplus derive fncts.Guard[fncts.Maybe]<_> 10
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * @tsplus type fncts.Newtype
3
3
  */
4
- export interface Newtype<URI, A> {
4
+ export interface Newtype<URI, A, C = HKT.None> {
5
5
  readonly _URI: URI;
6
- readonly [HKT.A]: A;
6
+ readonly _A: A;
7
+ readonly _C: C;
7
8
  }
8
9
 
9
10
  export declare namespace Newtype {
10
- export type Iso<N extends NewtypeHKT> = NewtypeIso<N>;
11
+ export type Iso<N extends NewtypeHKT, C = N["type"]["_C"]> = NewtypeIso<N, C>;
11
12
  }
12
13
 
13
14
  /**
@@ -18,22 +19,42 @@ export interface NewtypeOps {}
18
19
  export const Newtype: NewtypeOps = {};
19
20
 
20
21
  export interface NewtypeHKT extends HKT {
21
- readonly [HKT.T]: Newtype<any, any>;
22
+ readonly type: Newtype<any, any>;
22
23
  }
23
24
 
24
- export interface NewtypeIso<N extends NewtypeHKT> {
25
+ export interface NewtypeIso<N extends NewtypeHKT, C = N["type"]["_C"]> {
25
26
  /**
26
27
  * @tsplus macro identity
27
28
  */
28
- get: <K, Q, W, X, I, S, R, E, A>(
29
- _: HKT.Kind<N, K, Q, W, X, I, S, R, E, A>[HKT.A],
30
- ) => HKT.Kind<N, K, Q, W, X, I, S, R, E, A>;
29
+ get: <
30
+ K extends HKT.GetExtends<C, "K", any>,
31
+ Q extends HKT.GetExtends<C, "Q", any>,
32
+ W extends HKT.GetExtends<C, "W", any>,
33
+ X extends HKT.GetExtends<C, "X", any>,
34
+ I extends HKT.GetExtends<C, "I", any>,
35
+ S extends HKT.GetExtends<C, "S", any>,
36
+ R extends HKT.GetExtends<C, "E", any>,
37
+ E extends HKT.GetExtends<C, "E", any>,
38
+ A extends HKT.GetExtends<C, "A", any>,
39
+ >(
40
+ _: HKT.Kind<N, N["type"]["_C"], K, Q, W, X, I, S, R, E, A>["_A"],
41
+ ) => HKT.Kind<N, HKT.None, K, Q, W, X, I, S, R, E, A>;
31
42
  /**
32
43
  * @tsplus macro identity
33
44
  */
34
- reverseGet: <K, Q, W, X, I, S, R, E, A>(
35
- _: HKT.Kind<N, K, Q, W, X, I, S, R, E, A>,
36
- ) => HKT.Kind<N, K, Q, W, X, I, S, R, E, A>[HKT.A];
45
+ reverseGet: <
46
+ K extends HKT.GetExtends<C, "K", any>,
47
+ Q extends HKT.GetExtends<C, "Q", any>,
48
+ W extends HKT.GetExtends<C, "W", any>,
49
+ X extends HKT.GetExtends<C, "X", any>,
50
+ I extends HKT.GetExtends<C, "I", any>,
51
+ S extends HKT.GetExtends<C, "S", any>,
52
+ R extends HKT.GetExtends<C, "E", any>,
53
+ E extends HKT.GetExtends<C, "E", any>,
54
+ A extends HKT.GetExtends<C, "A", any>,
55
+ >(
56
+ _: HKT.Kind<N, HKT.None, K, Q, W, X, I, S, R, E, A>,
57
+ ) => HKT.Kind<N, HKT.None, K, Q, W, X, I, S, R, E, A>["_A"];
37
58
  }
38
59
 
39
60
  /**
@@ -1,5 +1,5 @@
1
1
  interface StructN extends HKT {
2
- readonly [HKT.T]: Struct<HKT._A<this>>;
2
+ type: Struct<this["A"]>;
3
3
  }
4
4
 
5
5
  /**
@@ -11,8 +11,8 @@ const _tagHash = Hashable.string("fncts.Tag");
11
11
  * @tsplus type fncts.Tag
12
12
  * @tsplus companion fncts.TagOps
13
13
  */
14
- export class Tag<T> implements Hashable, Equatable {
15
- readonly _T!: (_: never) => T;
14
+ export class Tag<in out T> implements Hashable, Equatable {
15
+ declare _T: (_: T) => T;
16
16
  readonly _typeId: TagTypeId = TagTypeId;
17
17
  private static counter = new AtomicNumber(0);
18
18
  readonly id = Tag.counter.getAndIncrement();