@fncts/base 0.0.28 → 0.0.30

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 (797) hide show
  1. package/_cjs/collection/Iterable/api/traverseConc.cjs.map +1 -1
  2. package/_cjs/collection/Iterable/api.cjs.map +1 -1
  3. package/_cjs/collection/Iterable/constructors.cjs.map +1 -1
  4. package/_cjs/collection/Iterable/definition.cjs.map +1 -1
  5. package/_cjs/collection/Iterable.cjs.map +1 -1
  6. package/_cjs/collection/compat/Array/api.cjs.map +1 -1
  7. package/_cjs/collection/compat/Array/definition.cjs.map +1 -1
  8. package/_cjs/collection/compat/Array.cjs.map +1 -1
  9. package/_cjs/collection/compat/ArrayLike/api.cjs.map +1 -1
  10. package/_cjs/collection/compat/ArrayLike/definition.cjs.map +1 -1
  11. package/_cjs/collection/compat.cjs.map +1 -1
  12. package/_cjs/collection/immutable/Conc/api/empty.cjs.map +1 -1
  13. package/_cjs/collection/immutable/Conc/api/makeBy.cjs.map +1 -1
  14. package/_cjs/collection/immutable/Conc/api/replicate.cjs.map +1 -1
  15. package/_cjs/collection/immutable/Conc/api.cjs.map +1 -1
  16. package/_cjs/collection/immutable/Conc/constructors.cjs.map +1 -1
  17. package/_cjs/collection/immutable/Conc/definition.cjs.map +1 -1
  18. package/_cjs/collection/immutable/Conc.cjs.map +1 -1
  19. package/_cjs/collection/immutable/Dictionary/api.cjs.map +1 -1
  20. package/_cjs/collection/immutable/Dictionary/definition.cjs.map +1 -1
  21. package/_cjs/collection/immutable/Dictionary.cjs.map +1 -1
  22. package/_cjs/collection/immutable/HashMap/api.cjs.map +1 -1
  23. package/_cjs/collection/immutable/HashMap/definition.cjs.map +1 -1
  24. package/_cjs/collection/immutable/HashMap/internal.cjs.map +1 -1
  25. package/_cjs/collection/immutable/HashMap.cjs.map +1 -1
  26. package/_cjs/collection/immutable/HashSet/api.cjs +18 -7
  27. package/_cjs/collection/immutable/HashSet/api.cjs.map +1 -1
  28. package/_cjs/collection/immutable/HashSet/definition.cjs +2 -2
  29. package/_cjs/collection/immutable/HashSet/definition.cjs.map +1 -1
  30. package/_cjs/collection/immutable/HashSet.cjs.map +1 -1
  31. package/_cjs/collection/immutable/ImmutableArray/api/chunksOf.cjs.map +1 -1
  32. package/_cjs/collection/immutable/ImmutableArray/api/slice.cjs.map +1 -1
  33. package/_cjs/collection/immutable/ImmutableArray/api/splitAt.cjs.map +1 -1
  34. package/_cjs/collection/immutable/ImmutableArray/api/splitWhere.cjs.map +1 -1
  35. package/_cjs/collection/immutable/ImmutableArray/api.cjs.map +1 -1
  36. package/_cjs/collection/immutable/ImmutableArray/constructors.cjs.map +1 -1
  37. package/_cjs/collection/immutable/ImmutableArray/definition.cjs.map +1 -1
  38. package/_cjs/collection/immutable/ImmutableArray/instances.cjs.map +1 -1
  39. package/_cjs/collection/immutable/ImmutableArray.cjs.map +1 -1
  40. package/_cjs/collection/immutable/ImmutableNonEmptyArray/api.cjs.map +1 -1
  41. package/_cjs/collection/immutable/ImmutableNonEmptyArray/constructors.cjs.map +1 -1
  42. package/_cjs/collection/immutable/ImmutableNonEmptyArray/definition.cjs.map +1 -1
  43. package/_cjs/collection/immutable/ImmutableNonEmptyArray/destructors.cjs.map +1 -1
  44. package/_cjs/collection/immutable/ImmutableNonEmptyArray/instances.cjs.map +1 -1
  45. package/_cjs/collection/immutable/ImmutableNonEmptyArray.cjs.map +1 -1
  46. package/_cjs/collection/immutable/List/api/foldLeft.cjs.map +1 -1
  47. package/_cjs/collection/immutable/List/api/unsafeTail.cjs.map +1 -1
  48. package/_cjs/collection/immutable/List/api.cjs.map +1 -1
  49. package/_cjs/collection/immutable/List/constructors.cjs.map +1 -1
  50. package/_cjs/collection/immutable/List/definition.cjs.map +1 -1
  51. package/_cjs/collection/immutable/List.cjs.map +1 -1
  52. package/_cjs/collection/immutable/Queue/api.cjs.map +1 -1
  53. package/_cjs/collection/immutable/Queue/constructors.cjs.map +1 -1
  54. package/_cjs/collection/immutable/Queue/definition.cjs.map +1 -1
  55. package/_cjs/collection/immutable/Queue/guards.cjs.map +1 -1
  56. package/_cjs/collection/immutable/Queue.cjs.map +1 -1
  57. package/_cjs/collection/immutable/RoseTree/api.cjs.map +1 -1
  58. package/_cjs/collection/immutable/RoseTree/definition.cjs.map +1 -1
  59. package/_cjs/collection/immutable/RoseTree.cjs.map +1 -1
  60. package/_cjs/collection/immutable/SortedMap/api.cjs.map +1 -1
  61. package/_cjs/collection/immutable/SortedMap/definition.cjs.map +1 -1
  62. package/_cjs/collection/immutable/SortedMap/internal.cjs.map +1 -1
  63. package/_cjs/collection/immutable/SortedMap/iterator.cjs.map +1 -1
  64. package/_cjs/collection/immutable/SortedMap/node.cjs.map +1 -1
  65. package/_cjs/collection/immutable/SortedMap.cjs.map +1 -1
  66. package/_cjs/collection/immutable/Vector/api.cjs.map +1 -1
  67. package/_cjs/collection/immutable/Vector/definition.cjs.map +1 -1
  68. package/_cjs/collection/immutable/Vector/internal.cjs.map +1 -1
  69. package/_cjs/collection/immutable/Vector.cjs.map +1 -1
  70. package/_cjs/collection/immutable.cjs.map +1 -1
  71. package/_cjs/collection/mutable/HashMap.cjs +15 -0
  72. package/_cjs/collection/mutable/HashMap.cjs.map +1 -1
  73. package/_cjs/collection/mutable/HashSet.cjs.map +1 -1
  74. package/_cjs/collection/mutable/ListBuffer.cjs.map +1 -1
  75. package/_cjs/collection/mutable/internal.cjs.map +1 -1
  76. package/_cjs/collection/mutable.cjs.map +1 -1
  77. package/_cjs/collection/weak/IterableWeakMap.cjs.map +1 -1
  78. package/_cjs/collection/weak/IterableWeakSet.cjs.map +1 -1
  79. package/_cjs/collection/weak.cjs.map +1 -1
  80. package/_cjs/collection.cjs.map +1 -1
  81. package/_cjs/control/CompletablePromise.cjs.map +1 -1
  82. package/_cjs/control/Eval/api/sequenceArray.cjs.map +1 -1
  83. package/_cjs/control/Eval/api.cjs +4 -1
  84. package/_cjs/control/Eval/api.cjs.map +1 -1
  85. package/_cjs/control/Eval/constructors.cjs +9 -2
  86. package/_cjs/control/Eval/constructors.cjs.map +1 -1
  87. package/_cjs/control/Eval/definition.cjs +10 -28
  88. package/_cjs/control/Eval/definition.cjs.map +1 -1
  89. package/_cjs/control/Eval/instance.cjs.map +1 -1
  90. package/_cjs/control/Eval/run.cjs +7 -7
  91. package/_cjs/control/Eval/run.cjs.map +1 -1
  92. package/_cjs/control/Eval.cjs.map +1 -1
  93. package/_cjs/control/LazyValue.cjs.map +1 -1
  94. package/_cjs/control/{Z → Pure}/api.cjs +146 -115
  95. package/_cjs/control/Pure/api.cjs.map +1 -0
  96. package/_cjs/control/Pure/definition.cjs +78 -0
  97. package/_cjs/control/Pure/definition.cjs.map +1 -0
  98. package/_cjs/control/{Z → Pure}/instances.cjs +1 -1
  99. package/_cjs/control/Pure/instances.cjs.map +1 -0
  100. package/_cjs/control/{Z → Pure}/runtime.cjs +67 -66
  101. package/_cjs/control/Pure/runtime.cjs.map +1 -0
  102. package/_cjs/control/{Z.cjs → Pure.cjs} +5 -5
  103. package/_cjs/control/Pure.cjs.map +1 -0
  104. package/_cjs/control.cjs.map +1 -1
  105. package/_cjs/data/Branded/definition.cjs.map +1 -1
  106. package/_cjs/data/Branded.cjs.map +1 -1
  107. package/_cjs/data/Byte.cjs.map +1 -1
  108. package/_cjs/data/CaseClass.cjs.map +1 -1
  109. package/_cjs/data/Cause/api/fold.cjs +2 -2
  110. package/_cjs/data/Cause/api/fold.cjs.map +1 -1
  111. package/_cjs/data/Cause/api/isEmpty.cjs +2 -2
  112. package/_cjs/data/Cause/api/isEmpty.cjs.map +1 -1
  113. package/_cjs/data/Cause/api/linearize.cjs +1 -1
  114. package/_cjs/data/Cause/api/linearize.cjs.map +1 -1
  115. package/_cjs/data/Cause/api/prettyPrint.cjs.map +1 -1
  116. package/_cjs/data/Cause/api/unified.cjs +2 -2
  117. package/_cjs/data/Cause/api/unified.cjs.map +1 -1
  118. package/_cjs/data/Cause/api.cjs +116 -116
  119. package/_cjs/data/Cause/api.cjs.map +1 -1
  120. package/_cjs/data/Cause/definition.cjs +32 -32
  121. package/_cjs/data/Cause/definition.cjs.map +1 -1
  122. package/_cjs/data/Cause.cjs.map +1 -1
  123. package/_cjs/data/Const/api.cjs.map +1 -1
  124. package/_cjs/data/Const/definition.cjs.map +1 -1
  125. package/_cjs/data/Const/instances.cjs.map +1 -1
  126. package/_cjs/data/Const.cjs.map +1 -1
  127. package/_cjs/data/Datum/api.cjs.map +1 -1
  128. package/_cjs/data/Datum/definition.cjs.map +1 -1
  129. package/_cjs/data/Datum/instances.cjs.map +1 -1
  130. package/_cjs/data/DatumEither/api.cjs.map +1 -1
  131. package/_cjs/data/DatumEither/definition.cjs.map +1 -1
  132. package/_cjs/data/DatumEither.cjs.map +1 -1
  133. package/_cjs/data/DecodeError/definition.cjs.map +1 -1
  134. package/_cjs/data/DecodeError/instances.cjs.map +1 -1
  135. package/_cjs/data/DecodeError.cjs.map +1 -1
  136. package/_cjs/data/Decoder/api.cjs +1 -1
  137. package/_cjs/data/Decoder/api.cjs.map +1 -1
  138. package/_cjs/data/Decoder/definition.cjs.map +1 -1
  139. package/_cjs/data/Decoder.cjs.map +1 -1
  140. package/_cjs/data/Duration/api.cjs +10 -0
  141. package/_cjs/data/Duration/api.cjs.map +1 -1
  142. package/_cjs/data/Duration/definition.cjs.map +1 -1
  143. package/_cjs/data/Duration.cjs.map +1 -1
  144. package/_cjs/data/Either/api/align.cjs.map +1 -1
  145. package/_cjs/data/Either/api/alignWith.cjs.map +1 -1
  146. package/_cjs/data/Either/api.cjs.map +1 -1
  147. package/_cjs/data/Either/constructors.cjs.map +1 -1
  148. package/_cjs/data/Either/definition.cjs.map +1 -1
  149. package/_cjs/data/Either/destructors.cjs.map +1 -1
  150. package/_cjs/data/Either/instances.cjs.map +1 -1
  151. package/_cjs/data/Either.cjs.map +1 -1
  152. package/_cjs/data/EitherT/api.cjs.map +1 -1
  153. package/_cjs/data/EitherT/definition.cjs.map +1 -1
  154. package/_cjs/data/Encoder/api.cjs +1 -1
  155. package/_cjs/data/Encoder/api.cjs.map +1 -1
  156. package/_cjs/data/Encoder/definition.cjs.map +1 -1
  157. package/_cjs/data/Encoder.cjs.map +1 -1
  158. package/_cjs/data/Environment/api.cjs.map +1 -1
  159. package/_cjs/data/Environment/definition.cjs.map +1 -1
  160. package/_cjs/data/Environment.cjs.map +1 -1
  161. package/_cjs/data/EnvironmentPatch.cjs.map +1 -1
  162. package/_cjs/data/Eq/api.cjs.map +1 -1
  163. package/_cjs/data/Eq/definition.cjs.map +1 -1
  164. package/_cjs/data/Eq/derivations.cjs.map +1 -1
  165. package/_cjs/data/Eq.cjs.map +1 -1
  166. package/_cjs/data/Equatable/api.cjs.map +1 -1
  167. package/_cjs/data/Equatable/definition.cjs.map +1 -1
  168. package/_cjs/data/Equatable/fast-equals.cjs.map +1 -1
  169. package/_cjs/data/Equatable.cjs.map +1 -1
  170. package/_cjs/data/ExecutionStrategy.cjs.map +1 -1
  171. package/_cjs/data/Exit/api.cjs +13 -13
  172. package/_cjs/data/Exit/api.cjs.map +1 -1
  173. package/_cjs/data/Exit/constructors.cjs.map +1 -1
  174. package/_cjs/data/Exit/definition.cjs.map +1 -1
  175. package/_cjs/data/Exit.cjs.map +1 -1
  176. package/_cjs/data/FiberId/api.cjs.map +1 -1
  177. package/_cjs/data/FiberId/constructors.cjs.map +1 -1
  178. package/_cjs/data/FiberId/definition.cjs.map +1 -1
  179. package/_cjs/data/FiberId.cjs.map +1 -1
  180. package/_cjs/data/Guard/api.cjs +1 -1
  181. package/_cjs/data/Guard/api.cjs.map +1 -1
  182. package/_cjs/data/Guard/definition.cjs.map +1 -1
  183. package/_cjs/data/Guard.cjs.map +1 -1
  184. package/_cjs/data/Hash.cjs.map +1 -1
  185. package/_cjs/data/HashEq.cjs.map +1 -1
  186. package/_cjs/data/Hashable/definition.cjs.map +1 -1
  187. package/_cjs/data/Hashable/hash.cjs.map +1 -1
  188. package/_cjs/data/Hashable.cjs.map +1 -1
  189. package/_cjs/data/Identity/api.cjs.map +1 -1
  190. package/_cjs/data/Identity/definition.cjs.map +1 -1
  191. package/_cjs/data/Identity/instances.cjs.map +1 -1
  192. package/_cjs/data/Identity.cjs.map +1 -1
  193. package/_cjs/data/Interval.cjs.map +1 -1
  194. package/_cjs/data/Intervals.cjs.map +1 -1
  195. package/_cjs/data/Maybe/api.cjs.map +1 -1
  196. package/_cjs/data/Maybe/constructors.cjs.map +1 -1
  197. package/_cjs/data/Maybe/definition.cjs.map +1 -1
  198. package/_cjs/data/Maybe/destructors.cjs.map +1 -1
  199. package/_cjs/data/Maybe/instances.cjs.map +1 -1
  200. package/_cjs/data/Maybe.cjs.map +1 -1
  201. package/_cjs/data/Newtype.cjs.map +1 -1
  202. package/_cjs/data/Ord/api/contramap.cjs.map +1 -1
  203. package/_cjs/data/Ord/api/max.cjs.map +1 -1
  204. package/_cjs/data/Ord/api/min.cjs.map +1 -1
  205. package/_cjs/data/Ord/api.cjs.map +1 -1
  206. package/_cjs/data/Ord/definition.cjs.map +1 -1
  207. package/_cjs/data/Ord/instances.cjs.map +1 -1
  208. package/_cjs/data/Ord.cjs.map +1 -1
  209. package/_cjs/data/Ordering.cjs.map +1 -1
  210. package/_cjs/data/Predicate/api.cjs.map +1 -1
  211. package/_cjs/data/Predicate/definition.cjs.map +1 -1
  212. package/_cjs/data/Predicate.cjs.map +1 -1
  213. package/_cjs/data/Refinement/api.cjs.map +1 -1
  214. package/_cjs/data/Refinement/definition.cjs.map +1 -1
  215. package/_cjs/data/Refinement.cjs.map +1 -1
  216. package/_cjs/data/Showable/definition.cjs.map +1 -1
  217. package/_cjs/data/Showable/show.cjs +31 -31
  218. package/_cjs/data/Showable/show.cjs.map +1 -1
  219. package/_cjs/data/Showable/styles.cjs.map +1 -1
  220. package/_cjs/data/Showable/util.cjs.map +1 -1
  221. package/_cjs/data/Showable.cjs.map +1 -1
  222. package/_cjs/data/Struct/api.cjs.map +1 -1
  223. package/_cjs/data/Struct/definition.cjs.map +1 -1
  224. package/_cjs/data/Struct.cjs.map +1 -1
  225. package/_cjs/data/Tag/constructors.cjs.map +1 -1
  226. package/_cjs/data/Tag/definition.cjs.map +1 -1
  227. package/_cjs/data/Tag.cjs.map +1 -1
  228. package/_cjs/data/These/api.cjs.map +1 -1
  229. package/_cjs/data/These/constructors.cjs.map +1 -1
  230. package/_cjs/data/These/definition.cjs.map +1 -1
  231. package/_cjs/data/These/destructors.cjs.map +1 -1
  232. package/_cjs/data/These/instances.cjs.map +1 -1
  233. package/_cjs/data/These.cjs.map +1 -1
  234. package/_cjs/data/Trace/api.cjs.map +1 -1
  235. package/_cjs/data/Trace/constructors.cjs.map +1 -1
  236. package/_cjs/data/Trace/definition.cjs.map +1 -1
  237. package/_cjs/data/Trace.cjs.map +1 -1
  238. package/_cjs/data/TraceElement/definition.cjs.map +1 -1
  239. package/_cjs/data/TraceElement.cjs.map +1 -1
  240. package/_cjs/data/Zipped.cjs.map +1 -1
  241. package/_cjs/data/bigint/definition.cjs.map +1 -1
  242. package/_cjs/data/bigint/instances.cjs.map +1 -1
  243. package/_cjs/data/bigint.cjs.map +1 -1
  244. package/_cjs/data/boolean/definition.cjs.map +1 -1
  245. package/_cjs/data/boolean/instances.cjs.map +1 -1
  246. package/_cjs/data/boolean.cjs.map +1 -1
  247. package/_cjs/data/exceptions/ArrayIndexOutOfBoundsError.cjs.map +1 -1
  248. package/_cjs/data/exceptions/IOError.cjs.map +1 -1
  249. package/_cjs/data/exceptions/IllegalArgumentError.cjs.map +1 -1
  250. package/_cjs/data/exceptions/IllegalStateError.cjs.map +1 -1
  251. package/_cjs/data/exceptions/IndexOutOfBoundsError.cjs.map +1 -1
  252. package/_cjs/data/exceptions/InterruptedException.cjs.map +1 -1
  253. package/_cjs/data/exceptions/InvalidCapacityError.cjs.map +1 -1
  254. package/_cjs/data/exceptions/NoSuchElementError.cjs.map +1 -1
  255. package/_cjs/data/exceptions/RuntimeError.cjs.map +1 -1
  256. package/_cjs/data/exceptions.cjs.map +1 -1
  257. package/_cjs/data/function/api.cjs.map +1 -1
  258. package/_cjs/data/function/definition.cjs.map +1 -1
  259. package/_cjs/data/function/pipe.cjs.map +1 -1
  260. package/_cjs/data/function.cjs.map +1 -1
  261. package/_cjs/data/number/api.cjs.map +1 -1
  262. package/_cjs/data/number/definition.cjs.map +1 -1
  263. package/_cjs/data/number/instances.cjs.map +1 -1
  264. package/_cjs/data/number.cjs.map +1 -1
  265. package/_cjs/data/object/definition.cjs.map +1 -1
  266. package/_cjs/data/object/instances.cjs.map +1 -1
  267. package/_cjs/data/object.cjs.map +1 -1
  268. package/_cjs/data/string/api.cjs.map +1 -1
  269. package/_cjs/data/string/definition.cjs.map +1 -1
  270. package/_cjs/data/string/instances.cjs.map +1 -1
  271. package/_cjs/data/string.cjs.map +1 -1
  272. package/_cjs/data.cjs.map +1 -1
  273. package/_cjs/global/api.cjs.map +1 -1
  274. package/_cjs/global.cjs.map +1 -1
  275. package/_cjs/index.cjs.map +1 -1
  276. package/_cjs/internal/AtomicBoolean.cjs.map +1 -1
  277. package/_cjs/internal/AtomicNumber.cjs.map +1 -1
  278. package/_cjs/internal/AtomicReference.cjs.map +1 -1
  279. package/_cjs/internal/Stack.cjs.map +1 -1
  280. package/_cjs/json/EitherJson.cjs.map +1 -1
  281. package/_cjs/json/MaybeJson.cjs.map +1 -1
  282. package/_cjs/json/TheseJson.cjs.map +1 -1
  283. package/_cjs/json.cjs.map +1 -1
  284. package/_cjs/optics/At/api.cjs.map +1 -1
  285. package/_cjs/optics/At/definition.cjs.map +1 -1
  286. package/_cjs/optics/At.cjs.map +1 -1
  287. package/_cjs/optics/Fold/definition.cjs.map +1 -1
  288. package/_cjs/optics/Fold.cjs.map +1 -1
  289. package/_cjs/optics/Getter/definition.cjs.map +1 -1
  290. package/_cjs/optics/Getter.cjs.map +1 -1
  291. package/_cjs/optics/Index/api.cjs.map +1 -1
  292. package/_cjs/optics/Index/definition.cjs.map +1 -1
  293. package/_cjs/optics/Index.cjs.map +1 -1
  294. package/_cjs/optics/Iso/api.cjs.map +1 -1
  295. package/_cjs/optics/Iso/definition.cjs.map +1 -1
  296. package/_cjs/optics/Iso.cjs.map +1 -1
  297. package/_cjs/optics/Lens/api.cjs.map +1 -1
  298. package/_cjs/optics/Lens/definition.cjs.map +1 -1
  299. package/_cjs/optics/Lens.cjs.map +1 -1
  300. package/_cjs/optics/Optional/api/compose.cjs.map +1 -1
  301. package/_cjs/optics/Optional/definition.cjs.map +1 -1
  302. package/_cjs/optics/Optional.cjs.map +1 -1
  303. package/_cjs/optics/Prism/api/compose.cjs.map +1 -1
  304. package/_cjs/optics/Prism/api/fromNullable.cjs.map +1 -1
  305. package/_cjs/optics/Prism/api/just.cjs.map +1 -1
  306. package/_cjs/optics/Prism/definition.cjs.map +1 -1
  307. package/_cjs/optics/Prism.cjs.map +1 -1
  308. package/_cjs/optics/Setter/definition.cjs.map +1 -1
  309. package/_cjs/optics/Setter.cjs.map +1 -1
  310. package/_cjs/optics/Traversal/api/compose.cjs.map +1 -1
  311. package/_cjs/optics/Traversal/api/fromTraversable.cjs.map +1 -1
  312. package/_cjs/optics/Traversal/definition.cjs.map +1 -1
  313. package/_cjs/optics/Traversal.cjs.map +1 -1
  314. package/_cjs/optics.cjs.map +1 -1
  315. package/_cjs/typeclass/Align.cjs.map +1 -1
  316. package/_cjs/typeclass/Alt.cjs.map +1 -1
  317. package/_cjs/typeclass/Alternative.cjs.map +1 -1
  318. package/_cjs/typeclass/Applicative.cjs.map +1 -1
  319. package/_cjs/typeclass/ApplicativeExcept.cjs.map +1 -1
  320. package/_cjs/typeclass/Apply.cjs.map +1 -1
  321. package/_cjs/typeclass/Chain.cjs.map +1 -1
  322. package/_cjs/typeclass/Closure.cjs.map +1 -1
  323. package/_cjs/typeclass/Fail.cjs.map +1 -1
  324. package/_cjs/typeclass/Filterable.cjs.map +1 -1
  325. package/_cjs/typeclass/FilterableWithIndex.cjs.map +1 -1
  326. package/_cjs/typeclass/Foldable.cjs.map +1 -1
  327. package/_cjs/typeclass/FoldableWithIndex.cjs.map +1 -1
  328. package/_cjs/typeclass/Functor.cjs.map +1 -1
  329. package/_cjs/typeclass/FunctorWithIndex.cjs.map +1 -1
  330. package/_cjs/typeclass/Has.cjs.map +1 -1
  331. package/_cjs/typeclass/Monad.cjs.map +1 -1
  332. package/_cjs/typeclass/MonadExcept.cjs.map +1 -1
  333. package/_cjs/typeclass/Monoid.cjs.map +1 -1
  334. package/_cjs/typeclass/Nil.cjs.map +1 -1
  335. package/_cjs/typeclass/Pointed.cjs.map +1 -1
  336. package/_cjs/typeclass/Semialign.cjs.map +1 -1
  337. package/_cjs/typeclass/Semigroup/api.cjs.map +1 -1
  338. package/_cjs/typeclass/Semigroup/definition.cjs.map +1 -1
  339. package/_cjs/typeclass/Semigroup/derivations.cjs.map +1 -1
  340. package/_cjs/typeclass/Semigroup.cjs.map +1 -1
  341. package/_cjs/typeclass/Semimonoidal.cjs.map +1 -1
  342. package/_cjs/typeclass/Traversable.cjs.map +1 -1
  343. package/_cjs/typeclass/TraversableWithIndex.cjs.map +1 -1
  344. package/_cjs/typeclass/Witherable.cjs.map +1 -1
  345. package/_cjs/typeclass/WitherableWithIndex.cjs.map +1 -1
  346. package/_cjs/typeclass/builtin/Symbol.cjs.map +1 -1
  347. package/_cjs/typeclass/builtin.cjs.map +1 -1
  348. package/_cjs/typeclass.cjs.map +1 -1
  349. package/_cjs/types/extractions.cjs.map +1 -1
  350. package/_cjs/types/utility.cjs.map +1 -1
  351. package/_cjs/types.cjs.map +1 -1
  352. package/_cjs/util/AnsiFormat.cjs.map +1 -1
  353. package/_cjs/util/PCGRandom.cjs.map +1 -1
  354. package/_cjs/util/assert.cjs.map +1 -1
  355. package/_cjs/util/pattern.cjs.map +1 -1
  356. package/_cjs/util/predicates.cjs.map +1 -1
  357. package/_cjs/util/rand/Random.cjs.map +1 -1
  358. package/_cjs/util/rand/distribution/Distribution.cjs.map +1 -1
  359. package/_cjs/util/rand/distribution/UniformArrayIntDistribution.cjs.map +1 -1
  360. package/_cjs/util/rand/distribution/UniformBigIntDistribution.cjs.map +1 -1
  361. package/_cjs/util/rand/distribution/UniformIntDistribution.cjs.map +1 -1
  362. package/_cjs/util/rand/distribution/internals/ArrayInt.cjs.map +1 -1
  363. package/_cjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.cjs.map +1 -1
  364. package/_cjs/util/rand/distribution/internals/UniformIntDistributionInternal.cjs.map +1 -1
  365. package/_cjs/util/rand/generator/MersenneTwister.cjs.map +1 -1
  366. package/_cjs/util/rand/generator/RandomGenerator.cjs.map +1 -1
  367. package/_cjs/util/rand.cjs.map +1 -1
  368. package/_cjs/util.cjs.map +1 -1
  369. package/_mjs/collection/Iterable/api/traverseConc.mjs.map +1 -1
  370. package/_mjs/collection/Iterable/api.mjs.map +1 -1
  371. package/_mjs/collection/Iterable/constructors.mjs.map +1 -1
  372. package/_mjs/collection/Iterable/definition.mjs.map +1 -1
  373. package/_mjs/collection/Iterable.mjs.map +1 -1
  374. package/_mjs/collection/compat/Array/api.mjs.map +1 -1
  375. package/_mjs/collection/compat/Array/definition.mjs.map +1 -1
  376. package/_mjs/collection/compat/Array.mjs.map +1 -1
  377. package/_mjs/collection/compat/ArrayLike/api.mjs.map +1 -1
  378. package/_mjs/collection/compat/ArrayLike/definition.mjs.map +1 -1
  379. package/_mjs/collection/compat.mjs.map +1 -1
  380. package/_mjs/collection/immutable/Conc/api/empty.mjs.map +1 -1
  381. package/_mjs/collection/immutable/Conc/api/makeBy.mjs.map +1 -1
  382. package/_mjs/collection/immutable/Conc/api/replicate.mjs.map +1 -1
  383. package/_mjs/collection/immutable/Conc/api.mjs.map +1 -1
  384. package/_mjs/collection/immutable/Conc/constructors.mjs.map +1 -1
  385. package/_mjs/collection/immutable/Conc/definition.mjs.map +1 -1
  386. package/_mjs/collection/immutable/Conc.mjs.map +1 -1
  387. package/_mjs/collection/immutable/Dictionary/api.mjs.map +1 -1
  388. package/_mjs/collection/immutable/Dictionary/definition.mjs.map +1 -1
  389. package/_mjs/collection/immutable/Dictionary.mjs.map +1 -1
  390. package/_mjs/collection/immutable/HashMap/api.mjs.map +1 -1
  391. package/_mjs/collection/immutable/HashMap/definition.mjs.map +1 -1
  392. package/_mjs/collection/immutable/HashMap/internal.mjs.map +1 -1
  393. package/_mjs/collection/immutable/HashMap.mjs.map +1 -1
  394. package/_mjs/collection/immutable/HashSet/api.mjs +17 -7
  395. package/_mjs/collection/immutable/HashSet/api.mjs.map +1 -1
  396. package/_mjs/collection/immutable/HashSet/definition.mjs +2 -2
  397. package/_mjs/collection/immutable/HashSet/definition.mjs.map +1 -1
  398. package/_mjs/collection/immutable/HashSet.mjs.map +1 -1
  399. package/_mjs/collection/immutable/ImmutableArray/api/chunksOf.mjs.map +1 -1
  400. package/_mjs/collection/immutable/ImmutableArray/api/slice.mjs.map +1 -1
  401. package/_mjs/collection/immutable/ImmutableArray/api/splitAt.mjs.map +1 -1
  402. package/_mjs/collection/immutable/ImmutableArray/api/splitWhere.mjs.map +1 -1
  403. package/_mjs/collection/immutable/ImmutableArray/api.mjs.map +1 -1
  404. package/_mjs/collection/immutable/ImmutableArray/constructors.mjs.map +1 -1
  405. package/_mjs/collection/immutable/ImmutableArray/definition.mjs.map +1 -1
  406. package/_mjs/collection/immutable/ImmutableArray/instances.mjs.map +1 -1
  407. package/_mjs/collection/immutable/ImmutableArray.mjs.map +1 -1
  408. package/_mjs/collection/immutable/ImmutableNonEmptyArray/api.mjs.map +1 -1
  409. package/_mjs/collection/immutable/ImmutableNonEmptyArray/constructors.mjs.map +1 -1
  410. package/_mjs/collection/immutable/ImmutableNonEmptyArray/definition.mjs.map +1 -1
  411. package/_mjs/collection/immutable/ImmutableNonEmptyArray/destructors.mjs.map +1 -1
  412. package/_mjs/collection/immutable/ImmutableNonEmptyArray/instances.mjs.map +1 -1
  413. package/_mjs/collection/immutable/ImmutableNonEmptyArray.mjs.map +1 -1
  414. package/_mjs/collection/immutable/List/api/foldLeft.mjs.map +1 -1
  415. package/_mjs/collection/immutable/List/api/unsafeTail.mjs.map +1 -1
  416. package/_mjs/collection/immutable/List/api.mjs.map +1 -1
  417. package/_mjs/collection/immutable/List/constructors.mjs.map +1 -1
  418. package/_mjs/collection/immutable/List/definition.mjs.map +1 -1
  419. package/_mjs/collection/immutable/List.mjs.map +1 -1
  420. package/_mjs/collection/immutable/Queue/api.mjs.map +1 -1
  421. package/_mjs/collection/immutable/Queue/constructors.mjs.map +1 -1
  422. package/_mjs/collection/immutable/Queue/definition.mjs.map +1 -1
  423. package/_mjs/collection/immutable/Queue/guards.mjs.map +1 -1
  424. package/_mjs/collection/immutable/Queue.mjs.map +1 -1
  425. package/_mjs/collection/immutable/RoseTree/api.mjs.map +1 -1
  426. package/_mjs/collection/immutable/RoseTree/definition.mjs.map +1 -1
  427. package/_mjs/collection/immutable/RoseTree.mjs.map +1 -1
  428. package/_mjs/collection/immutable/SortedMap/api.mjs.map +1 -1
  429. package/_mjs/collection/immutable/SortedMap/definition.mjs.map +1 -1
  430. package/_mjs/collection/immutable/SortedMap/internal.mjs.map +1 -1
  431. package/_mjs/collection/immutable/SortedMap/iterator.mjs.map +1 -1
  432. package/_mjs/collection/immutable/SortedMap/node.mjs.map +1 -1
  433. package/_mjs/collection/immutable/SortedMap.mjs.map +1 -1
  434. package/_mjs/collection/immutable/Vector/api.mjs.map +1 -1
  435. package/_mjs/collection/immutable/Vector/definition.mjs.map +1 -1
  436. package/_mjs/collection/immutable/Vector/internal.mjs.map +1 -1
  437. package/_mjs/collection/immutable/Vector.mjs.map +1 -1
  438. package/_mjs/collection/immutable.mjs.map +1 -1
  439. package/_mjs/collection/mutable/HashMap.mjs.map +1 -1
  440. package/_mjs/collection/mutable/HashSet.mjs.map +1 -1
  441. package/_mjs/collection/mutable/ListBuffer.mjs.map +1 -1
  442. package/_mjs/collection/mutable/internal.mjs.map +1 -1
  443. package/_mjs/collection/mutable.mjs.map +1 -1
  444. package/_mjs/collection/weak/IterableWeakMap.mjs.map +1 -1
  445. package/_mjs/collection/weak/IterableWeakSet.mjs.map +1 -1
  446. package/_mjs/collection/weak.mjs.map +1 -1
  447. package/_mjs/collection.mjs.map +1 -1
  448. package/_mjs/control/CompletablePromise.mjs.map +1 -1
  449. package/_mjs/control/Eval/api/sequenceArray.mjs.map +1 -1
  450. package/_mjs/control/Eval/api.mjs +5 -2
  451. package/_mjs/control/Eval/api.mjs.map +1 -1
  452. package/_mjs/control/Eval/constructors.mjs +10 -3
  453. package/_mjs/control/Eval/constructors.mjs.map +1 -1
  454. package/_mjs/control/Eval/definition.mjs +7 -25
  455. package/_mjs/control/Eval/definition.mjs.map +1 -1
  456. package/_mjs/control/Eval/instance.mjs.map +1 -1
  457. package/_mjs/control/Eval/run.mjs +7 -7
  458. package/_mjs/control/Eval/run.mjs.map +1 -1
  459. package/_mjs/control/Eval.mjs.map +1 -1
  460. package/_mjs/control/LazyValue.mjs.map +1 -1
  461. package/_mjs/control/{Z → Pure}/api.mjs +134 -104
  462. package/_mjs/control/Pure/api.mjs.map +1 -0
  463. package/_mjs/control/Pure/definition.mjs +60 -0
  464. package/_mjs/control/Pure/definition.mjs.map +1 -0
  465. package/_mjs/control/{Z → Pure}/instances.mjs +1 -1
  466. package/_mjs/control/Pure/instances.mjs.map +1 -0
  467. package/_mjs/control/{Z → Pure}/runtime.mjs +68 -67
  468. package/_mjs/control/Pure/runtime.mjs.map +1 -0
  469. package/_mjs/control/Pure.mjs +6 -0
  470. package/_mjs/control/Pure.mjs.map +1 -0
  471. package/_mjs/control.mjs.map +1 -1
  472. package/_mjs/data/Branded/definition.mjs.map +1 -1
  473. package/_mjs/data/Branded.mjs.map +1 -1
  474. package/_mjs/data/Byte.mjs.map +1 -1
  475. package/_mjs/data/CaseClass.mjs.map +1 -1
  476. package/_mjs/data/Cause/api/fold.mjs +2 -2
  477. package/_mjs/data/Cause/api/fold.mjs.map +1 -1
  478. package/_mjs/data/Cause/api/isEmpty.mjs +2 -2
  479. package/_mjs/data/Cause/api/isEmpty.mjs.map +1 -1
  480. package/_mjs/data/Cause/api/linearize.mjs +2 -2
  481. package/_mjs/data/Cause/api/linearize.mjs.map +1 -1
  482. package/_mjs/data/Cause/api/prettyPrint.mjs.map +1 -1
  483. package/_mjs/data/Cause/api/unified.mjs +2 -2
  484. package/_mjs/data/Cause/api/unified.mjs.map +1 -1
  485. package/_mjs/data/Cause/api.mjs +112 -112
  486. package/_mjs/data/Cause/api.mjs.map +1 -1
  487. package/_mjs/data/Cause/definition.mjs +29 -29
  488. package/_mjs/data/Cause/definition.mjs.map +1 -1
  489. package/_mjs/data/Cause.mjs.map +1 -1
  490. package/_mjs/data/Const/api.mjs.map +1 -1
  491. package/_mjs/data/Const/definition.mjs.map +1 -1
  492. package/_mjs/data/Const/instances.mjs.map +1 -1
  493. package/_mjs/data/Const.mjs.map +1 -1
  494. package/_mjs/data/Datum/api.mjs.map +1 -1
  495. package/_mjs/data/Datum/definition.mjs.map +1 -1
  496. package/_mjs/data/Datum/instances.mjs.map +1 -1
  497. package/_mjs/data/DatumEither/api.mjs.map +1 -1
  498. package/_mjs/data/DatumEither/definition.mjs.map +1 -1
  499. package/_mjs/data/DatumEither.mjs.map +1 -1
  500. package/_mjs/data/DecodeError/definition.mjs.map +1 -1
  501. package/_mjs/data/DecodeError/instances.mjs.map +1 -1
  502. package/_mjs/data/DecodeError.mjs.map +1 -1
  503. package/_mjs/data/Decoder/api.mjs +1 -1
  504. package/_mjs/data/Decoder/api.mjs.map +1 -1
  505. package/_mjs/data/Decoder/definition.mjs.map +1 -1
  506. package/_mjs/data/Decoder.mjs.map +1 -1
  507. package/_mjs/data/Duration/api.mjs +9 -0
  508. package/_mjs/data/Duration/api.mjs.map +1 -1
  509. package/_mjs/data/Duration/definition.mjs.map +1 -1
  510. package/_mjs/data/Duration.mjs.map +1 -1
  511. package/_mjs/data/Either/api/align.mjs.map +1 -1
  512. package/_mjs/data/Either/api/alignWith.mjs.map +1 -1
  513. package/_mjs/data/Either/api.mjs.map +1 -1
  514. package/_mjs/data/Either/constructors.mjs.map +1 -1
  515. package/_mjs/data/Either/definition.mjs.map +1 -1
  516. package/_mjs/data/Either/destructors.mjs.map +1 -1
  517. package/_mjs/data/Either/instances.mjs.map +1 -1
  518. package/_mjs/data/Either.mjs.map +1 -1
  519. package/_mjs/data/EitherT/api.mjs.map +1 -1
  520. package/_mjs/data/EitherT/definition.mjs.map +1 -1
  521. package/_mjs/data/Encoder/api.mjs +1 -1
  522. package/_mjs/data/Encoder/api.mjs.map +1 -1
  523. package/_mjs/data/Encoder/definition.mjs.map +1 -1
  524. package/_mjs/data/Encoder.mjs.map +1 -1
  525. package/_mjs/data/Environment/api.mjs.map +1 -1
  526. package/_mjs/data/Environment/definition.mjs.map +1 -1
  527. package/_mjs/data/Environment.mjs.map +1 -1
  528. package/_mjs/data/EnvironmentPatch.mjs.map +1 -1
  529. package/_mjs/data/Eq/api.mjs.map +1 -1
  530. package/_mjs/data/Eq/definition.mjs.map +1 -1
  531. package/_mjs/data/Eq/derivations.mjs.map +1 -1
  532. package/_mjs/data/Eq.mjs.map +1 -1
  533. package/_mjs/data/Equatable/api.mjs.map +1 -1
  534. package/_mjs/data/Equatable/definition.mjs.map +1 -1
  535. package/_mjs/data/Equatable/fast-equals.mjs.map +1 -1
  536. package/_mjs/data/Equatable.mjs.map +1 -1
  537. package/_mjs/data/ExecutionStrategy.mjs.map +1 -1
  538. package/_mjs/data/Exit/api.mjs +13 -13
  539. package/_mjs/data/Exit/api.mjs.map +1 -1
  540. package/_mjs/data/Exit/constructors.mjs.map +1 -1
  541. package/_mjs/data/Exit/definition.mjs.map +1 -1
  542. package/_mjs/data/Exit.mjs.map +1 -1
  543. package/_mjs/data/FiberId/api.mjs.map +1 -1
  544. package/_mjs/data/FiberId/constructors.mjs.map +1 -1
  545. package/_mjs/data/FiberId/definition.mjs.map +1 -1
  546. package/_mjs/data/FiberId.mjs.map +1 -1
  547. package/_mjs/data/Guard/api.mjs +1 -1
  548. package/_mjs/data/Guard/api.mjs.map +1 -1
  549. package/_mjs/data/Guard/definition.mjs.map +1 -1
  550. package/_mjs/data/Guard.mjs.map +1 -1
  551. package/_mjs/data/Hash.mjs.map +1 -1
  552. package/_mjs/data/HashEq.mjs.map +1 -1
  553. package/_mjs/data/Hashable/definition.mjs.map +1 -1
  554. package/_mjs/data/Hashable/hash.mjs.map +1 -1
  555. package/_mjs/data/Hashable.mjs.map +1 -1
  556. package/_mjs/data/Identity/api.mjs.map +1 -1
  557. package/_mjs/data/Identity/definition.mjs.map +1 -1
  558. package/_mjs/data/Identity/instances.mjs.map +1 -1
  559. package/_mjs/data/Identity.mjs.map +1 -1
  560. package/_mjs/data/Interval.mjs.map +1 -1
  561. package/_mjs/data/Intervals.mjs.map +1 -1
  562. package/_mjs/data/Maybe/api.mjs.map +1 -1
  563. package/_mjs/data/Maybe/constructors.mjs.map +1 -1
  564. package/_mjs/data/Maybe/definition.mjs.map +1 -1
  565. package/_mjs/data/Maybe/destructors.mjs.map +1 -1
  566. package/_mjs/data/Maybe/instances.mjs.map +1 -1
  567. package/_mjs/data/Maybe.mjs.map +1 -1
  568. package/_mjs/data/Newtype.mjs.map +1 -1
  569. package/_mjs/data/Ord/api/contramap.mjs.map +1 -1
  570. package/_mjs/data/Ord/api/max.mjs.map +1 -1
  571. package/_mjs/data/Ord/api/min.mjs.map +1 -1
  572. package/_mjs/data/Ord/api.mjs.map +1 -1
  573. package/_mjs/data/Ord/definition.mjs.map +1 -1
  574. package/_mjs/data/Ord/instances.mjs.map +1 -1
  575. package/_mjs/data/Ord.mjs.map +1 -1
  576. package/_mjs/data/Ordering.mjs.map +1 -1
  577. package/_mjs/data/Predicate/api.mjs.map +1 -1
  578. package/_mjs/data/Predicate/definition.mjs.map +1 -1
  579. package/_mjs/data/Predicate.mjs.map +1 -1
  580. package/_mjs/data/Refinement/api.mjs.map +1 -1
  581. package/_mjs/data/Refinement/definition.mjs.map +1 -1
  582. package/_mjs/data/Refinement.mjs.map +1 -1
  583. package/_mjs/data/Showable/definition.mjs.map +1 -1
  584. package/_mjs/data/Showable/show.mjs +31 -31
  585. package/_mjs/data/Showable/show.mjs.map +1 -1
  586. package/_mjs/data/Showable/styles.mjs.map +1 -1
  587. package/_mjs/data/Showable/util.mjs.map +1 -1
  588. package/_mjs/data/Showable.mjs.map +1 -1
  589. package/_mjs/data/Struct/api.mjs.map +1 -1
  590. package/_mjs/data/Struct/definition.mjs.map +1 -1
  591. package/_mjs/data/Struct.mjs.map +1 -1
  592. package/_mjs/data/Tag/constructors.mjs.map +1 -1
  593. package/_mjs/data/Tag/definition.mjs.map +1 -1
  594. package/_mjs/data/Tag.mjs.map +1 -1
  595. package/_mjs/data/These/api.mjs.map +1 -1
  596. package/_mjs/data/These/constructors.mjs.map +1 -1
  597. package/_mjs/data/These/definition.mjs.map +1 -1
  598. package/_mjs/data/These/destructors.mjs.map +1 -1
  599. package/_mjs/data/These/instances.mjs.map +1 -1
  600. package/_mjs/data/These.mjs.map +1 -1
  601. package/_mjs/data/Trace/api.mjs.map +1 -1
  602. package/_mjs/data/Trace/constructors.mjs.map +1 -1
  603. package/_mjs/data/Trace/definition.mjs.map +1 -1
  604. package/_mjs/data/Trace.mjs.map +1 -1
  605. package/_mjs/data/TraceElement/definition.mjs.map +1 -1
  606. package/_mjs/data/TraceElement.mjs.map +1 -1
  607. package/_mjs/data/Zipped.mjs.map +1 -1
  608. package/_mjs/data/bigint/definition.mjs.map +1 -1
  609. package/_mjs/data/bigint/instances.mjs.map +1 -1
  610. package/_mjs/data/bigint.mjs.map +1 -1
  611. package/_mjs/data/boolean/definition.mjs.map +1 -1
  612. package/_mjs/data/boolean/instances.mjs.map +1 -1
  613. package/_mjs/data/boolean.mjs.map +1 -1
  614. package/_mjs/data/exceptions/ArrayIndexOutOfBoundsError.mjs.map +1 -1
  615. package/_mjs/data/exceptions/IOError.mjs.map +1 -1
  616. package/_mjs/data/exceptions/IllegalArgumentError.mjs.map +1 -1
  617. package/_mjs/data/exceptions/IllegalStateError.mjs.map +1 -1
  618. package/_mjs/data/exceptions/IndexOutOfBoundsError.mjs.map +1 -1
  619. package/_mjs/data/exceptions/InterruptedException.mjs.map +1 -1
  620. package/_mjs/data/exceptions/InvalidCapacityError.mjs.map +1 -1
  621. package/_mjs/data/exceptions/NoSuchElementError.mjs.map +1 -1
  622. package/_mjs/data/exceptions/RuntimeError.mjs.map +1 -1
  623. package/_mjs/data/exceptions.mjs.map +1 -1
  624. package/_mjs/data/function/api.mjs.map +1 -1
  625. package/_mjs/data/function/definition.mjs.map +1 -1
  626. package/_mjs/data/function/pipe.mjs.map +1 -1
  627. package/_mjs/data/function.mjs.map +1 -1
  628. package/_mjs/data/number/api.mjs.map +1 -1
  629. package/_mjs/data/number/definition.mjs.map +1 -1
  630. package/_mjs/data/number/instances.mjs.map +1 -1
  631. package/_mjs/data/number.mjs.map +1 -1
  632. package/_mjs/data/object/definition.mjs.map +1 -1
  633. package/_mjs/data/object/instances.mjs.map +1 -1
  634. package/_mjs/data/object.mjs.map +1 -1
  635. package/_mjs/data/string/api.mjs.map +1 -1
  636. package/_mjs/data/string/definition.mjs.map +1 -1
  637. package/_mjs/data/string/instances.mjs.map +1 -1
  638. package/_mjs/data/string.mjs.map +1 -1
  639. package/_mjs/data.mjs.map +1 -1
  640. package/_mjs/global/api.mjs.map +1 -1
  641. package/_mjs/global.mjs.map +1 -1
  642. package/_mjs/index.mjs.map +1 -1
  643. package/_mjs/internal/AtomicBoolean.mjs.map +1 -1
  644. package/_mjs/internal/AtomicNumber.mjs.map +1 -1
  645. package/_mjs/internal/AtomicReference.mjs.map +1 -1
  646. package/_mjs/internal/Stack.mjs.map +1 -1
  647. package/_mjs/json/EitherJson.mjs.map +1 -1
  648. package/_mjs/json/MaybeJson.mjs.map +1 -1
  649. package/_mjs/json/TheseJson.mjs.map +1 -1
  650. package/_mjs/json.mjs.map +1 -1
  651. package/_mjs/optics/At/api.mjs.map +1 -1
  652. package/_mjs/optics/At/definition.mjs.map +1 -1
  653. package/_mjs/optics/At.mjs.map +1 -1
  654. package/_mjs/optics/Fold/definition.mjs.map +1 -1
  655. package/_mjs/optics/Fold.mjs.map +1 -1
  656. package/_mjs/optics/Getter/definition.mjs.map +1 -1
  657. package/_mjs/optics/Getter.mjs.map +1 -1
  658. package/_mjs/optics/Index/api.mjs.map +1 -1
  659. package/_mjs/optics/Index/definition.mjs.map +1 -1
  660. package/_mjs/optics/Index.mjs.map +1 -1
  661. package/_mjs/optics/Iso/api.mjs.map +1 -1
  662. package/_mjs/optics/Iso/definition.mjs.map +1 -1
  663. package/_mjs/optics/Iso.mjs.map +1 -1
  664. package/_mjs/optics/Lens/api.mjs.map +1 -1
  665. package/_mjs/optics/Lens/definition.mjs.map +1 -1
  666. package/_mjs/optics/Lens.mjs.map +1 -1
  667. package/_mjs/optics/Optional/api/compose.mjs.map +1 -1
  668. package/_mjs/optics/Optional/definition.mjs.map +1 -1
  669. package/_mjs/optics/Optional.mjs.map +1 -1
  670. package/_mjs/optics/Prism/api/compose.mjs.map +1 -1
  671. package/_mjs/optics/Prism/api/fromNullable.mjs.map +1 -1
  672. package/_mjs/optics/Prism/api/just.mjs.map +1 -1
  673. package/_mjs/optics/Prism/definition.mjs.map +1 -1
  674. package/_mjs/optics/Prism.mjs.map +1 -1
  675. package/_mjs/optics/Setter/definition.mjs.map +1 -1
  676. package/_mjs/optics/Setter.mjs.map +1 -1
  677. package/_mjs/optics/Traversal/api/compose.mjs.map +1 -1
  678. package/_mjs/optics/Traversal/api/fromTraversable.mjs.map +1 -1
  679. package/_mjs/optics/Traversal/definition.mjs.map +1 -1
  680. package/_mjs/optics/Traversal.mjs.map +1 -1
  681. package/_mjs/optics.mjs.map +1 -1
  682. package/_mjs/typeclass/Align.mjs.map +1 -1
  683. package/_mjs/typeclass/Alt.mjs.map +1 -1
  684. package/_mjs/typeclass/Alternative.mjs.map +1 -1
  685. package/_mjs/typeclass/Applicative.mjs.map +1 -1
  686. package/_mjs/typeclass/ApplicativeExcept.mjs.map +1 -1
  687. package/_mjs/typeclass/Apply.mjs.map +1 -1
  688. package/_mjs/typeclass/Chain.mjs.map +1 -1
  689. package/_mjs/typeclass/Closure.mjs.map +1 -1
  690. package/_mjs/typeclass/Fail.mjs.map +1 -1
  691. package/_mjs/typeclass/Filterable.mjs.map +1 -1
  692. package/_mjs/typeclass/FilterableWithIndex.mjs.map +1 -1
  693. package/_mjs/typeclass/Foldable.mjs.map +1 -1
  694. package/_mjs/typeclass/FoldableWithIndex.mjs.map +1 -1
  695. package/_mjs/typeclass/Functor.mjs.map +1 -1
  696. package/_mjs/typeclass/FunctorWithIndex.mjs.map +1 -1
  697. package/_mjs/typeclass/Has.mjs.map +1 -1
  698. package/_mjs/typeclass/Monad.mjs.map +1 -1
  699. package/_mjs/typeclass/MonadExcept.mjs.map +1 -1
  700. package/_mjs/typeclass/Monoid.mjs.map +1 -1
  701. package/_mjs/typeclass/Nil.mjs.map +1 -1
  702. package/_mjs/typeclass/Pointed.mjs.map +1 -1
  703. package/_mjs/typeclass/Semialign.mjs.map +1 -1
  704. package/_mjs/typeclass/Semigroup/api.mjs.map +1 -1
  705. package/_mjs/typeclass/Semigroup/definition.mjs.map +1 -1
  706. package/_mjs/typeclass/Semigroup/derivations.mjs.map +1 -1
  707. package/_mjs/typeclass/Semigroup.mjs.map +1 -1
  708. package/_mjs/typeclass/Semimonoidal.mjs.map +1 -1
  709. package/_mjs/typeclass/Traversable.mjs.map +1 -1
  710. package/_mjs/typeclass/TraversableWithIndex.mjs.map +1 -1
  711. package/_mjs/typeclass/Witherable.mjs.map +1 -1
  712. package/_mjs/typeclass/WitherableWithIndex.mjs.map +1 -1
  713. package/_mjs/typeclass/builtin/Symbol.mjs.map +1 -1
  714. package/_mjs/typeclass/builtin.mjs.map +1 -1
  715. package/_mjs/typeclass.mjs.map +1 -1
  716. package/_mjs/types/extractions.mjs.map +1 -1
  717. package/_mjs/types/utility.mjs.map +1 -1
  718. package/_mjs/types.mjs.map +1 -1
  719. package/_mjs/util/AnsiFormat.mjs.map +1 -1
  720. package/_mjs/util/PCGRandom.mjs.map +1 -1
  721. package/_mjs/util/assert.mjs.map +1 -1
  722. package/_mjs/util/pattern.mjs.map +1 -1
  723. package/_mjs/util/predicates.mjs.map +1 -1
  724. package/_mjs/util/rand/Random.mjs.map +1 -1
  725. package/_mjs/util/rand/distribution/Distribution.mjs.map +1 -1
  726. package/_mjs/util/rand/distribution/UniformArrayIntDistribution.mjs.map +1 -1
  727. package/_mjs/util/rand/distribution/UniformBigIntDistribution.mjs.map +1 -1
  728. package/_mjs/util/rand/distribution/UniformIntDistribution.mjs.map +1 -1
  729. package/_mjs/util/rand/distribution/internals/ArrayInt.mjs.map +1 -1
  730. package/_mjs/util/rand/distribution/internals/UniformArrayIntDistributionInternal.mjs.map +1 -1
  731. package/_mjs/util/rand/distribution/internals/UniformIntDistributionInternal.mjs.map +1 -1
  732. package/_mjs/util/rand/generator/MersenneTwister.mjs.map +1 -1
  733. package/_mjs/util/rand/generator/RandomGenerator.mjs.map +1 -1
  734. package/_mjs/util/rand.mjs.map +1 -1
  735. package/_mjs/util.mjs.map +1 -1
  736. package/_src/collection/immutable/HashSet/api.ts +12 -1
  737. package/_src/collection/immutable/HashSet/definition.ts +2 -2
  738. package/_src/control/Eval/api.ts +5 -2
  739. package/_src/control/Eval/constructors.ts +10 -3
  740. package/_src/control/Eval/definition.ts +39 -27
  741. package/_src/control/Eval/run.ts +7 -7
  742. package/_src/control/Pure/api.ts +629 -0
  743. package/_src/control/Pure/definition.ts +222 -0
  744. package/_src/control/{Z → Pure}/instances.ts +3 -3
  745. package/_src/control/{Z → Pure}/runtime.ts +73 -76
  746. package/_src/control/Pure.ts +6 -0
  747. package/_src/control.ts +1 -1
  748. package/_src/data/Cause/api/fold.ts +2 -2
  749. package/_src/data/Cause/api/isEmpty.ts +2 -2
  750. package/_src/data/Cause/api/linearize.ts +2 -2
  751. package/_src/data/Cause/api/unified.ts +2 -2
  752. package/_src/data/Cause/api.ts +66 -55
  753. package/_src/data/Cause/definition.ts +59 -59
  754. package/_src/data/Decoder/api.ts +1 -1
  755. package/_src/data/Duration/api.ts +10 -0
  756. package/_src/data/Encoder/api.ts +1 -1
  757. package/_src/data/Exit/api.ts +12 -8
  758. package/_src/data/Guard/api.ts +1 -1
  759. package/_src/data/Showable/show.ts +55 -53
  760. package/_src/global.ts +1 -1
  761. package/collection/immutable/HashSet/api.d.ts +5 -0
  762. package/collection/immutable/HashSet/definition.d.ts +1 -1
  763. package/control/Eval/constructors.d.ts +4 -0
  764. package/control/Eval/definition.d.ts +25 -28
  765. package/control/Pure/api.d.ts +345 -0
  766. package/control/Pure/definition.d.ts +156 -0
  767. package/control/Pure/instances.d.ts +8 -0
  768. package/control/Pure/runtime.d.ts +56 -0
  769. package/control/Pure.d.ts +4 -0
  770. package/control.d.ts +1 -1
  771. package/data/Cause/api.d.ts +9 -9
  772. package/data/Cause/definition.d.ts +15 -14
  773. package/data/Duration/api.d.ts +6 -0
  774. package/data/Showable/show.d.ts +2 -2
  775. package/global.d.ts +1 -1
  776. package/package.json +1 -1
  777. package/_cjs/control/Z/api.cjs.map +0 -1
  778. package/_cjs/control/Z/definition.cjs +0 -163
  779. package/_cjs/control/Z/definition.cjs.map +0 -1
  780. package/_cjs/control/Z/instances.cjs.map +0 -1
  781. package/_cjs/control/Z/runtime.cjs.map +0 -1
  782. package/_cjs/control/Z.cjs.map +0 -1
  783. package/_mjs/control/Z/api.mjs.map +0 -1
  784. package/_mjs/control/Z/definition.mjs +0 -145
  785. package/_mjs/control/Z/definition.mjs.map +0 -1
  786. package/_mjs/control/Z/instances.mjs.map +0 -1
  787. package/_mjs/control/Z/runtime.mjs.map +0 -1
  788. package/_mjs/control/Z.mjs +0 -6
  789. package/_mjs/control/Z.mjs.map +0 -1
  790. package/_src/control/Z/api.ts +0 -590
  791. package/_src/control/Z/definition.ts +0 -199
  792. package/_src/control/Z.ts +0 -6
  793. package/control/Z/api.d.ts +0 -345
  794. package/control/Z/definition.d.ts +0 -151
  795. package/control/Z/instances.d.ts +0 -8
  796. package/control/Z/runtime.d.ts +0 -56
  797. package/control/Z.d.ts +0 -4
@@ -0,0 +1,629 @@
1
+ import { PurePrimitive, PureTag } from "@fncts/base/control/Pure/definition";
2
+
3
+ import { identity, tuple } from "../../data/function.js";
4
+
5
+ /**
6
+ * @tsplus getter fncts.control.Pure absolve
7
+ */
8
+ export function absolve<W, S1, S2, R, E, E1, A>(
9
+ fa: Pure<W, S1, S2, R, E, Either<E1, A>>,
10
+ ): Pure<W, S1, S2, R, E | E1, A> {
11
+ return fa.flatMap((ea) => ea.match(Pure.failNow, Pure.succeedNow));
12
+ }
13
+
14
+ /**
15
+ * @tsplus pipeable fncts.control.Pure ap
16
+ */
17
+ export function ap<W, S, A, R1, E1>(fb: Pure<W, S, S, R1, E1, A>) {
18
+ return <R, E, B>(self: Pure<W, S, S, R, E, (a: A) => B>): Pure<W, S, S, R & R1, E | E1, B> => {
19
+ return self.crossWith(fb, (f, a) => f(a));
20
+ };
21
+ }
22
+
23
+ /**
24
+ * @tsplus pipeable fncts.control.Pure zipLeft
25
+ */
26
+ export function zipLeft<W, S, R1, E1, B>(fb: Pure<W, S, S, R1, E1, B>) {
27
+ return <R, E, A>(fa: Pure<W, S, S, R, E, A>): Pure<W, S, S, R & R1, E | E1, A> => {
28
+ return fa.crossWith(fb, (a, _) => a);
29
+ };
30
+ }
31
+
32
+ /**
33
+ * @tsplus pipeable fncts.control.Pure zipRight
34
+ */
35
+ export function zipRight<W, S, R1, E1, B>(fb: Pure<W, S, S, R1, E1, B>) {
36
+ return <R, E, A>(fa: Pure<W, S, S, R, E, A>): Pure<W, S, S, R & R1, E | E1, B> => {
37
+ return fa.crossWith(fb, (_, b) => b);
38
+ };
39
+ }
40
+
41
+ /**
42
+ * @tsplus pipeable fncts.control.Pure bimap
43
+ */
44
+ export function bimap<E, A, G, B>(f: (e: E) => G, g: (a: A) => B) {
45
+ return <W, S1, S2, R>(pab: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, G, B> => {
46
+ return pab.matchPure(
47
+ (e) => Pure.failNow(f(e)),
48
+ (a) => Pure.succeedNow(g(a)),
49
+ );
50
+ };
51
+ }
52
+
53
+ /**
54
+ * Recovers from all errors.
55
+ *
56
+ * @tsplus pipeable fncts.control.Pure catchAll
57
+ */
58
+ export function catchAll<W, S1, E, S3, R1, E1, B>(onFailure: (e: E) => Pure<W, S1, S3, R1, E1, B>) {
59
+ return <S2, R, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S3, R | R1, E1, A | B> => {
60
+ return fa.matchPure(onFailure, Pure.succeedNow);
61
+ };
62
+ }
63
+
64
+ /**
65
+ * @tsplus pipeable fncts.control.Pure catchJust
66
+ */
67
+ export function catchJust<W, S1, E, S3, R1, E1, B>(f: (e: E) => Maybe<Pure<W, S1, S3, R1, E1, B>>) {
68
+ return <S2, R, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2 | S3, R | R1, E | E1, A | B> => {
69
+ return fa.catchAll((e) => f(e).getOrElse(fa));
70
+ };
71
+ }
72
+
73
+ /**
74
+ * @tsplus pipeable fncts.control.Pure flatMap
75
+ */
76
+ export function flatMap<S2, A, W1, S3, R1, E1, B>(f: (a: A) => Pure<W1, S2, S3, R1, E1, B>) {
77
+ return <W, S1, R, E>(ma: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, R1 & R, E1 | E, B> => {
78
+ const z = new PurePrimitive(PureTag.Chain) as any;
79
+ z.i0 = ma;
80
+ z.i1 = f;
81
+ return z;
82
+ };
83
+ }
84
+
85
+ /**
86
+ * @tsplus pipeable fncts.control.Pure contramapEnvironment
87
+ */
88
+ export function contramapEnvironment<R0, R>(f: (r0: Environment<R0>) => Environment<R>) {
89
+ return <W, S1, S2, E, A>(ma: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R0, E, A> => {
90
+ return Pure.environmentWithPure((r) => ma.provideEnvironment(f(r)));
91
+ };
92
+ }
93
+
94
+ /**
95
+ * Transforms the initial state of this computation` with the specified
96
+ * function.
97
+ *
98
+ * @tsplus pipeable fncts.control.Pure contramapState
99
+ */
100
+ export function contramapState<S0, S1>(f: (s: S0) => S1) {
101
+ return <W, S2, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S0, S2, R, E, A> => {
102
+ return Pure.update(f).flatMap(() => fa);
103
+ };
104
+ }
105
+
106
+ /**
107
+ * @tsplus pipeable fncts.control.Pure cross
108
+ */
109
+ export function cross<W, S, R1, E1, B>(fb: Pure<W, S, S, R1, E1, B>) {
110
+ return <R, E, A>(fa: Pure<W, S, S, R, E, A>): Pure<W, S, S, R & R1, E | E1, readonly [A, B]> => {
111
+ return fa.crossWith(fb, tuple);
112
+ };
113
+ }
114
+
115
+ /**
116
+ * @tsplus pipeable fncts.control.Pure crossWith
117
+ */
118
+ export function crossWith<W, S, A, R1, E1, B, C>(fb: Pure<W, S, S, R1, E1, B>, f: (a: A, b: B) => C) {
119
+ return <R, E>(fa: Pure<W, S, S, R, E, A>): Pure<W, S, S, R & R1, E | E1, C> => {
120
+ return fa.flatMap((a) => fb.map((b) => f(a, b)));
121
+ };
122
+ }
123
+
124
+ /**
125
+ * @tsplus static fncts.control.PureOps defer
126
+ */
127
+ export function defer<W, S1, S2, R, E, A>(
128
+ ma: Lazy<Pure<W, S1, S2, R, E, A>>,
129
+ __tsplusTrace?: string,
130
+ ): Pure<W, S1, S2, R, E, A> {
131
+ const z = new PurePrimitive(PureTag.Defer) as any;
132
+ z.i0 = ma;
133
+ return z;
134
+ }
135
+
136
+ /**
137
+ * Returns a computation whose failure and success have been lifted into an
138
+ * `Either`. The resulting computation cannot fail, because the failure case
139
+ * has been exposed as part of the `Either` success case.
140
+ *
141
+ * @tsplus getter fncts.control.Pure either
142
+ */
143
+ export function either<W, S1, S2, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S1 | S2, R, never, Either<E, A>> {
144
+ return fa.match(Either.left, Either.right);
145
+ }
146
+
147
+ /**
148
+ * @tsplus static fncts.control.PureOps environment
149
+ */
150
+ export function environment<R>(): Pure<never, unknown, never, R, never, Environment<R>> {
151
+ const z = new PurePrimitive(PureTag.Access) as any;
152
+ z.i0 = (r: any) => Pure.succeedNow(r);
153
+ return z;
154
+ }
155
+
156
+ /**
157
+ * @tsplus static fncts.control.PureOps environmentWith
158
+ */
159
+ export function environmentWith<R0, A>(f: (r: Environment<R0>) => A): Pure<never, unknown, never, R0, never, A> {
160
+ const z = new PurePrimitive(PureTag.Access) as any;
161
+ z.i0 = (r: any) => Pure.succeedNow(f(r));
162
+ return z;
163
+ }
164
+
165
+ /**
166
+ * @tsplus static fncts.control.PureOps environmentWithPure
167
+ */
168
+ export function environmentWithPure<R0, W, S1, S2, R, E, A>(
169
+ f: (r: Environment<R0>) => Pure<W, S1, S2, R, E, A>,
170
+ ): Pure<W, S1, S2, R | R0, E, A> {
171
+ const z = new PurePrimitive(PureTag.Access) as any;
172
+ z.i0 = f;
173
+ return z;
174
+ }
175
+
176
+ /**
177
+ * Erases the current log
178
+ *
179
+ * @tsplus getter fncts.control.Pure erase
180
+ */
181
+ export function erase<W, S1, S2, R, E, A>(wa: Pure<W, S1, S2, R, E, A>): Pure<never, S1, S2, R, E, A> {
182
+ return wa.mapLog(() => Conc.empty());
183
+ }
184
+
185
+ /**
186
+ * @tsplus static fncts.control.PureOps fail
187
+ */
188
+ export function fail<E>(e: Lazy<E>, __tsplusTrace?: string): Pure<never, unknown, never, never, E, never> {
189
+ return Pure.failCause(Cause.fail(e()));
190
+ }
191
+
192
+ /**
193
+ * @tsplus static fncts.control.PureOps failNow
194
+ */
195
+ export function failNow<E>(e: E, __tsplusTrace?: string): Pure<never, unknown, never, never, E, never> {
196
+ return Pure.failCauseNow(Cause.fail(e));
197
+ }
198
+
199
+ /**
200
+ * @tsplus static fncts.control.PureOps failCause
201
+ */
202
+ export function failCause<E>(
203
+ cause: Lazy<Cause<E>>,
204
+ __tsplusTrace?: string,
205
+ ): Pure<never, unknown, never, never, E, never> {
206
+ return Pure.defer(Pure.failCauseNow(cause()));
207
+ }
208
+
209
+ /**
210
+ * @tsplus static fncts.control.PureOps failCauseNow
211
+ */
212
+ export function failCauseNow<E>(cause: Cause<E>, __tsplusTrace?: string): Pure<never, unknown, never, never, E, never> {
213
+ const z = new PurePrimitive(PureTag.Fail) as any;
214
+ z.i0 = cause;
215
+ return z;
216
+ }
217
+
218
+ /**
219
+ * @tsplus getter fncts.control.Pure flatten
220
+ */
221
+ export function flatten<W, S1, S2, R, E, A, W1, S3, R1, E1>(
222
+ mma: Pure<W, S1, S2, R, E, Pure<W1, S2, S3, R1, E1, A>>,
223
+ ): Pure<W | W1, S1, S3, R1 & R, E1 | E, A> {
224
+ return mma.flatMap(identity);
225
+ }
226
+
227
+ /**
228
+ * Constructs a computation that returns the initial state unchanged.
229
+ *
230
+ * @tsplus static fncts.control.PureOps get
231
+ */
232
+ export function get<S>(): Pure<never, S, S, never, never, S> {
233
+ return Pure.modify((s) => [s, s]);
234
+ }
235
+
236
+ /**
237
+ * @tsplus static fncts.control.PureOps gets
238
+ */
239
+ export function gets<S, A>(f: (s: S) => A): Pure<never, S, S, never, never, A> {
240
+ return Pure.modify((s) => [f(s), s]);
241
+ }
242
+
243
+ /**
244
+ * @tsplus static fncts.control.PureOps getsPure
245
+ */
246
+ export function getsPure<S, W, R, E, A>(f: (s: S) => Pure<W, S, S, R, E, A>): Pure<W, S, S, R, E, A> {
247
+ return Pure.get<S>().flatMap(f);
248
+ }
249
+
250
+ /**
251
+ * @tsplus static fncts.control.PureOps halt
252
+ */
253
+ export function halt(defect: Lazy<unknown>, __tsplusTrace?: string): Pure<never, unknown, never, never, never, never> {
254
+ return Pure.failCause(Cause.halt(defect()));
255
+ }
256
+
257
+ /**
258
+ * @tsplus static fncts.control.PureOps haltNow
259
+ */
260
+ export function haltNow(defect: unknown, __tsplusTrace?: string): Pure<never, unknown, never, never, never, never> {
261
+ return Pure.failCauseNow(Cause.halt(defect));
262
+ }
263
+
264
+ /**
265
+ * @tsplus getter fncts.control.Pure listen
266
+ */
267
+ export function listen<W, S1, S2, R, E, A>(wa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, E, readonly [A, Conc<W>]> {
268
+ return wa.matchLogCausePure(
269
+ (_, e) => Pure.failCauseNow(e),
270
+ (ws, a) => Pure.succeedNow([a, ws]),
271
+ );
272
+ }
273
+
274
+ /**
275
+ * @tsplus pipeable fncts.control.Pure listens
276
+ */
277
+ export function listens<W, B>(f: (log: Conc<W>) => B) {
278
+ return <S1, S2, R, E, A>(wa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, E, readonly [A, B]> => {
279
+ return wa.listen.map(([a, ws]) => [a, f(ws)]);
280
+ };
281
+ }
282
+
283
+ /**
284
+ * @tsplus pipeable fncts.control.Pure map
285
+ */
286
+ export function map<A, B>(f: (a: A) => B) {
287
+ return <W, S1, S2, R, E>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, E, B> => {
288
+ return fa.flatMap((a) => Pure.succeedNow(f(a)));
289
+ };
290
+ }
291
+
292
+ /**
293
+ * @tsplus pipeable fncts.control.Pure mapError
294
+ */
295
+ export function mapError<E, G>(f: (e: E) => G) {
296
+ return <W, S1, S2, R, A>(pab: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, G, A> => {
297
+ return pab.matchPure((e) => Pure.failNow(f(e)), Pure.succeedNow);
298
+ };
299
+ }
300
+
301
+ /**
302
+ * Modifies the current log with the specified function
303
+ *
304
+ * @tsplus pipeable fncts.control.Pure mapLog
305
+ */
306
+ export function mapLog<W, W1>(f: (ws: Conc<W>) => Conc<W1>) {
307
+ return <S1, S2, R, E, A>(wa: Pure<W, S1, S2, R, E, A>): Pure<W1, S1, S2, R, E, A> => {
308
+ const z = new PurePrimitive(PureTag.MapLog) as any;
309
+ z.i0 = wa;
310
+ z.i1 = f;
311
+ return z;
312
+ };
313
+ }
314
+
315
+ /**
316
+ * Modifies the current state with the specified function
317
+ *
318
+ * @tsplus pipeable fncts.control.Pure mapState
319
+ */
320
+ export function mapState<S2, S3>(f: (s: S2) => S3) {
321
+ return <W, S1, R, E, A>(ma: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S3, R, E, A> => {
322
+ return ma.transform((s, a) => [a, f(s)]);
323
+ };
324
+ }
325
+
326
+ /**
327
+ * Folds over the failed or successful results of this computation to yield
328
+ * a computation that does not fail, but succeeds with the value of the left
329
+ * or right function passed to `match`.
330
+ *
331
+ * @tsplus pipeable fncts.control.Pure match
332
+ */
333
+ export function match<E, A, B, C>(onFailure: (e: E) => B, onSuccess: (a: A) => C) {
334
+ return <W, S1, S2, R>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, never, B | C> => {
335
+ return fa.matchPure(
336
+ (e) => Pure.succeedNow(onFailure(e)),
337
+ (a) => Pure.succeedNow(onSuccess(a)),
338
+ );
339
+ };
340
+ }
341
+
342
+ /**
343
+ * Recovers from errors by accepting one computation to execute for the case
344
+ * of an error, and one computation to execute for the case of success.
345
+ *
346
+ * @tsplus pipeable fncts.control.Pure matchPure
347
+ */
348
+ export function matchPure<S5, S2, E, A, W1, S3, R1, E1, B, W2, S4, R2, E2, C>(
349
+ onFailure: (e: E) => Pure<W1, S5, S3, R1, E1, B>,
350
+ onSuccess: (a: A) => Pure<W2, S2, S4, R2, E2, C>,
351
+ ) {
352
+ return <W, S1, R>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1 | W2, S1 & S5, S3 | S4, R | R1 | R2, E1 | E2, B | C> => {
353
+ return fa.matchCausePure((cause) => cause.failureOrCause.match(onFailure, Pure.failCauseNow), onSuccess);
354
+ };
355
+ }
356
+
357
+ /**
358
+ * @tsplus pipeable fncts.control.Pure matchCausePure
359
+ */
360
+ export function matchCausePure<S2, E, A, W1, S0, S3, R1, E1, B, W2, S4, R2, E2, C>(
361
+ onFailure: (e: Cause<E>) => Pure<W1, S0, S3, R1, E1, B>,
362
+ onSuccess: (a: A) => Pure<W2, S2, S4, R2, E2, C>,
363
+ ) {
364
+ return <W, S1, R>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1 | W2, S0 & S1, S3 | S4, R | R1 | R2, E1 | E2, B | C> => {
365
+ return fa.matchLogCausePure(
366
+ (ws, e) => onFailure(e).mapLog((w1s) => ws.concat(w1s)),
367
+ (ws, a) => onSuccess(a).mapLog((w2s) => ws.concat(w2s)),
368
+ );
369
+ };
370
+ }
371
+
372
+ /**
373
+ * @tsplus pipeable fncts.control.Pure matchLogPure
374
+ */
375
+ export function matchLogPure<W, S5, S2, E, A, W1, S3, R1, E1, B, W2, S4, R2, E2, C>(
376
+ onFailure: (ws: Conc<W>, e: E) => Pure<W1, S5, S3, R1, E1, B>,
377
+ onSuccess: (ws: Conc<W>, a: A) => Pure<W2, S2, S4, R2, E2, C>,
378
+ ) {
379
+ return <S1, R>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1 | W2, S1 & S5, S3 | S4, R | R1 | R2, E1 | E2, B | C> => {
380
+ return fa.matchLogCausePure(
381
+ (ws, cause) => cause.failureOrCause.match((e) => onFailure(ws, e), Pure.failCauseNow),
382
+ onSuccess,
383
+ );
384
+ };
385
+ }
386
+
387
+ /**
388
+ * Recovers from errors by accepting one computation to execute for the case
389
+ * of an error, and one computation to execute for the case of success. More powerful
390
+ * than `matchCauseM` by providing the current state of the log as an argument in
391
+ * each case
392
+ *
393
+ * @note the log is cleared after being provided
394
+ *
395
+ * @tsplus pipeable fncts.control.Pure matchLogCausePure
396
+ */
397
+ export function matchLogCausePure<W, S2, E, A, W1, S0, S3, R1, E1, B, W2, S4, R2, E2, C>(
398
+ onFailure: (ws: Conc<W>, e: Cause<E>) => Pure<W1, S0, S3, R1, E1, B>,
399
+ onSuccess: (ws: Conc<W>, a: A) => Pure<W2, S2, S4, R2, E2, C>,
400
+ ) {
401
+ return <S1, R>(fa: Pure<W, S1, S2, R, E, A>): Pure<W1 | W2, S0 & S1, S3 | S4, R & R1 & R2, E1 | E2, B | C> => {
402
+ const z = new PurePrimitive(PureTag.Match) as any;
403
+ z.i0 = fa;
404
+ z.i1 = onFailure;
405
+ z.i2 = onSuccess;
406
+ return z;
407
+ };
408
+ }
409
+
410
+ /**
411
+ * Constructs a computation from the specified modify function
412
+ *
413
+ * @tsplus static fncts.control.PureOps modify
414
+ */
415
+ export function modify<S1, S2, A>(f: (s: S1) => readonly [A, S2]): Pure<never, S1, S2, never, never, A> {
416
+ const z = new PurePrimitive(PureTag.Modify) as any;
417
+ z.i0 = f;
418
+ return z;
419
+ }
420
+
421
+ /**
422
+ * Constructs a computation that may fail from the specified modify function.
423
+ *
424
+ * @tsplus static fncts.control.PureOps modifyEither
425
+ */
426
+ export function modifyEither<S1, S2, E, A>(
427
+ f: (s: S1) => Either<E, readonly [A, S2]>,
428
+ ): Pure<never, S1, S2, never, E, A> {
429
+ return Pure.get<S1>()
430
+ .map(f)
431
+ .flatMap((r) => r.match(Pure.failNow, ([a, s2]) => Pure.succeedNow(a).mapState(() => s2)));
432
+ }
433
+
434
+ /**
435
+ * @tsplus pipeable fncts.control.Pure orElse
436
+ */
437
+ export function orElse<S1, W1, S3, R1, E1, A1>(fb: Lazy<Pure<W1, S1, S3, R1, E1, A1>>) {
438
+ return <W, S2, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S2 | S3, R | R1, E | E1, A | A1> => {
439
+ return fa.matchPure(() => fb(), Pure.succeedNow);
440
+ };
441
+ }
442
+
443
+ /**
444
+ * Executes this computation and returns its value, if it succeeds, but
445
+ * otherwise executes the specified computation.
446
+ *
447
+ * @tsplus pipeable fncts.control.Pure orElseEither
448
+ */
449
+ export function orElseEither<W, S3, S4, R1, E1, A1>(that: Lazy<Pure<W, S3, S4, R1, E1, A1>>) {
450
+ return <S1, S2, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1 & S3, S2 | S4, R | R1, E1, Either<A, A1>> => {
451
+ return fa.matchPure(
452
+ () => that().map(Either.right),
453
+ (a) => Pure.succeedNow(Either.left(a)),
454
+ );
455
+ };
456
+ }
457
+
458
+ /**
459
+ * @tsplus pipeable fncts.control.Pure provideEnvironment
460
+ */
461
+ export function provideEnvironment<R>(r: Environment<R>) {
462
+ return <W, S1, S2, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, never, E, A> => {
463
+ const z = new PurePrimitive(PureTag.Provide) as any;
464
+ z.i0 = fa;
465
+ z.i1 = r;
466
+ return z;
467
+ };
468
+ }
469
+
470
+ /**
471
+ * Constructs a computation that sets the state to the specified value.
472
+ *
473
+ * @tsplus static fncts.control.PureOps put
474
+ */
475
+ export function put<S>(s: S): Pure<never, unknown, S, never, never, void> {
476
+ return Pure.modify(() => [undefined, s]);
477
+ }
478
+
479
+ /**
480
+ * Repeats this computation the specified number of times (or until the first failure)
481
+ * passing the updated state to each successive repetition.
482
+ *
483
+ * @tsplus pipeable fncts.control.Pure repeatN
484
+ */
485
+ export function repeatN(n: number) {
486
+ return <W, S1, S2 extends S1, R, E, A>(ma: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, E, A> => {
487
+ return ma.flatMap((a) => (n <= 0 ? Pure.succeedNow(a) : ma.repeatN(n - 1)));
488
+ };
489
+ }
490
+
491
+ /**
492
+ * Repeats this computation until its value satisfies the specified predicate
493
+ * (or until the first failure) passing the updated state to each successive repetition.
494
+ *
495
+ * @tsplus pipeable fncts.control.Pure repeatUntil
496
+ */
497
+ export function repeatUntil<A>(p: Predicate<A>) {
498
+ return <W, S1, S2 extends S1, R, E>(ma: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S2, R, E, A> => {
499
+ return ma.flatMap((a) => (p(a) ? Pure.succeedNow(a) : ma.repeatUntil(p)));
500
+ };
501
+ }
502
+
503
+ /**
504
+ * @tsplus static fncts.control.PureOps succeed
505
+ */
506
+ export function succeed<A, W = never, S1 = unknown, S2 = never>(
507
+ effect: Lazy<A>,
508
+ __tsplusTrace?: string,
509
+ ): Pure<W, S1, S2, never, never, A> {
510
+ const z = new PurePrimitive(PureTag.Succeed) as any;
511
+ z.i0 = effect;
512
+ return z;
513
+ }
514
+
515
+ /**
516
+ * @tsplus static fncts.control.PureOps succeedNow
517
+ */
518
+ export function succeedNow<A, W = never, S1 = unknown, S2 = never>(
519
+ a: A,
520
+ __tsplusTrace?: string,
521
+ ): Pure<W, S1, S2, never, never, A> {
522
+ const z = new PurePrimitive(PureTag.SucceedNow) as any;
523
+ z.i0 = a;
524
+ return z;
525
+ }
526
+
527
+ /**
528
+ * @tsplus pipeable fncts.control.Pure tap
529
+ */
530
+ export function tap<S2, A, W1, S3, R1, E1, B>(f: (a: A) => Pure<W1, S2, S3, R1, E1, B>) {
531
+ return <W, S1, R, E>(ma: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, R1 & R, E1 | E, A> => {
532
+ return ma.flatMap((a) => f(a).map(() => a));
533
+ };
534
+ }
535
+
536
+ /**
537
+ * @tsplus static fncts.control.PureOps tell
538
+ */
539
+ export function tell<W>(w: W): Pure<W, unknown, never, never, never, void> {
540
+ return Pure.tellAll(Conc.single(w));
541
+ }
542
+
543
+ /**
544
+ * @tsplus static fncts.control.PureOps tellAll
545
+ */
546
+ export function tellAll<W>(ws: Conc<W>): Pure<W, unknown, never, never, never, void> {
547
+ const z = new PurePrimitive(PureTag.Tell) as any;
548
+ z.i0 = ws;
549
+ return z;
550
+ }
551
+
552
+ /**
553
+ * Like `map`, but also allows the state to be modified.
554
+ *
555
+ * @tsplus pipeable fncts.control.Pure transform
556
+ */
557
+ export function transform<S2, A, S3, B>(f: (s: S2, a: A) => readonly [B, S3]) {
558
+ return <W, S1, R, E>(ma: Pure<W, S1, S2, R, E, A>): Pure<W, S1, S3, R, E, B> => {
559
+ return ma.flatMap((a) => Pure.modify((s) => f(s, a)));
560
+ };
561
+ }
562
+
563
+ /**
564
+ * @tsplus static fncts.control.PureOps unit
565
+ */
566
+ export const unit: Pure<never, unknown, never, never, never, void> = Pure.succeedNow(undefined);
567
+
568
+ /**
569
+ * Constructs a computation from the specified update function.
570
+ *
571
+ * @tsplus static fncts.control.PureOps update
572
+ */
573
+ export function update<S1, S2>(f: (s: S1) => S2): Pure<never, S1, S2, never, never, void> {
574
+ return Pure.modify((s) => [undefined, f(s)]);
575
+ }
576
+
577
+ /**
578
+ * @tsplus pipeable fncts.control.Pure write
579
+ */
580
+ export function write<W1>(w: W1) {
581
+ return <W, S1, S2, R, E, A>(ma: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S2, R, E, A> => {
582
+ return ma.writeAll(Conc.single(w));
583
+ };
584
+ }
585
+
586
+ /**
587
+ * @tsplus pipeable fncts.control.Pure writeAll
588
+ */
589
+ export function writeAll<W1>(log: Conc<W1>) {
590
+ return <W, S1, S2, R, E, A>(ma: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S2, R, E, A> => {
591
+ return ma.mapLog((ws) => ws.concat(log));
592
+ };
593
+ }
594
+
595
+ /**
596
+ * @tsplus pipeable fncts.control.Pure zip
597
+ */
598
+ export function zip<S2, W1, S3, Q, D, B>(fb: Pure<W1, S2, S3, Q, D, B>) {
599
+ return <W, S1, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, Q & R, D | E, Zipped.Make<A, B>> => {
600
+ return fa.zipWith(fb, (a, b) => Zipped(a, b));
601
+ };
602
+ }
603
+
604
+ /**
605
+ * @tsplus pipeable fncts.control.Pure zipFirst
606
+ */
607
+ export function zipFirst<S2, W1, S3, Q, D, B>(fb: Pure<W1, S2, S3, Q, D, B>) {
608
+ return <W, S1, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, Q & R, D | E, A> => {
609
+ return fa.zipWith(fb, (a, _) => a);
610
+ };
611
+ }
612
+
613
+ /**
614
+ * @tsplus pipeable fncts.control.Pure zipSecond
615
+ */
616
+ export function zipSecond<S2, W1, S3, Q, D, B>(fb: Pure<W1, S2, S3, Q, D, B>) {
617
+ return <W, S1, R, E, A>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, Q & R, D | E, B> => {
618
+ return fa.zipWith(fb, (_, b) => b);
619
+ };
620
+ }
621
+
622
+ /**
623
+ * @tsplus pipeable fncts.control.Pure zipWith
624
+ */
625
+ export function zipWith<S2, A, W1, S3, R1, E1, B, C>(fb: Pure<W1, S2, S3, R1, E1, B>, f: (a: A, b: B) => C) {
626
+ return <W, S1, R, E>(fa: Pure<W, S1, S2, R, E, A>): Pure<W | W1, S1, S3, R1 & R, E1 | E, C> => {
627
+ return fa.flatMap((a) => fb.map((b) => f(a, b)));
628
+ };
629
+ }