effect 2.2.0 → 2.2.1

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 (110) hide show
  1. package/dist/cjs/Cause.js.map +1 -1
  2. package/dist/cjs/Effect.js.map +1 -1
  3. package/dist/cjs/Either.js +1 -1
  4. package/dist/cjs/Either.js.map +1 -1
  5. package/dist/cjs/Exit.js.map +1 -1
  6. package/dist/cjs/HashMap.js.map +1 -1
  7. package/dist/cjs/HashSet.js.map +1 -1
  8. package/dist/cjs/List.js.map +1 -1
  9. package/dist/cjs/ReadonlyArray.js.map +1 -1
  10. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  11. package/dist/cjs/STM.js.map +1 -1
  12. package/dist/cjs/internal/cause.js.map +1 -1
  13. package/dist/cjs/internal/core-effect.js +7 -7
  14. package/dist/cjs/internal/core-effect.js.map +1 -1
  15. package/dist/cjs/internal/core.js +1 -1
  16. package/dist/cjs/internal/core.js.map +1 -1
  17. package/dist/cjs/internal/groupBy.js.map +1 -1
  18. package/dist/cjs/internal/hashMap.js.map +1 -1
  19. package/dist/cjs/internal/hashSet.js.map +1 -1
  20. package/dist/cjs/internal/stm/stm.js.map +1 -1
  21. package/dist/cjs/internal/stream.js +1 -4
  22. package/dist/cjs/internal/stream.js.map +1 -1
  23. package/dist/cjs/internal/trie.js.map +1 -1
  24. package/dist/cjs/internal/version.js +1 -1
  25. package/dist/dts/Cause.d.ts +6 -4
  26. package/dist/dts/Cause.d.ts.map +1 -1
  27. package/dist/dts/Chunk.d.ts +16 -16
  28. package/dist/dts/Chunk.d.ts.map +1 -1
  29. package/dist/dts/Effect.d.ts +31 -31
  30. package/dist/dts/Effect.d.ts.map +1 -1
  31. package/dist/dts/Either.d.ts +9 -9
  32. package/dist/dts/Either.d.ts.map +1 -1
  33. package/dist/dts/Exit.d.ts +3 -2
  34. package/dist/dts/Exit.d.ts.map +1 -1
  35. package/dist/dts/GroupBy.d.ts +6 -6
  36. package/dist/dts/GroupBy.d.ts.map +1 -1
  37. package/dist/dts/HashMap.d.ts +5 -4
  38. package/dist/dts/HashMap.d.ts.map +1 -1
  39. package/dist/dts/HashSet.d.ts +6 -5
  40. package/dist/dts/HashSet.d.ts.map +1 -1
  41. package/dist/dts/List.d.ts +9 -8
  42. package/dist/dts/List.d.ts.map +1 -1
  43. package/dist/dts/Option.d.ts +7 -7
  44. package/dist/dts/Option.d.ts.map +1 -1
  45. package/dist/dts/ReadonlyArray.d.ts +25 -23
  46. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  47. package/dist/dts/ReadonlyRecord.d.ts +5 -4
  48. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  49. package/dist/dts/STM.d.ts +28 -26
  50. package/dist/dts/STM.d.ts.map +1 -1
  51. package/dist/dts/SortedSet.d.ts +3 -3
  52. package/dist/dts/SortedSet.d.ts.map +1 -1
  53. package/dist/dts/Stream.d.ts +37 -37
  54. package/dist/dts/Stream.d.ts.map +1 -1
  55. package/dist/dts/Trie.d.ts +4 -4
  56. package/dist/dts/Trie.d.ts.map +1 -1
  57. package/dist/dts/internal/hashMap.d.ts.map +1 -1
  58. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  59. package/dist/dts/internal/version.d.ts +1 -1
  60. package/dist/esm/Cause.js.map +1 -1
  61. package/dist/esm/Effect.js.map +1 -1
  62. package/dist/esm/Either.js +1 -1
  63. package/dist/esm/Either.js.map +1 -1
  64. package/dist/esm/Exit.js.map +1 -1
  65. package/dist/esm/HashMap.js.map +1 -1
  66. package/dist/esm/HashSet.js.map +1 -1
  67. package/dist/esm/List.js.map +1 -1
  68. package/dist/esm/ReadonlyArray.js.map +1 -1
  69. package/dist/esm/ReadonlyRecord.js.map +1 -1
  70. package/dist/esm/STM.js.map +1 -1
  71. package/dist/esm/internal/cause.js.map +1 -1
  72. package/dist/esm/internal/core-effect.js +7 -7
  73. package/dist/esm/internal/core-effect.js.map +1 -1
  74. package/dist/esm/internal/core.js +1 -1
  75. package/dist/esm/internal/core.js.map +1 -1
  76. package/dist/esm/internal/groupBy.js.map +1 -1
  77. package/dist/esm/internal/hashMap.js.map +1 -1
  78. package/dist/esm/internal/hashSet.js.map +1 -1
  79. package/dist/esm/internal/stm/stm.js.map +1 -1
  80. package/dist/esm/internal/stream.js +1 -4
  81. package/dist/esm/internal/stream.js.map +1 -1
  82. package/dist/esm/internal/trie.js.map +1 -1
  83. package/dist/esm/internal/version.js +1 -1
  84. package/package.json +1 -1
  85. package/src/Cause.ts +6 -4
  86. package/src/Chunk.ts +20 -20
  87. package/src/Effect.ts +67 -72
  88. package/src/Either.ts +17 -21
  89. package/src/Exit.ts +3 -2
  90. package/src/GroupBy.ts +6 -6
  91. package/src/HashMap.ts +5 -4
  92. package/src/HashSet.ts +8 -7
  93. package/src/List.ts +11 -10
  94. package/src/Option.ts +8 -8
  95. package/src/ReadonlyArray.ts +44 -38
  96. package/src/ReadonlyRecord.ts +13 -10
  97. package/src/STM.ts +47 -46
  98. package/src/SortedSet.ts +5 -5
  99. package/src/Stream.ts +51 -51
  100. package/src/Trie.ts +4 -4
  101. package/src/internal/cause.ts +16 -7
  102. package/src/internal/core-effect.ts +160 -162
  103. package/src/internal/core.ts +30 -34
  104. package/src/internal/groupBy.ts +2 -1
  105. package/src/internal/hashMap.ts +5 -4
  106. package/src/internal/hashSet.ts +9 -8
  107. package/src/internal/stm/stm.ts +104 -124
  108. package/src/internal/stream.ts +106 -97
  109. package/src/internal/trie.ts +3 -2
  110. package/src/internal/version.ts +1 -1
package/src/STM.ts CHANGED
@@ -14,7 +14,7 @@ import * as stm from "./internal/stm/stm.js"
14
14
  import type * as Option from "./Option.js"
15
15
  import type { Pipeable } from "./Pipeable.js"
16
16
  import type { Predicate, Refinement } from "./Predicate.js"
17
- import type * as Types from "./Types.js"
17
+ import type { Covariant, NoInfer } from "./Types.js"
18
18
  import type * as Unify from "./Unify.js"
19
19
 
20
20
  /**
@@ -140,9 +140,9 @@ export declare namespace STM {
140
140
  */
141
141
  export interface Variance<out R, out E, out A> {
142
142
  readonly [STMTypeId]: {
143
- readonly _R: Types.Covariant<R>
144
- readonly _E: Types.Covariant<E>
145
- readonly _A: Types.Covariant<A>
143
+ readonly _R: Covariant<R>
144
+ readonly _E: Covariant<E>
145
+ readonly _A: Covariant<A>
146
146
  }
147
147
  }
148
148
  }
@@ -550,7 +550,7 @@ export const eventually: <R, E, A>(self: STM<R, E, A>) => STM<R, E, A> = stm.eve
550
550
  * @category constructors
551
551
  */
552
552
  export const every: {
553
- <A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
553
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
554
554
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>
555
555
  } = stm.every
556
556
 
@@ -562,7 +562,7 @@ export const every: {
562
562
  * @category constructors
563
563
  */
564
564
  export const exists: {
565
- <A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
565
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, boolean>
566
566
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, boolean>
567
567
  } = stm.exists
568
568
 
@@ -597,7 +597,7 @@ export const fiberId: STM<never, never, FiberId.FiberId> = stm.fiberId
597
597
  * @category constructors
598
598
  */
599
599
  export const filter: {
600
- <A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
600
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
601
601
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>
602
602
  } = stm.filter
603
603
 
@@ -609,7 +609,7 @@ export const filter: {
609
609
  * @category constructors
610
610
  */
611
611
  export const filterNot: {
612
- <A, R, E>(predicate: (a: A) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
612
+ <A, R, E>(predicate: (a: NoInfer<A>) => STM<R, E, boolean>): (iterable: Iterable<A>) => STM<R, E, Array<A>>
613
613
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM<R, E, boolean>): STM<R, E, Array<A>>
614
614
  } = stm.filterNot
615
615
 
@@ -620,10 +620,13 @@ export const filterNot: {
620
620
  * @category filtering
621
621
  */
622
622
  export const filterOrDie: {
623
- <A, B extends A>(refinement: Refinement<A, B>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
624
- <A, X extends A>(predicate: Predicate<X>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
623
+ <A, B extends A>(
624
+ refinement: Refinement<NoInfer<A>, B>,
625
+ defect: LazyArg<unknown>
626
+ ): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
627
+ <A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
625
628
  <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<R, E, B>
626
- <R, E, A, X extends A>(self: STM<R, E, A>, predicate: Predicate<X>, defect: LazyArg<unknown>): STM<R, E, A>
629
+ <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<R, E, A>
627
630
  } = stm.filterOrDie
628
631
 
629
632
  /**
@@ -634,10 +637,10 @@ export const filterOrDie: {
634
637
  * @category filtering
635
638
  */
636
639
  export const filterOrDieMessage: {
637
- <A, B extends A>(refinement: Refinement<A, B>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
638
- <A, X extends A>(predicate: Predicate<X>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
640
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
641
+ <A>(predicate: Predicate<NoInfer<A>>, message: string): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
639
642
  <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>, message: string): STM<R, E, B>
640
- <R, E, A, X extends A>(self: STM<R, E, A>, predicate: Predicate<X>, message: string): STM<R, E, A>
643
+ <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>, message: string): STM<R, E, A>
641
644
  } = stm.filterOrDieMessage
642
645
 
643
646
  /**
@@ -647,24 +650,24 @@ export const filterOrDieMessage: {
647
650
  * @category filtering
648
651
  */
649
652
  export const filterOrElse: {
650
- <A, B extends A, X extends A, R2, E2, A2>(
651
- refinement: Refinement<A, B>,
652
- orElse: (a: X) => STM<R2, E2, A2>
653
- ): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, B | A2>
654
- <A, X extends A, Y extends A, R2, E2, A2>(
655
- predicate: Predicate<X>,
656
- orElse: (a: Y) => STM<R2, E2, A2>
657
- ): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A | A2>
658
- <R, E, A, B extends A, X extends A, R2, E2, A2>(
653
+ <A, B extends A, R2, E2, C>(
654
+ refinement: Refinement<NoInfer<A>, B>,
655
+ orElse: (a: NoInfer<A>) => STM<R2, E2, C>
656
+ ): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, B | C>
657
+ <A, R2, E2, B>(
658
+ predicate: Predicate<NoInfer<A>>,
659
+ orElse: (a: NoInfer<A>) => STM<R2, E2, B>
660
+ ): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A | B>
661
+ <R, E, A, B extends A, R2, E2, C>(
659
662
  self: STM<R, E, A>,
660
663
  refinement: Refinement<A, B>,
661
- orElse: (a: X) => STM<R2, E2, A2>
662
- ): STM<R | R2, E | E2, B | A2>
663
- <R, E, A, X extends A, Y extends A, R2, E2, A2>(
664
+ orElse: (a: A) => STM<R2, E2, C>
665
+ ): STM<R | R2, E | E2, B | C>
666
+ <R, E, A, R2, E2, B>(
664
667
  self: STM<R, E, A>,
665
- predicate: Predicate<X>,
666
- orElse: (a: Y) => STM<R2, E2, A2>
667
- ): STM<R | R2, E | E2, A | A2>
668
+ predicate: Predicate<A>,
669
+ orElse: (a: A) => STM<R2, E2, B>
670
+ ): STM<R | R2, E | E2, A | B>
668
671
  } = stm.filterOrElse
669
672
 
670
673
  /**
@@ -674,24 +677,20 @@ export const filterOrElse: {
674
677
  * @category filtering
675
678
  */
676
679
  export const filterOrFail: {
677
- <A, B extends A, X extends A, E2>(
678
- refinement: Refinement<A, B>,
679
- orFailWith: (a: X) => E2
680
+ <A, B extends A, E2>(
681
+ refinement: Refinement<NoInfer<A>, B>,
682
+ orFailWith: (a: NoInfer<A>) => E2
680
683
  ): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, B>
681
- <A, X extends A, Y extends A, E2>(
682
- predicate: Predicate<X>,
683
- orFailWith: (a: Y) => E2
684
+ <A, E2>(
685
+ predicate: Predicate<NoInfer<A>>,
686
+ orFailWith: (a: NoInfer<A>) => E2
684
687
  ): <R, E>(self: STM<R, E, A>) => STM<R, E2 | E, A>
685
- <R, E, A, B extends A, X extends A, E2>(
688
+ <R, E, A, B extends A, E2>(
686
689
  self: STM<R, E, A>,
687
690
  refinement: Refinement<A, B>,
688
- orFailWith: (a: X) => E2
691
+ orFailWith: (a: A) => E2
689
692
  ): STM<R, E | E2, B>
690
- <R, E, A, X extends A, Y extends A, E2>(
691
- self: STM<R, E, A>,
692
- predicate: Predicate<X>,
693
- orFailWith: (a: Y) => E2
694
- ): STM<R, E | E2, A>
693
+ <R, E, A, E2>(self: STM<R, E, A>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<R, E | E2, A>
695
694
  } = stm.filterOrFail
696
695
 
697
696
  /**
@@ -1723,7 +1722,9 @@ export const retry: STM<never, never, never> = core.retry
1723
1722
  * @category mutations
1724
1723
  */
1725
1724
  export const retryUntil: {
1725
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: STM<R, E, A>) => STM<R, E, B>
1726
1726
  <A>(predicate: Predicate<A>): <R, E>(self: STM<R, E, A>) => STM<R, E, A>
1727
+ <R, E, A, B extends A>(self: STM<R, E, A>, refinement: Refinement<A, B>): STM<R, E, B>
1727
1728
  <R, E, A>(self: STM<R, E, A>, predicate: Predicate<A>): STM<R, E, A>
1728
1729
  } = stm.retryUntil
1729
1730
 
@@ -1817,8 +1818,8 @@ export const sync: <A>(evaluate: () => A) => STM<never, never, A> = core.sync
1817
1818
  * @category sequencing
1818
1819
  */
1819
1820
  export const tap: {
1820
- <A, X extends A, R2, E2, _>(f: (a: X) => STM<R2, E2, _>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A>
1821
- <R, E, A, X extends A, R2, E2, _>(self: STM<R, E, A>, f: (a: X) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
1821
+ <A, R2, E2, _>(f: (a: A) => STM<R2, E2, _>): <R, E>(self: STM<R, E, A>) => STM<R2 | R, E2 | E, A>
1822
+ <R, E, A, R2, E2, _>(self: STM<R, E, A>, f: (a: A) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
1822
1823
  } = stm.tap
1823
1824
 
1824
1825
  /**
@@ -1850,8 +1851,8 @@ export const tapBoth: {
1850
1851
  * @category sequencing
1851
1852
  */
1852
1853
  export const tapError: {
1853
- <E, X extends E, R2, E2, _>(f: (error: X) => STM<R2, E2, _>): <R, A>(self: STM<R, E, A>) => STM<R2 | R, E | E2, A>
1854
- <R, A, E, X extends E, R2, E2, _>(self: STM<R, E, A>, f: (error: X) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
1854
+ <E, R2, E2, _>(f: (error: NoInfer<E>) => STM<R2, E2, _>): <R, A>(self: STM<R, E, A>) => STM<R2 | R, E | E2, A>
1855
+ <R, A, E, R2, E2, _>(self: STM<R, E, A>, f: (error: E) => STM<R2, E2, _>): STM<R | R2, E | E2, A>
1855
1856
  } = stm.tapError
1856
1857
 
1857
1858
  const try_: {
package/src/SortedSet.ts CHANGED
@@ -13,7 +13,7 @@ import { pipeArguments } from "./Pipeable.js"
13
13
  import type { Predicate } from "./Predicate.js"
14
14
  import { hasProperty } from "./Predicate.js"
15
15
  import * as RBT from "./RedBlackTree.js"
16
- import type * as Types from "./Types.js"
16
+ import type { Invariant, NoInfer } from "./Types.js"
17
17
 
18
18
  const TypeId: unique symbol = Symbol.for("effect/SortedSet")
19
19
 
@@ -29,7 +29,7 @@ export type TypeId = typeof TypeId
29
29
  */
30
30
  export interface SortedSet<in out A> extends Iterable<A>, Equal.Equal, Pipeable, Inspectable {
31
31
  readonly [TypeId]: {
32
- readonly _A: Types.Invariant<A>
32
+ readonly _A: Invariant<A>
33
33
  }
34
34
  /** @internal */
35
35
  readonly keyTree: RBT.RedBlackTree<A, boolean>
@@ -279,9 +279,9 @@ export const map: {
279
279
  * @category filtering
280
280
  */
281
281
  export const partition: {
282
- <B extends A, A = B>(
283
- predicate: (a: A) => boolean
284
- ): (self: SortedSet<B>) => [excluded: SortedSet<B>, satisfying: SortedSet<B>]
282
+ <A>(
283
+ predicate: (a: NoInfer<A>) => boolean
284
+ ): (self: SortedSet<A>) => [excluded: SortedSet<A>, satisfying: SortedSet<A>]
285
285
  <A>(self: SortedSet<A>, predicate: (a: A) => boolean): [excluded: SortedSet<A>, satisfying: SortedSet<A>]
286
286
  } = Dual.dual(
287
287
  2,
package/src/Stream.ts CHANGED
@@ -29,7 +29,7 @@ import type * as Emit from "./StreamEmit.js"
29
29
  import type * as HaltStrategy from "./StreamHaltStrategy.js"
30
30
  import type * as Take from "./Take.js"
31
31
  import type * as Tracer from "./Tracer.js"
32
- import type * as Types from "./Types.js"
32
+ import type { Covariant, NoInfer } from "./Types.js"
33
33
  import type * as Unify from "./Unify.js"
34
34
 
35
35
  /**
@@ -115,9 +115,9 @@ export declare namespace Stream {
115
115
  */
116
116
  export interface Variance<out R, out E, out A> {
117
117
  readonly [StreamTypeId]: {
118
- _R: Types.Covariant<R>
119
- _E: Types.Covariant<E>
120
- _A: Types.Covariant<A>
118
+ _R: Covariant<R>
119
+ _E: Covariant<E>
120
+ _A: Covariant<A>
121
121
  }
122
122
  }
123
123
 
@@ -995,7 +995,7 @@ export const dropRight: {
995
995
  * @category utils
996
996
  */
997
997
  export const dropUntil: {
998
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
998
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
999
999
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
1000
1000
  } = internal.dropUntil
1001
1001
 
@@ -1007,12 +1007,12 @@ export const dropUntil: {
1007
1007
  * @category utils
1008
1008
  */
1009
1009
  export const dropUntilEffect: {
1010
- <A, X extends A, R2, E2>(
1011
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1010
+ <A, R2, E2>(
1011
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1012
1012
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
1013
- <R, E, A, X extends A, R2, E2>(
1013
+ <R, E, A, R2, E2>(
1014
1014
  self: Stream<R, E, A>,
1015
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1015
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1016
1016
  ): Stream<R | R2, E | E2, A>
1017
1017
  } = internal.dropUntilEffect
1018
1018
 
@@ -1024,7 +1024,7 @@ export const dropUntilEffect: {
1024
1024
  * @category utils
1025
1025
  */
1026
1026
  export const dropWhile: {
1027
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
1027
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
1028
1028
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
1029
1029
  } = internal.dropWhile
1030
1030
 
@@ -1036,12 +1036,12 @@ export const dropWhile: {
1036
1036
  * @category utils
1037
1037
  */
1038
1038
  export const dropWhileEffect: {
1039
- <A, X extends A, R2, E2>(
1040
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1039
+ <A, R2, E2>(
1040
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1041
1041
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
1042
- <R, E, A, X extends A, R2, E2>(
1042
+ <R, E, A, R2, E2>(
1043
1043
  self: Stream<R, E, A>,
1044
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1044
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1045
1045
  ): Stream<R | R2, E | E2, A>
1046
1046
  } = internal.dropWhileEffect
1047
1047
 
@@ -1175,8 +1175,8 @@ export const failCauseSync: <E>(evaluate: LazyArg<Cause.Cause<E>>) => Stream<nev
1175
1175
  * @category filtering
1176
1176
  */
1177
1177
  export const filter: {
1178
- <A, B extends A>(refinement: Refinement<A, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
1179
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
1178
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
1179
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
1180
1180
  <R, E, A, B extends A>(self: Stream<R, E, A>, refinement: Refinement<A, B>): Stream<R, E, B>
1181
1181
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
1182
1182
  } = internal.filter
@@ -1188,12 +1188,12 @@ export const filter: {
1188
1188
  * @category filtering
1189
1189
  */
1190
1190
  export const filterEffect: {
1191
- <A, X extends A, R2, E2>(
1192
- f: (a: X) => Effect.Effect<R2, E2, boolean>
1191
+ <A, R2, E2>(
1192
+ f: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1193
1193
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
1194
- <R, E, A, X extends A, R2, E2>(
1194
+ <R, E, A, R2, E2>(
1195
1195
  self: Stream<R, E, A>,
1196
- f: (a: X) => Effect.Effect<R2, E2, boolean>
1196
+ f: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1197
1197
  ): Stream<R | R2, E | E2, A>
1198
1198
  } = internal.filterEffect
1199
1199
 
@@ -1270,8 +1270,8 @@ export const finalizer: <R, _>(finalizer: Effect.Effect<R, never, _>) => Stream<
1270
1270
  * @category elements
1271
1271
  */
1272
1272
  export const find: {
1273
- <A, B extends A>(refinement: Refinement<A, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
1274
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
1273
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
1274
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
1275
1275
  <R, E, A, B extends A>(self: Stream<R, E, A>, refinement: Refinement<A, B>): Stream<R, E, B>
1276
1276
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
1277
1277
  } = internal.find
@@ -1284,12 +1284,12 @@ export const find: {
1284
1284
  * @category elements
1285
1285
  */
1286
1286
  export const findEffect: {
1287
- <A, X extends A, R2, E2>(
1288
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1287
+ <A, R2, E2>(
1288
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1289
1289
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
1290
- <R, E, A, X extends A, R2, E2>(
1290
+ <R, E, A, R2, E2>(
1291
1291
  self: Stream<R, E, A>,
1292
- predicate: (a: X) => Effect.Effect<R2, E2, boolean>
1292
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
1293
1293
  ): Stream<R | R2, E | E2, A>
1294
1294
  } = internal.findEffect
1295
1295
 
@@ -2480,7 +2480,7 @@ export const paginateEffect: <S, R, E, A>(
2480
2480
  */
2481
2481
  export const partition: {
2482
2482
  <C extends A, B extends A, A = C>(
2483
- refinement: Refinement<A, B>,
2483
+ refinement: Refinement<NoInfer<A>, B>,
2484
2484
  options?: {
2485
2485
  bufferSize?: number | undefined
2486
2486
  }
@@ -2520,7 +2520,7 @@ export const partition: {
2520
2520
  */
2521
2521
  export const partitionEither: {
2522
2522
  <A, R2, E2, A2, A3>(
2523
- predicate: (a: A) => Effect.Effect<R2, E2, Either.Either<A2, A3>>,
2523
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, Either.Either<A2, A3>>,
2524
2524
  options?: {
2525
2525
  readonly bufferSize?: number | undefined
2526
2526
  }
@@ -3527,7 +3527,7 @@ export const someOrFail: {
3527
3527
  * @category utils
3528
3528
  */
3529
3529
  export const split: {
3530
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, Chunk.Chunk<B>>
3530
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, Chunk.Chunk<A>>
3531
3531
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, Chunk.Chunk<A>>
3532
3532
  } = internal.split
3533
3533
 
@@ -3605,7 +3605,7 @@ export const takeRight: {
3605
3605
  * @category utils
3606
3606
  */
3607
3607
  export const takeUntil: {
3608
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
3608
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
3609
3609
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
3610
3610
  } = internal.takeUntil
3611
3611
 
@@ -3618,7 +3618,7 @@ export const takeUntil: {
3618
3618
  */
3619
3619
  export const takeUntilEffect: {
3620
3620
  <A, R2, E2>(
3621
- predicate: (a: A) => Effect.Effect<R2, E2, boolean>
3621
+ predicate: (a: NoInfer<A>) => Effect.Effect<R2, E2, boolean>
3622
3622
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
3623
3623
  <R, E, A, R2, E2>(
3624
3624
  self: Stream<R, E, A>,
@@ -3634,8 +3634,8 @@ export const takeUntilEffect: {
3634
3634
  * @category utils
3635
3635
  */
3636
3636
  export const takeWhile: {
3637
- <A, B extends A>(refinement: Refinement<A, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
3638
- <B extends A, A = B>(predicate: Predicate<A>): <R, E>(self: Stream<R, E, B>) => Stream<R, E, B>
3637
+ <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, B>
3638
+ <A>(predicate: Predicate<NoInfer<A>>): <R, E>(self: Stream<R, E, A>) => Stream<R, E, A>
3639
3639
  <R, E, A, B extends A>(self: Stream<R, E, A>, refinement: Refinement<A, B>): Stream<R, E, B>
3640
3640
  <R, E, A>(self: Stream<R, E, A>, predicate: Predicate<A>): Stream<R, E, A>
3641
3641
  } = internal.takeWhile
@@ -3647,12 +3647,12 @@ export const takeWhile: {
3647
3647
  * @category sequencing
3648
3648
  */
3649
3649
  export const tap: {
3650
- <A, X extends A, R2, E2, _>(
3651
- f: (a: X) => Effect.Effect<R2, E2, _>
3650
+ <A, R2, E2, _>(
3651
+ f: (a: NoInfer<A>) => Effect.Effect<R2, E2, _>
3652
3652
  ): <R, E>(self: Stream<R, E, A>) => Stream<R2 | R, E2 | E, A>
3653
- <R, E, A, X extends A, R2, E2, _>(
3653
+ <R, E, A, R2, E2, _>(
3654
3654
  self: Stream<R, E, A>,
3655
- f: (a: X) => Effect.Effect<R2, E2, _>
3655
+ f: (a: NoInfer<A>) => Effect.Effect<R2, E2, _>
3656
3656
  ): Stream<R | R2, E | E2, A>
3657
3657
  } = internal.tap
3658
3658
 
@@ -3664,17 +3664,17 @@ export const tap: {
3664
3664
  * @category sequencing
3665
3665
  */
3666
3666
  export const tapBoth: {
3667
- <E, XE extends E, A, XA extends A, R2, E2, X, R3, E3, X1>(
3667
+ <E, R2, E2, X1, A, R3, E3, X2>(
3668
3668
  options: {
3669
- readonly onFailure: (e: XE) => Effect.Effect<R2, E2, X>
3670
- readonly onSuccess: (a: XA) => Effect.Effect<R3, E3, X1>
3669
+ readonly onFailure: (e: NoInfer<E>) => Effect.Effect<R2, E2, X1>
3670
+ readonly onSuccess: (a: NoInfer<A>) => Effect.Effect<R3, E3, X2>
3671
3671
  }
3672
3672
  ): <R>(self: Stream<R, E, A>) => Stream<R | R2 | R3, E | E2 | E3, A>
3673
- <R, E, A, XE extends E, XA extends A, R2, E2, X, R3, E3, X1>(
3673
+ <R, E, A, R2, E2, X1, R3, E3, X2>(
3674
3674
  self: Stream<R, E, A>,
3675
3675
  options: {
3676
- readonly onFailure: (e: XE) => Effect.Effect<R2, E2, X>
3677
- readonly onSuccess: (a: XA) => Effect.Effect<R3, E3, X1>
3676
+ readonly onFailure: (e: NoInfer<E>) => Effect.Effect<R2, E2, X1>
3677
+ readonly onSuccess: (a: NoInfer<A>) => Effect.Effect<R3, E3, X2>
3678
3678
  }
3679
3679
  ): Stream<R | R2 | R3, E | E2 | E3, A>
3680
3680
  } = internal.tapBoth
@@ -3686,12 +3686,12 @@ export const tapBoth: {
3686
3686
  * @category sequencing
3687
3687
  */
3688
3688
  export const tapError: {
3689
- <E, X extends E, R2, E2, _>(
3690
- f: (error: X) => Effect.Effect<R2, E2, _>
3689
+ <E, R2, E2, _>(
3690
+ f: (error: NoInfer<E>) => Effect.Effect<R2, E2, _>
3691
3691
  ): <R, A>(self: Stream<R, E, A>) => Stream<R2 | R, E | E2, A>
3692
- <R, A, E, X extends E, R2, E2, _>(
3692
+ <R, A, E, R2, E2, _>(
3693
3693
  self: Stream<R, E, A>,
3694
- f: (error: X) => Effect.Effect<R2, E2, _>
3694
+ f: (error: E) => Effect.Effect<R2, E2, _>
3695
3695
  ): Stream<R | R2, E | E2, A>
3696
3696
  } = internal.tapError
3697
3697
 
@@ -3703,12 +3703,12 @@ export const tapError: {
3703
3703
  * @category utils
3704
3704
  */
3705
3705
  export const tapErrorCause: {
3706
- <E, X extends E, R2, E2, _>(
3707
- f: (cause: Cause.Cause<X>) => Effect.Effect<R2, E2, _>
3706
+ <E, R2, E2, _>(
3707
+ f: (cause: Cause.Cause<NoInfer<E>>) => Effect.Effect<R2, E2, _>
3708
3708
  ): <R, A>(self: Stream<R, E, A>) => Stream<R2 | R, E | E2, A>
3709
- <R, A, E, X extends E, R2, E2, _>(
3709
+ <R, A, E, R2, E2, _>(
3710
3710
  self: Stream<R, E, A>,
3711
- f: (cause: Cause.Cause<X>) => Effect.Effect<R2, E2, _>
3711
+ f: (cause: Cause.Cause<E>) => Effect.Effect<R2, E2, _>
3712
3712
  ): Stream<R | R2, E | E2, A>
3713
3713
  } = internal.tapErrorCause
3714
3714
 
package/src/Trie.ts CHANGED
@@ -20,7 +20,7 @@ import type { Inspectable } from "./Inspectable.js"
20
20
  import * as TR from "./internal/trie.js"
21
21
  import type { Option } from "./Option.js"
22
22
  import type { Pipeable } from "./Pipeable.js"
23
- import type * as Types from "./Types.js"
23
+ import type { Covariant, NoInfer } from "./Types.js"
24
24
 
25
25
  const TypeId: unique symbol = TR.TrieTypeId as TypeId
26
26
 
@@ -36,7 +36,7 @@ export type TypeId = typeof TypeId
36
36
  */
37
37
  export interface Trie<in out Value> extends Iterable<[string, Value]>, Equal, Pipeable, Inspectable {
38
38
  readonly [TypeId]: {
39
- readonly _Value: Types.Covariant<Value>
39
+ readonly _Value: Covariant<Value>
40
40
  }
41
41
  }
42
42
 
@@ -589,8 +589,8 @@ export const map: {
589
589
  * @category filtering
590
590
  */
591
591
  export const filter: {
592
- <A, B extends A>(f: (a: A, k: string) => a is B): (self: Trie<A>) => Trie<B>
593
- <B extends A, A = B>(f: (a: A, k: string) => boolean): (self: Trie<B>) => Trie<B>
592
+ <A, B extends A>(f: (a: NoInfer<A>, k: string) => a is B): (self: Trie<A>) => Trie<B>
593
+ <A>(f: (a: NoInfer<A>, k: string) => boolean): (self: Trie<A>) => Trie<A>
594
594
  <A, B extends A>(self: Trie<A>, f: (a: A, k: string) => a is B): Trie<B>
595
595
  <A>(self: Trie<A>, f: (a: A, k: string) => boolean): Trie<A>
596
596
  } = TR.filter
@@ -9,11 +9,12 @@ import * as HashSet from "../HashSet.js"
9
9
  import { NodeInspectSymbol, toJSON } from "../Inspectable.js"
10
10
  import * as Option from "../Option.js"
11
11
  import { pipeArguments } from "../Pipeable.js"
12
- import { hasProperty, isFunction, type Predicate } from "../Predicate.js"
12
+ import { hasProperty, isFunction } from "../Predicate.js"
13
+ import type { Predicate, Refinement } from "../Predicate.js"
13
14
  import * as ReadonlyArray from "../ReadonlyArray.js"
14
- import * as OpCodes from "./opCodes/cause.js"
15
-
16
15
  import type { ParentSpan, Span } from "../Tracer.js"
16
+ import type { NoInfer } from "../Types.js"
17
+ import * as OpCodes from "./opCodes/cause.js"
17
18
 
18
19
  // -----------------------------------------------------------------------------
19
20
  // Models
@@ -643,10 +644,18 @@ export const find = dual<
643
644
  // -----------------------------------------------------------------------------
644
645
 
645
646
  /** @internal */
646
- export const filter = dual<
647
- <E>(predicate: Predicate<Cause.Cause<E>>) => (self: Cause.Cause<E>) => Cause.Cause<E>,
648
- <E>(self: Cause.Cause<E>, predicate: Predicate<Cause.Cause<E>>) => Cause.Cause<E>
649
- >(2, (self, predicate) => reduceWithContext(self, void 0, FilterCauseReducer(predicate)))
647
+ export const filter: {
648
+ <E, EB extends E>(
649
+ refinement: Refinement<Cause.Cause<NoInfer<E>>, Cause.Cause<EB>>
650
+ ): (self: Cause.Cause<E>) => Cause.Cause<EB>
651
+ <E>(predicate: Predicate<Cause.Cause<NoInfer<E>>>): (self: Cause.Cause<E>) => Cause.Cause<E>
652
+ <E, EB extends E>(self: Cause.Cause<E>, refinement: Refinement<Cause.Cause<E>, Cause.Cause<EB>>): Cause.Cause<EB>
653
+ <E>(self: Cause.Cause<E>, predicate: Predicate<Cause.Cause<E>>): Cause.Cause<E>
654
+ } = dual(
655
+ 2,
656
+ <E>(self: Cause.Cause<E>, predicate: Predicate<Cause.Cause<E>>): Cause.Cause<E> =>
657
+ reduceWithContext(self, void 0, FilterCauseReducer(predicate))
658
+ )
650
659
 
651
660
  // -----------------------------------------------------------------------------
652
661
  // Evaluation