effect 3.6.8 → 3.7.0

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 (99) hide show
  1. package/dist/cjs/Array.js +1 -1
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/Config.js +8 -1
  4. package/dist/cjs/Config.js.map +1 -1
  5. package/dist/cjs/Context.js +9 -1
  6. package/dist/cjs/Context.js.map +1 -1
  7. package/dist/cjs/Effect.js +26 -4
  8. package/dist/cjs/Effect.js.map +1 -1
  9. package/dist/cjs/Fiber.js.map +1 -1
  10. package/dist/cjs/FiberHandle.js +20 -8
  11. package/dist/cjs/FiberHandle.js.map +1 -1
  12. package/dist/cjs/FiberMap.js +22 -11
  13. package/dist/cjs/FiberMap.js.map +1 -1
  14. package/dist/cjs/FiberSet.js +23 -9
  15. package/dist/cjs/FiberSet.js.map +1 -1
  16. package/dist/cjs/Micro.js +9 -2
  17. package/dist/cjs/Micro.js.map +1 -1
  18. package/dist/cjs/Stream.js +30 -2
  19. package/dist/cjs/Stream.js.map +1 -1
  20. package/dist/cjs/internal/config.js +7 -1
  21. package/dist/cjs/internal/config.js.map +1 -1
  22. package/dist/cjs/internal/context.js +8 -1
  23. package/dist/cjs/internal/context.js.map +1 -1
  24. package/dist/cjs/internal/effect/circular.js +3 -1
  25. package/dist/cjs/internal/effect/circular.js.map +1 -1
  26. package/dist/cjs/internal/fiberRuntime.js +23 -15
  27. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  28. package/dist/cjs/internal/stream.js +6 -3
  29. package/dist/cjs/internal/stream.js.map +1 -1
  30. package/dist/cjs/internal/version.js +1 -1
  31. package/dist/dts/Array.d.ts +9 -9
  32. package/dist/dts/Array.d.ts.map +1 -1
  33. package/dist/dts/Config.d.ts +7 -0
  34. package/dist/dts/Config.d.ts.map +1 -1
  35. package/dist/dts/Context.d.ts +12 -0
  36. package/dist/dts/Context.d.ts.map +1 -1
  37. package/dist/dts/Effect.d.ts +84 -4
  38. package/dist/dts/Effect.d.ts.map +1 -1
  39. package/dist/dts/Fiber.d.ts +5 -1
  40. package/dist/dts/Fiber.d.ts.map +1 -1
  41. package/dist/dts/FiberHandle.d.ts +7 -0
  42. package/dist/dts/FiberHandle.d.ts.map +1 -1
  43. package/dist/dts/FiberMap.d.ts +7 -0
  44. package/dist/dts/FiberMap.d.ts.map +1 -1
  45. package/dist/dts/FiberSet.d.ts +17 -5
  46. package/dist/dts/FiberSet.d.ts.map +1 -1
  47. package/dist/dts/Micro.d.ts +6 -0
  48. package/dist/dts/Micro.d.ts.map +1 -1
  49. package/dist/dts/Stream.d.ts +30 -0
  50. package/dist/dts/Stream.d.ts.map +1 -1
  51. package/dist/dts/internal/stream.d.ts +0 -1
  52. package/dist/dts/internal/stream.d.ts.map +1 -1
  53. package/dist/esm/Array.js +1 -1
  54. package/dist/esm/Array.js.map +1 -1
  55. package/dist/esm/Config.js +7 -0
  56. package/dist/esm/Config.js.map +1 -1
  57. package/dist/esm/Context.js +8 -0
  58. package/dist/esm/Context.js.map +1 -1
  59. package/dist/esm/Effect.js +22 -0
  60. package/dist/esm/Effect.js.map +1 -1
  61. package/dist/esm/Fiber.js.map +1 -1
  62. package/dist/esm/FiberHandle.js +20 -8
  63. package/dist/esm/FiberHandle.js.map +1 -1
  64. package/dist/esm/FiberMap.js +22 -11
  65. package/dist/esm/FiberMap.js.map +1 -1
  66. package/dist/esm/FiberSet.js +23 -9
  67. package/dist/esm/FiberSet.js.map +1 -1
  68. package/dist/esm/Micro.js +7 -1
  69. package/dist/esm/Micro.js.map +1 -1
  70. package/dist/esm/Stream.js +27 -0
  71. package/dist/esm/Stream.js.map +1 -1
  72. package/dist/esm/internal/config.js +5 -0
  73. package/dist/esm/internal/config.js.map +1 -1
  74. package/dist/esm/internal/context.js +7 -0
  75. package/dist/esm/internal/context.js.map +1 -1
  76. package/dist/esm/internal/effect/circular.js +2 -0
  77. package/dist/esm/internal/effect/circular.js.map +1 -1
  78. package/dist/esm/internal/fiberRuntime.js +20 -13
  79. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  80. package/dist/esm/internal/stream.js +3 -0
  81. package/dist/esm/internal/stream.js.map +1 -1
  82. package/dist/esm/internal/version.js +1 -1
  83. package/package.json +1 -1
  84. package/src/Array.ts +39 -9
  85. package/src/Config.ts +8 -0
  86. package/src/Context.ts +13 -0
  87. package/src/Effect.ts +172 -19
  88. package/src/Fiber.ts +8 -1
  89. package/src/FiberHandle.ts +46 -10
  90. package/src/FiberMap.ts +48 -13
  91. package/src/FiberSet.ts +65 -24
  92. package/src/Micro.ts +8 -1
  93. package/src/Stream.ts +36 -0
  94. package/src/internal/config.ts +10 -0
  95. package/src/internal/context.ts +12 -0
  96. package/src/internal/effect/circular.ts +91 -0
  97. package/src/internal/fiberRuntime.ts +101 -30
  98. package/src/internal/stream.ts +18 -0
  99. package/src/internal/version.ts +1 -1
@@ -427,6 +427,7 @@ export declare const all: <const Arg extends Iterable<Effect<any, any, any>> | R
427
427
  readonly batching?: boolean | "inherit" | undefined;
428
428
  readonly discard?: boolean | undefined;
429
429
  readonly mode?: "default" | "validate" | "either" | undefined;
430
+ readonly concurrentFinalizers?: boolean | undefined;
430
431
  }>(arg: Arg, options?: O) => All.Return<Arg, O>;
431
432
  /**
432
433
  * Data-last variant of `Effect.all`.
@@ -443,6 +444,7 @@ export declare const allWith: <O extends {
443
444
  readonly batching?: boolean | "inherit" | undefined;
444
445
  readonly discard?: boolean | undefined;
445
446
  readonly mode?: "default" | "validate" | "either" | undefined;
447
+ readonly concurrentFinalizers?: boolean | undefined;
446
448
  }>(options?: O) => <const Arg extends Iterable<Effect<any, any, any>> | Record<string, Effect<any, any, any>>>(arg: Arg) => All.Return<Arg, O>;
447
449
  /**
448
450
  * @since 2.0.0
@@ -516,6 +518,7 @@ export declare namespace All {
516
518
  readonly batching?: boolean | "inherit" | undefined;
517
519
  readonly discard?: boolean | undefined;
518
520
  readonly mode?: "default" | "validate" | "either" | undefined;
521
+ readonly concurrentFinalizers?: boolean | undefined;
519
522
  }> = [Arg] extends [ReadonlyArray<EffectAny>] ? ReturnTuple<Arg, IsDiscard<O>, ExtractMode<O>> : [Arg] extends [Iterable<EffectAny>] ? ReturnIterable<Arg, IsDiscard<O>, ExtractMode<O>> : [Arg] extends [Record<string, EffectAny>] ? ReturnObject<Arg, IsDiscard<O>, ExtractMode<O>> : never;
520
523
  }
521
524
  /**
@@ -528,6 +531,7 @@ export declare namespace All {
528
531
  export declare const allSuccesses: <X extends Effect<any, any, any>>(elements: Iterable<X>, options?: {
529
532
  readonly concurrency?: Concurrency | undefined;
530
533
  readonly batching?: boolean | "inherit" | undefined;
534
+ readonly concurrentFinalizers?: boolean | undefined;
531
535
  } | undefined) => Effect<Array<Effect.Success<X>>, never, Effect.Context<X>>;
532
536
  /**
533
537
  * Drops all elements until the effectful predicate returns true.
@@ -571,10 +575,12 @@ export declare const exists: {
571
575
  <A, E, R>(f: (a: A, i: number) => Effect<boolean, E, R>, options?: {
572
576
  readonly concurrency?: Concurrency | undefined;
573
577
  readonly batching?: boolean | "inherit" | undefined;
578
+ readonly concurrentFinalizers?: boolean | undefined;
574
579
  } | undefined): (elements: Iterable<A>) => Effect<boolean, E, R>;
575
580
  <A, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<boolean, E, R>, options?: {
576
581
  readonly concurrency?: Concurrency | undefined;
577
582
  readonly batching?: boolean | "inherit" | undefined;
583
+ readonly concurrentFinalizers?: boolean | undefined;
578
584
  } | undefined): Effect<boolean, E, R>;
579
585
  };
580
586
  /**
@@ -588,11 +594,13 @@ export declare const filter: {
588
594
  readonly concurrency?: Concurrency | undefined;
589
595
  readonly batching?: boolean | "inherit" | undefined;
590
596
  readonly negate?: boolean | undefined;
597
+ readonly concurrentFinalizers?: boolean | undefined;
591
598
  } | undefined): (elements: Iterable<A>) => Effect<Array<A>, E, R>;
592
599
  <A, E, R>(elements: Iterable<A>, f: (a: NoInfer<A>, i: number) => Effect<boolean, E, R>, options?: {
593
600
  readonly concurrency?: Concurrency | undefined;
594
601
  readonly batching?: boolean | "inherit" | undefined;
595
602
  readonly negate?: boolean | undefined;
603
+ readonly concurrentFinalizers?: boolean | undefined;
596
604
  } | undefined): Effect<Array<A>, E, R>;
597
605
  };
598
606
  /**
@@ -644,21 +652,25 @@ export declare const forEach: {
644
652
  readonly concurrency?: Concurrency | undefined;
645
653
  readonly batching?: boolean | "inherit" | undefined;
646
654
  readonly discard?: false | undefined;
655
+ readonly concurrentFinalizers?: boolean | undefined;
647
656
  } | undefined): (self: S) => Effect<RA.ReadonlyArray.With<S, B>, E, R>;
648
657
  <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options: {
649
658
  readonly concurrency?: Concurrency | undefined;
650
659
  readonly batching?: boolean | "inherit" | undefined;
651
660
  readonly discard: true;
661
+ readonly concurrentFinalizers?: boolean | undefined;
652
662
  }): (self: Iterable<A>) => Effect<void, E, R>;
653
663
  <B, E, R, S extends Iterable<any>>(self: S, f: (a: RA.ReadonlyArray.Infer<S>, i: number) => Effect<B, E, R>, options?: {
654
664
  readonly concurrency?: Concurrency | undefined;
655
665
  readonly batching?: boolean | "inherit" | undefined;
656
666
  readonly discard?: false | undefined;
667
+ readonly concurrentFinalizers?: boolean | undefined;
657
668
  } | undefined): Effect<RA.ReadonlyArray.With<S, B>, E, R>;
658
669
  <A, B, E, R>(self: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options: {
659
670
  readonly concurrency?: Concurrency | undefined;
660
671
  readonly batching?: boolean | "inherit" | undefined;
661
672
  readonly discard: true;
673
+ readonly concurrentFinalizers?: boolean | undefined;
662
674
  }): Effect<void, E, R>;
663
675
  };
664
676
  /**
@@ -680,10 +692,12 @@ export declare const mergeAll: {
680
692
  <Z, Eff extends Effect<any, any, any>>(zero: Z, f: (z: Z, a: Effect.Success<Eff>, i: number) => Z, options?: {
681
693
  readonly concurrency?: Concurrency | undefined;
682
694
  readonly batching?: boolean | "inherit" | undefined;
695
+ readonly concurrentFinalizers?: boolean | undefined;
683
696
  } | undefined): (elements: Iterable<Eff>) => Effect<Z, Effect.Error<Eff>, Effect.Context<Eff>>;
684
697
  <Eff extends Effect<any, any, any>, Z>(elements: Iterable<Eff>, zero: Z, f: (z: Z, a: Effect.Success<Eff>, i: number) => Z, options?: {
685
698
  readonly concurrency?: Concurrency | undefined;
686
699
  readonly batching?: boolean | "inherit" | undefined;
700
+ readonly concurrentFinalizers?: boolean | undefined;
687
701
  } | undefined): Effect<Z, Effect.Error<Eff>, Effect.Context<Eff>>;
688
702
  };
689
703
  /**
@@ -697,10 +711,12 @@ export declare const partition: {
697
711
  <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options?: {
698
712
  readonly concurrency?: Concurrency | undefined;
699
713
  readonly batching?: boolean | "inherit" | undefined;
714
+ readonly concurrentFinalizers?: boolean | undefined;
700
715
  } | undefined): (elements: Iterable<A>) => Effect<[excluded: Array<E>, satisfying: Array<B>], never, R>;
701
716
  <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options?: {
702
717
  readonly concurrency?: Concurrency | undefined;
703
718
  readonly batching?: boolean | "inherit" | undefined;
719
+ readonly concurrentFinalizers?: boolean | undefined;
704
720
  } | undefined): Effect<[excluded: Array<E>, satisfying: Array<B>], never, R>;
705
721
  };
706
722
  /**
@@ -724,10 +740,12 @@ export declare const reduceEffect: {
724
740
  <Z, E, R, Eff extends Effect<any, any, any>>(zero: Effect<Z, E, R>, f: (acc: NoInfer<Z>, a: Effect.Success<Eff>, i: number) => Z, options?: {
725
741
  readonly concurrency?: Concurrency | undefined;
726
742
  readonly batching?: boolean | "inherit" | undefined;
743
+ readonly concurrentFinalizers?: boolean | undefined;
727
744
  } | undefined): (elements: Iterable<Eff>) => Effect<Z, E | Effect.Error<Eff>, R | Effect.Context<Eff>>;
728
745
  <Eff extends Effect<any, any, any>, Z, E, R>(elements: Iterable<Eff>, zero: Effect<Z, E, R>, f: (acc: NoInfer<Z>, a: Effect.Success<Eff>, i: number) => Z, options?: {
729
746
  readonly concurrency?: Concurrency | undefined;
730
747
  readonly batching?: boolean | "inherit" | undefined;
748
+ readonly concurrentFinalizers?: boolean | undefined;
731
749
  } | undefined): Effect<Z, E | Effect.Error<Eff>, R | Effect.Context<Eff>>;
732
750
  };
733
751
  /**
@@ -779,21 +797,25 @@ export declare const replicateEffect: {
779
797
  readonly concurrency?: Concurrency | undefined;
780
798
  readonly batching?: boolean | "inherit" | undefined;
781
799
  readonly discard?: false | undefined;
800
+ readonly concurrentFinalizers?: boolean | undefined;
782
801
  }): <A, E, R>(self: Effect<A, E, R>) => Effect<Array<A>, E, R>;
783
802
  (n: number, options: {
784
803
  readonly concurrency?: Concurrency | undefined;
785
804
  readonly batching?: boolean | "inherit" | undefined;
786
805
  readonly discard: true;
806
+ readonly concurrentFinalizers?: boolean | undefined;
787
807
  }): <A, E, R>(self: Effect<A, E, R>) => Effect<void, E, R>;
788
808
  <A, E, R>(self: Effect<A, E, R>, n: number, options?: {
789
809
  readonly concurrency?: Concurrency | undefined;
790
810
  readonly batching?: boolean | "inherit" | undefined;
791
811
  readonly discard?: false | undefined;
812
+ readonly concurrentFinalizers?: boolean | undefined;
792
813
  }): Effect<Array<A>, E, R>;
793
814
  <A, E, R>(self: Effect<A, E, R>, n: number, options: {
794
815
  readonly concurrency?: Concurrency | undefined;
795
816
  readonly batching?: boolean | "inherit" | undefined;
796
817
  readonly discard: true;
818
+ readonly concurrentFinalizers?: boolean | undefined;
797
819
  }): Effect<void, E, R>;
798
820
  };
799
821
  /**
@@ -831,21 +853,25 @@ export declare const validateAll: {
831
853
  readonly concurrency?: Concurrency | undefined;
832
854
  readonly batching?: boolean | "inherit" | undefined;
833
855
  readonly discard?: false | undefined;
856
+ readonly concurrentFinalizers?: boolean | undefined;
834
857
  } | undefined): (elements: Iterable<A>) => Effect<Array<B>, Array<E>, R>;
835
858
  <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options: {
836
859
  readonly concurrency?: Concurrency | undefined;
837
860
  readonly batching?: boolean | "inherit" | undefined;
838
861
  readonly discard: true;
862
+ readonly concurrentFinalizers?: boolean | undefined;
839
863
  }): (elements: Iterable<A>) => Effect<void, Array<E>, R>;
840
864
  <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options?: {
841
865
  readonly concurrency?: Concurrency | undefined;
842
866
  readonly batching?: boolean | "inherit" | undefined;
843
867
  readonly discard?: false | undefined;
868
+ readonly concurrentFinalizers?: boolean | undefined;
844
869
  } | undefined): Effect<Array<B>, Array<E>, R>;
845
870
  <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options: {
846
871
  readonly concurrency?: Concurrency | undefined;
847
872
  readonly batching?: boolean | "inherit" | undefined;
848
873
  readonly discard: true;
874
+ readonly concurrentFinalizers?: boolean | undefined;
849
875
  }): Effect<void, Array<E>, R>;
850
876
  };
851
877
  /**
@@ -872,10 +898,12 @@ export declare const validateFirst: {
872
898
  <A, B, E, R>(f: (a: A, i: number) => Effect<B, E, R>, options?: {
873
899
  readonly concurrency?: Concurrency | undefined;
874
900
  readonly batching?: boolean | "inherit" | undefined;
901
+ readonly concurrentFinalizers?: boolean | undefined;
875
902
  } | undefined): (elements: Iterable<A>) => Effect<B, Array<E>, R>;
876
903
  <A, B, E, R>(elements: Iterable<A>, f: (a: A, i: number) => Effect<B, E, R>, options?: {
877
904
  readonly concurrency?: Concurrency | undefined;
878
905
  readonly batching?: boolean | "inherit" | undefined;
906
+ readonly concurrentFinalizers?: boolean | undefined;
879
907
  } | undefined): Effect<B, Array<E>, R>;
880
908
  };
881
909
  /**
@@ -2592,6 +2620,50 @@ export declare const bind: {
2592
2620
  [K in N | keyof A]: K extends keyof A ? A[K] : B;
2593
2621
  }, E1 | E2, R1 | R2>;
2594
2622
  };
2623
+ /**
2624
+ * `bindAll` combines `Effect.all` with `Effect.bind`. It is useful
2625
+ * when you want to concurrently run multiple effects and then combine their
2626
+ * results in a Do notation pipeline.
2627
+ *
2628
+ * @example
2629
+ * import { Effect, Either, pipe } from "effect"
2630
+ *
2631
+ * const result = pipe(
2632
+ * Effect.Do,
2633
+ * Effect.bind("x", () => Effect.succeed(2)),
2634
+ * Effect.bindAll(({ x }) => ({
2635
+ * a: Effect.succeed(x),
2636
+ * b: Effect.fail("oops"),
2637
+ * }), { concurrency: 2, mode: "either" })
2638
+ * )
2639
+ * assert.deepStrictEqual(Effect.runSync(result), { x: 2, a: Either.right(2), b: Either.left("oops") })
2640
+ *
2641
+ * @category do notation
2642
+ * @since 3.7.0
2643
+ */
2644
+ export declare const bindAll: {
2645
+ <A extends object, X extends Record<string, Effect<any, any, any>>, O extends {
2646
+ readonly concurrency?: Concurrency | undefined;
2647
+ readonly batching?: boolean | "inherit" | undefined;
2648
+ readonly mode?: "default" | "validate" | "either" | undefined;
2649
+ readonly concurrentFinalizers?: boolean | undefined;
2650
+ }>(f: (a: A) => [Extract<keyof X, keyof A>] extends [never] ? X : `Duplicate keys`, options?: undefined | O): <E1, R1>(self: Effect<A, E1, R1>) => [All.ReturnObject<X, false, All.ExtractMode<O>>] extends [Effect<infer Success, infer Error, infer Context>] ? Effect<{
2651
+ [K in keyof A | keyof Success]: K extends keyof A ? A[K] : K extends keyof Success ? Success[K] : never;
2652
+ }, E1 | Error, R1 | Context> : never;
2653
+ <A extends object, X extends Record<string, Effect<any, any, any>>, O extends {
2654
+ readonly concurrency?: Concurrency | undefined;
2655
+ readonly batching?: boolean | "inherit" | undefined;
2656
+ readonly mode?: "default" | "validate" | "either" | undefined;
2657
+ readonly concurrentFinalizers?: boolean | undefined;
2658
+ }, E1, R1>(self: Effect<A, E1, R1>, f: (a: A) => [Extract<keyof X, keyof A>] extends [never] ? X : `Duplicate keys`, options?: undefined | {
2659
+ readonly concurrency?: Concurrency | undefined;
2660
+ readonly batching?: boolean | "inherit" | undefined;
2661
+ readonly mode?: "default" | "validate" | "either" | undefined;
2662
+ readonly concurrentFinalizers?: boolean | undefined;
2663
+ }): [All.ReturnObject<X, false, All.ExtractMode<O>>] extends [Effect<infer Success, infer Error, infer Context>] ? Effect<{
2664
+ [K in keyof A | keyof Success]: K extends keyof A ? A[K] : K extends keyof Success ? Success[K] : never;
2665
+ }, E1 | Error, R1 | Context> : never;
2666
+ };
2595
2667
  /**
2596
2668
  * The "do simulation" in Effect allows you to write code in a more declarative style, similar to the "do notation" in other programming languages. It provides a way to define variables and perform operations on them using functions like `bind` and `let`.
2597
2669
  *
@@ -4065,16 +4137,14 @@ export declare const runSyncExit: <A, E>(effect: Effect<A, E>) => Exit.Exit<A, E
4065
4137
  */
4066
4138
  export declare const validate: {
4067
4139
  <B, E1, R1>(that: Effect<B, E1, R1>, options?: {
4068
- /**
4069
- * @since 2.0.0
4070
- * @category supervision & fibers
4071
- */
4072
4140
  readonly concurrent?: boolean | undefined;
4073
4141
  readonly batching?: boolean | "inherit" | undefined;
4142
+ readonly concurrentFinalizers?: boolean | undefined;
4074
4143
  } | undefined): <A, E, R>(self: Effect<A, E, R>) => Effect<[A, B], E1 | E, R1 | R>;
4075
4144
  <A, E, R, B, E1, R1>(self: Effect<A, E, R>, that: Effect<B, E1, R1>, options?: {
4076
4145
  readonly concurrent?: boolean | undefined;
4077
4146
  readonly batching?: boolean | "inherit" | undefined;
4147
+ readonly concurrentFinalizers?: boolean | undefined;
4078
4148
  } | undefined): Effect<[A, B], E | E1, R | R1>;
4079
4149
  };
4080
4150
  /**
@@ -4088,10 +4158,12 @@ export declare const validateWith: {
4088
4158
  <B, E1, R1, A, C>(that: Effect<B, E1, R1>, f: (a: A, b: B) => C, options?: {
4089
4159
  readonly concurrent?: boolean | undefined;
4090
4160
  readonly batching?: boolean | "inherit" | undefined;
4161
+ readonly concurrentFinalizers?: boolean | undefined;
4091
4162
  } | undefined): <E, R>(self: Effect<A, E, R>) => Effect<C, E1 | E, R1 | R>;
4092
4163
  <A, E, R, B, E1, R1, C>(self: Effect<A, E, R>, that: Effect<B, E1, R1>, f: (a: A, b: B) => C, options?: {
4093
4164
  readonly concurrent?: boolean | undefined;
4094
4165
  readonly batching?: boolean | "inherit" | undefined;
4166
+ readonly concurrentFinalizers?: boolean | undefined;
4095
4167
  } | undefined): Effect<C, E | E1, R | R1>;
4096
4168
  };
4097
4169
  /**
@@ -4151,10 +4223,12 @@ export declare const zip: {
4151
4223
  <A2, E2, R2>(that: Effect<A2, E2, R2>, options?: {
4152
4224
  readonly concurrent?: boolean | undefined;
4153
4225
  readonly batching?: boolean | "inherit" | undefined;
4226
+ readonly concurrentFinalizers?: boolean | undefined;
4154
4227
  } | undefined): <A, E, R>(self: Effect<A, E, R>) => Effect<[A, A2], E2 | E, R2 | R>;
4155
4228
  <A, E, R, A2, E2, R2>(self: Effect<A, E, R>, that: Effect<A2, E2, R2>, options?: {
4156
4229
  readonly concurrent?: boolean | undefined;
4157
4230
  readonly batching?: boolean | "inherit" | undefined;
4231
+ readonly concurrentFinalizers?: boolean | undefined;
4158
4232
  } | undefined): Effect<[A, A2], E | E2, R | R2>;
4159
4233
  };
4160
4234
  /**
@@ -4181,10 +4255,12 @@ export declare const zipLeft: {
4181
4255
  <A2, E2, R2>(that: Effect<A2, E2, R2>, options?: {
4182
4256
  readonly concurrent?: boolean | undefined;
4183
4257
  readonly batching?: boolean | "inherit" | undefined;
4258
+ readonly concurrentFinalizers?: boolean | undefined;
4184
4259
  } | undefined): <A, E, R>(self: Effect<A, E, R>) => Effect<A, E2 | E, R2 | R>;
4185
4260
  <A, E, R, A2, E2, R2>(self: Effect<A, E, R>, that: Effect<A2, E2, R2>, options?: {
4186
4261
  readonly concurrent?: boolean | undefined;
4187
4262
  readonly batching?: boolean | "inherit" | undefined;
4263
+ readonly concurrentFinalizers?: boolean | undefined;
4188
4264
  } | undefined): Effect<A, E | E2, R | R2>;
4189
4265
  };
4190
4266
  /**
@@ -4211,10 +4287,12 @@ export declare const zipRight: {
4211
4287
  <A2, E2, R2>(that: Effect<A2, E2, R2>, options?: {
4212
4288
  readonly concurrent?: boolean | undefined;
4213
4289
  readonly batching?: boolean | "inherit" | undefined;
4290
+ readonly concurrentFinalizers?: boolean | undefined;
4214
4291
  }): <A, E, R>(self: Effect<A, E, R>) => Effect<A2, E2 | E, R2 | R>;
4215
4292
  <A, E, R, A2, E2, R2>(self: Effect<A, E, R>, that: Effect<A2, E2, R2>, options?: {
4216
4293
  readonly concurrent?: boolean | undefined;
4217
4294
  readonly batching?: boolean | "inherit" | undefined;
4295
+ readonly concurrentFinalizers?: boolean | undefined;
4218
4296
  }): Effect<A2, E2 | E, R2 | R>;
4219
4297
  };
4220
4298
  /**
@@ -4254,10 +4332,12 @@ export declare const zipWith: {
4254
4332
  <A2, E2, R2, A, B>(that: Effect<A2, E2, R2>, f: (a: A, b: A2) => B, options?: {
4255
4333
  readonly concurrent?: boolean | undefined;
4256
4334
  readonly batching?: boolean | "inherit" | undefined;
4335
+ readonly concurrentFinalizers?: boolean | undefined;
4257
4336
  }): <E, R>(self: Effect<A, E, R>) => Effect<B, E2 | E, R2 | R>;
4258
4337
  <A, E, R, A2, E2, R2, B>(self: Effect<A, E, R>, that: Effect<A2, E2, R2>, f: (a: A, b: A2) => B, options?: {
4259
4338
  readonly concurrent?: boolean | undefined;
4260
4339
  readonly batching?: boolean | "inherit" | undefined;
4340
+ readonly concurrentFinalizers?: boolean | undefined;
4261
4341
  }): Effect<B, E2 | E, R2 | R>;
4262
4342
  };
4263
4343
  /**