effect 3.12.11 → 3.13.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 (204) hide show
  1. package/README.md +38 -49
  2. package/dist/cjs/Channel.js.map +1 -1
  3. package/dist/cjs/DateTime.js +17 -1
  4. package/dist/cjs/DateTime.js.map +1 -1
  5. package/dist/cjs/Differ.js.map +1 -1
  6. package/dist/cjs/Duration.js +128 -1
  7. package/dist/cjs/Duration.js.map +1 -1
  8. package/dist/cjs/Effect.js +175 -37
  9. package/dist/cjs/Effect.js.map +1 -1
  10. package/dist/cjs/Either.js +2 -1
  11. package/dist/cjs/Either.js.map +1 -1
  12. package/dist/cjs/FiberHandle.js +54 -21
  13. package/dist/cjs/FiberHandle.js.map +1 -1
  14. package/dist/cjs/FiberMap.js +51 -24
  15. package/dist/cjs/FiberMap.js.map +1 -1
  16. package/dist/cjs/FiberSet.js +50 -17
  17. package/dist/cjs/FiberSet.js.map +1 -1
  18. package/dist/cjs/HashMap.js +19 -1
  19. package/dist/cjs/HashMap.js.map +1 -1
  20. package/dist/cjs/HashSet.js +9 -1
  21. package/dist/cjs/HashSet.js.map +1 -1
  22. package/dist/cjs/Layer.js +21 -1
  23. package/dist/cjs/Layer.js.map +1 -1
  24. package/dist/cjs/Match.js +659 -38
  25. package/dist/cjs/Match.js.map +1 -1
  26. package/dist/cjs/RcMap.js +11 -1
  27. package/dist/cjs/RcMap.js.map +1 -1
  28. package/dist/cjs/Reloadable.js.map +1 -1
  29. package/dist/cjs/STM.js.map +1 -1
  30. package/dist/cjs/Schedule.js +1074 -309
  31. package/dist/cjs/Schedule.js.map +1 -1
  32. package/dist/cjs/Schema.js +73 -1
  33. package/dist/cjs/Schema.js.map +1 -1
  34. package/dist/cjs/Stream.js.map +1 -1
  35. package/dist/cjs/internal/channel.js.map +1 -1
  36. package/dist/cjs/internal/core-effect.js.map +1 -1
  37. package/dist/cjs/internal/core.js +27 -3
  38. package/dist/cjs/internal/core.js.map +1 -1
  39. package/dist/cjs/internal/dateTime.js +4 -1
  40. package/dist/cjs/internal/dateTime.js.map +1 -1
  41. package/dist/cjs/internal/differ.js +4 -0
  42. package/dist/cjs/internal/differ.js.map +1 -1
  43. package/dist/cjs/internal/effect/circular.js +3 -2
  44. package/dist/cjs/internal/effect/circular.js.map +1 -1
  45. package/dist/cjs/internal/fiberRuntime.js +21 -7
  46. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  47. package/dist/cjs/internal/hashMap.js +10 -1
  48. package/dist/cjs/internal/hashMap.js.map +1 -1
  49. package/dist/cjs/internal/keyedPool.js +1 -1
  50. package/dist/cjs/internal/keyedPool.js.map +1 -1
  51. package/dist/cjs/internal/layer.js.map +1 -1
  52. package/dist/cjs/internal/rcMap.js +86 -56
  53. package/dist/cjs/internal/rcMap.js.map +1 -1
  54. package/dist/cjs/internal/reloadable.js.map +1 -1
  55. package/dist/cjs/internal/schedule.js.map +1 -1
  56. package/dist/cjs/internal/sink.js.map +1 -1
  57. package/dist/cjs/internal/stm/stm.js.map +1 -1
  58. package/dist/cjs/internal/stream.js.map +1 -1
  59. package/dist/cjs/internal/version.js +1 -1
  60. package/dist/cjs/internal/version.js.map +1 -1
  61. package/dist/dts/Channel.d.ts +4 -4
  62. package/dist/dts/Channel.d.ts.map +1 -1
  63. package/dist/dts/DateTime.d.ts +16 -0
  64. package/dist/dts/DateTime.d.ts.map +1 -1
  65. package/dist/dts/Differ.d.ts +2 -1
  66. package/dist/dts/Differ.d.ts.map +1 -1
  67. package/dist/dts/Duration.d.ts +64 -0
  68. package/dist/dts/Duration.d.ts.map +1 -1
  69. package/dist/dts/Effect.d.ts +402 -30
  70. package/dist/dts/Effect.d.ts.map +1 -1
  71. package/dist/dts/Either.d.ts +7 -0
  72. package/dist/dts/Either.d.ts.map +1 -1
  73. package/dist/dts/FiberHandle.d.ts +26 -0
  74. package/dist/dts/FiberHandle.d.ts.map +1 -1
  75. package/dist/dts/FiberMap.d.ts +26 -0
  76. package/dist/dts/FiberMap.d.ts.map +1 -1
  77. package/dist/dts/FiberSet.d.ts +25 -0
  78. package/dist/dts/FiberSet.d.ts.map +1 -1
  79. package/dist/dts/HashMap.d.ts +38 -0
  80. package/dist/dts/HashMap.d.ts.map +1 -1
  81. package/dist/dts/HashSet.d.ts +7 -0
  82. package/dist/dts/HashSet.d.ts.map +1 -1
  83. package/dist/dts/Layer.d.ts +32 -13
  84. package/dist/dts/Layer.d.ts.map +1 -1
  85. package/dist/dts/Match.d.ts +731 -48
  86. package/dist/dts/Match.d.ts.map +1 -1
  87. package/dist/dts/RcMap.d.ts +32 -0
  88. package/dist/dts/RcMap.d.ts.map +1 -1
  89. package/dist/dts/Reloadable.d.ts +13 -13
  90. package/dist/dts/Reloadable.d.ts.map +1 -1
  91. package/dist/dts/STM.d.ts +4 -4
  92. package/dist/dts/STM.d.ts.map +1 -1
  93. package/dist/dts/Schedule.d.ts +2294 -633
  94. package/dist/dts/Schedule.d.ts.map +1 -1
  95. package/dist/dts/Schema.d.ts +40 -4
  96. package/dist/dts/Schema.d.ts.map +1 -1
  97. package/dist/dts/Stream.d.ts +8 -8
  98. package/dist/dts/Stream.d.ts.map +1 -1
  99. package/dist/dts/Trie.d.ts +7 -7
  100. package/dist/dts/Trie.d.ts.map +1 -1
  101. package/dist/dts/index.d.ts +25 -0
  102. package/dist/dts/index.d.ts.map +1 -1
  103. package/dist/dts/internal/stm/stm.d.ts +2 -2
  104. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  105. package/dist/esm/Channel.js.map +1 -1
  106. package/dist/esm/DateTime.js +16 -0
  107. package/dist/esm/DateTime.js.map +1 -1
  108. package/dist/esm/Differ.js.map +1 -1
  109. package/dist/esm/Duration.js +124 -0
  110. package/dist/esm/Duration.js.map +1 -1
  111. package/dist/esm/Effect.js +170 -32
  112. package/dist/esm/Effect.js.map +1 -1
  113. package/dist/esm/Either.js +7 -0
  114. package/dist/esm/Either.js.map +1 -1
  115. package/dist/esm/FiberHandle.js +48 -18
  116. package/dist/esm/FiberHandle.js.map +1 -1
  117. package/dist/esm/FiberMap.js +46 -22
  118. package/dist/esm/FiberMap.js.map +1 -1
  119. package/dist/esm/FiberSet.js +45 -15
  120. package/dist/esm/FiberSet.js.map +1 -1
  121. package/dist/esm/HashMap.js +17 -0
  122. package/dist/esm/HashMap.js.map +1 -1
  123. package/dist/esm/HashSet.js +7 -0
  124. package/dist/esm/HashSet.js.map +1 -1
  125. package/dist/esm/Layer.js +20 -0
  126. package/dist/esm/Layer.js.map +1 -1
  127. package/dist/esm/Match.js +665 -40
  128. package/dist/esm/Match.js.map +1 -1
  129. package/dist/esm/RcMap.js +10 -0
  130. package/dist/esm/RcMap.js.map +1 -1
  131. package/dist/esm/Reloadable.js.map +1 -1
  132. package/dist/esm/STM.js.map +1 -1
  133. package/dist/esm/Schedule.js +1074 -309
  134. package/dist/esm/Schedule.js.map +1 -1
  135. package/dist/esm/Schema.js +71 -0
  136. package/dist/esm/Schema.js.map +1 -1
  137. package/dist/esm/Stream.js.map +1 -1
  138. package/dist/esm/index.js +25 -0
  139. package/dist/esm/index.js.map +1 -1
  140. package/dist/esm/internal/channel.js.map +1 -1
  141. package/dist/esm/internal/core-effect.js.map +1 -1
  142. package/dist/esm/internal/core.js +23 -0
  143. package/dist/esm/internal/core.js.map +1 -1
  144. package/dist/esm/internal/dateTime.js +2 -0
  145. package/dist/esm/internal/dateTime.js.map +1 -1
  146. package/dist/esm/internal/differ.js +4 -0
  147. package/dist/esm/internal/differ.js.map +1 -1
  148. package/dist/esm/internal/effect/circular.js +3 -2
  149. package/dist/esm/internal/effect/circular.js.map +1 -1
  150. package/dist/esm/internal/fiberRuntime.js +18 -5
  151. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  152. package/dist/esm/internal/hashMap.js +9 -0
  153. package/dist/esm/internal/hashMap.js.map +1 -1
  154. package/dist/esm/internal/keyedPool.js +1 -1
  155. package/dist/esm/internal/keyedPool.js.map +1 -1
  156. package/dist/esm/internal/layer.js.map +1 -1
  157. package/dist/esm/internal/rcMap.js +85 -55
  158. package/dist/esm/internal/rcMap.js.map +1 -1
  159. package/dist/esm/internal/reloadable.js.map +1 -1
  160. package/dist/esm/internal/schedule.js.map +1 -1
  161. package/dist/esm/internal/sink.js.map +1 -1
  162. package/dist/esm/internal/stm/stm.js.map +1 -1
  163. package/dist/esm/internal/stream.js.map +1 -1
  164. package/dist/esm/internal/version.js +1 -1
  165. package/dist/esm/internal/version.js.map +1 -1
  166. package/package.json +2 -1
  167. package/src/Channel.ts +14 -17
  168. package/src/DateTime.ts +17 -8
  169. package/src/Differ.ts +2 -1
  170. package/src/Duration.ts +147 -0
  171. package/src/Effect.ts +528 -140
  172. package/src/Either.ts +9 -0
  173. package/src/FiberHandle.ts +95 -35
  174. package/src/FiberMap.ts +104 -39
  175. package/src/FiberSet.ts +93 -24
  176. package/src/HashMap.ts +40 -0
  177. package/src/HashSet.ts +8 -0
  178. package/src/Layer.ts +94 -40
  179. package/src/Match.ts +733 -49
  180. package/src/RcMap.ts +34 -0
  181. package/src/Reloadable.ts +17 -27
  182. package/src/STM.ts +10 -17
  183. package/src/Schedule.ts +2325 -653
  184. package/src/Schema.ts +81 -4
  185. package/src/Stream.ts +26 -33
  186. package/src/Trie.ts +7 -7
  187. package/src/index.ts +25 -0
  188. package/src/internal/channel.ts +37 -39
  189. package/src/internal/core-effect.ts +84 -84
  190. package/src/internal/core.ts +80 -0
  191. package/src/internal/dateTime.ts +3 -0
  192. package/src/internal/differ.ts +4 -0
  193. package/src/internal/effect/circular.ts +3 -2
  194. package/src/internal/fiberRuntime.ts +31 -6
  195. package/src/internal/hashMap.ts +16 -0
  196. package/src/internal/keyedPool.ts +1 -1
  197. package/src/internal/layer.ts +52 -52
  198. package/src/internal/rcMap.ts +131 -89
  199. package/src/internal/reloadable.ts +25 -28
  200. package/src/internal/schedule.ts +29 -23
  201. package/src/internal/sink.ts +16 -15
  202. package/src/internal/stm/stm.ts +54 -46
  203. package/src/internal/stream.ts +100 -100
  204. package/src/internal/version.ts +1 -1
@@ -12,7 +12,7 @@ import * as Option from "../../Option.js"
12
12
  import type { Predicate, Refinement } from "../../Predicate.js"
13
13
  import * as predicate from "../../Predicate.js"
14
14
  import type * as STM from "../../STM.js"
15
- import type { MergeRecord, NoInfer } from "../../Types.js"
15
+ import type * as Types from "../../Types.js"
16
16
  import { yieldWrapGet } from "../../Utils.js"
17
17
  import * as effectCore from "../core.js"
18
18
  import * as core from "./core.js"
@@ -114,12 +114,12 @@ export const bind = dual<
114
114
  <N extends string, K, A, E2, R2>(
115
115
  tag: Exclude<N, keyof K>,
116
116
  f: (_: K) => STM.STM<A, E2, R2>
117
- ) => <E, R>(self: STM.STM<K, E, R>) => STM.STM<MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>,
117
+ ) => <E, R>(self: STM.STM<K, E, R>) => STM.STM<Types.MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>,
118
118
  <K, E, R, N extends string, A, E2, R2>(
119
119
  self: STM.STM<K, E, R>,
120
120
  tag: Exclude<N, keyof K>,
121
121
  f: (_: K) => STM.STM<A, E2, R2>
122
- ) => STM.STM<MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>
122
+ ) => STM.STM<Types.MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>
123
123
  >(3, <K, E, R, N extends string, A, E2, R2>(
124
124
  self: STM.STM<K, E, R>,
125
125
  tag: Exclude<N, keyof K>,
@@ -128,7 +128,7 @@ export const bind = dual<
128
128
  core.flatMap(self, (k) =>
129
129
  core.map(
130
130
  f(k),
131
- (a): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
131
+ (a): Types.MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: a } as any)
132
132
  )))
133
133
 
134
134
  /* @internal */
@@ -158,7 +158,7 @@ export const let_ = dual<
158
158
  tag: Exclude<N, keyof K>,
159
159
  f: (_: K) => A
160
160
  ) => <E, R>(self: STM.STM<K, E, R>) => STM.STM<
161
- MergeRecord<K, { [k in N]: A }>,
161
+ Types.MergeRecord<K, { [k in N]: A }>,
162
162
  E,
163
163
  R
164
164
  >,
@@ -167,14 +167,14 @@ export const let_ = dual<
167
167
  tag: Exclude<N, keyof K>,
168
168
  f: (_: K) => A
169
169
  ) => STM.STM<
170
- MergeRecord<K, { [k in N]: A }>,
170
+ Types.MergeRecord<K, { [k in N]: A }>,
171
171
  E,
172
172
  R
173
173
  >
174
174
  >(3, <K, E, R, N extends string, A>(self: STM.STM<K, E, R>, tag: Exclude<N, keyof K>, f: (_: K) => A) =>
175
175
  core.map(
176
176
  self,
177
- (k): MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: f(k) } as any)
177
+ (k): Types.MergeRecord<K, { [k in N]: A }> => ({ ...k, [tag]: f(k) } as any)
178
178
  ))
179
179
 
180
180
  /** @internal */
@@ -330,7 +330,9 @@ export const eventually = <A, E, R>(self: STM.STM<A, E, R>): STM.STM<A, E, R> =>
330
330
 
331
331
  /** @internal */
332
332
  export const every = dual<
333
- <A, R, E>(predicate: (a: NoInfer<A>) => STM.STM<boolean, E, R>) => (iterable: Iterable<A>) => STM.STM<boolean, E, R>,
333
+ <A, R, E>(
334
+ predicate: (a: Types.NoInfer<A>) => STM.STM<boolean, E, R>
335
+ ) => (iterable: Iterable<A>) => STM.STM<boolean, E, R>,
334
336
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM.STM<boolean, E, R>) => STM.STM<boolean, E, R>
335
337
  >(
336
338
  2,
@@ -357,7 +359,9 @@ export const every = dual<
357
359
 
358
360
  /** @internal */
359
361
  export const exists = dual<
360
- <A, R, E>(predicate: (a: NoInfer<A>) => STM.STM<boolean, E, R>) => (iterable: Iterable<A>) => STM.STM<boolean, E, R>,
362
+ <A, R, E>(
363
+ predicate: (a: Types.NoInfer<A>) => STM.STM<boolean, E, R>
364
+ ) => (iterable: Iterable<A>) => STM.STM<boolean, E, R>,
361
365
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM.STM<boolean, E, R>) => STM.STM<boolean, E, R>
362
366
  >(
363
367
  2,
@@ -382,7 +386,9 @@ export const fiberId: STM.STM<FiberId.FiberId> = core.effect<never, FiberId.Fibe
382
386
 
383
387
  /** @internal */
384
388
  export const filter = dual<
385
- <A, R, E>(predicate: (a: NoInfer<A>) => STM.STM<boolean, E, R>) => (iterable: Iterable<A>) => STM.STM<Array<A>, E, R>,
389
+ <A, R, E>(
390
+ predicate: (a: Types.NoInfer<A>) => STM.STM<boolean, E, R>
391
+ ) => (iterable: Iterable<A>) => STM.STM<Array<A>, E, R>,
386
392
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM.STM<boolean, E, R>) => STM.STM<Array<A>, E, R>
387
393
  >(
388
394
  2,
@@ -405,7 +411,9 @@ export const filter = dual<
405
411
 
406
412
  /** @internal */
407
413
  export const filterNot = dual<
408
- <A, R, E>(predicate: (a: NoInfer<A>) => STM.STM<boolean, E, R>) => (iterable: Iterable<A>) => STM.STM<Array<A>, E, R>,
414
+ <A, R, E>(
415
+ predicate: (a: Types.NoInfer<A>) => STM.STM<boolean, E, R>
416
+ ) => (iterable: Iterable<A>) => STM.STM<Array<A>, E, R>,
409
417
  <A, R, E>(iterable: Iterable<A>, predicate: (a: A) => STM.STM<boolean, E, R>) => STM.STM<Array<A>, E, R>
410
418
  >(
411
419
  2,
@@ -416,11 +424,11 @@ export const filterNot = dual<
416
424
  /** @internal */
417
425
  export const filterOrDie: {
418
426
  <A, B extends A>(
419
- refinement: Refinement<NoInfer<A>, B>,
427
+ refinement: Refinement<Types.NoInfer<A>, B>,
420
428
  defect: LazyArg<unknown>
421
429
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>
422
430
  <A>(
423
- predicate: Predicate<NoInfer<A>>,
431
+ predicate: Predicate<Types.NoInfer<A>>,
424
432
  defect: LazyArg<unknown>
425
433
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E, R>
426
434
  <A, E, R, B extends A>(
@@ -438,10 +446,10 @@ export const filterOrDie: {
438
446
  /** @internal */
439
447
  export const filterOrDieMessage: {
440
448
  <A, B extends A>(
441
- refinement: Refinement<NoInfer<A>, B>,
449
+ refinement: Refinement<Types.NoInfer<A>, B>,
442
450
  message: string
443
451
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>
444
- <A>(predicate: Predicate<NoInfer<A>>, message: string): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E, R>
452
+ <A>(predicate: Predicate<Types.NoInfer<A>>, message: string): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E, R>
445
453
  <A, E, R, B extends A>(self: STM.STM<A, E, R>, refinement: Refinement<A, B>, message: string): STM.STM<B, E, R>
446
454
  <A, E, R>(self: STM.STM<A, E, R>, predicate: Predicate<A>, message: string): STM.STM<A, E, R>
447
455
  } = dual(
@@ -453,12 +461,12 @@ export const filterOrDieMessage: {
453
461
  /** @internal */
454
462
  export const filterOrElse: {
455
463
  <A, B extends A, C, E2, R2>(
456
- refinement: Refinement<NoInfer<A>, B>,
457
- orElse: (a: NoInfer<A>) => STM.STM<C, E2, R2>
464
+ refinement: Refinement<Types.NoInfer<A>, B>,
465
+ orElse: (a: Types.NoInfer<A>) => STM.STM<C, E2, R2>
458
466
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B | C, E2 | E, R2 | R>
459
467
  <A, B, E2, R2>(
460
- predicate: Predicate<NoInfer<A>>,
461
- orElse: (a: NoInfer<A>) => STM.STM<B, E2, R2>
468
+ predicate: Predicate<Types.NoInfer<A>>,
469
+ orElse: (a: Types.NoInfer<A>) => STM.STM<B, E2, R2>
462
470
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A | B, E2 | E, R2 | R>
463
471
  <A, E, R, B extends A, C, E2, R2>(
464
472
  self: STM.STM<A, E, R>,
@@ -483,12 +491,12 @@ export const filterOrElse: {
483
491
  /** @internal */
484
492
  export const filterOrFail: {
485
493
  <A, B extends A, E2>(
486
- refinement: Refinement<NoInfer<A>, B>,
487
- orFailWith: (a: NoInfer<A>) => E2
494
+ refinement: Refinement<Types.NoInfer<A>, B>,
495
+ orFailWith: (a: Types.NoInfer<A>) => E2
488
496
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E2 | E, R>
489
497
  <A, E2>(
490
- predicate: Predicate<NoInfer<A>>,
491
- orFailWith: (a: NoInfer<A>) => E2
498
+ predicate: Predicate<Types.NoInfer<A>>,
499
+ orFailWith: (a: Types.NoInfer<A>) => E2
492
500
  ): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E2 | E, R>
493
501
  <A, E, R, B extends A, E2>(
494
502
  self: STM.STM<A, E, R>,
@@ -975,38 +983,38 @@ export const provideSomeContext = dual<
975
983
 
976
984
  /** @internal */
977
985
  export const provideService = dual<
978
- <T extends Context.Tag<any, any>>(
979
- tag: T,
980
- resource: Context.Tag.Service<T>
986
+ <I, S>(
987
+ tag: Context.Tag<I, S>,
988
+ resource: Types.NoInfer<S>
981
989
  ) => <A, E, R>(
982
990
  self: STM.STM<A, E, R>
983
- ) => STM.STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>,
984
- <A, E, R, T extends Context.Tag<any, any>>(
991
+ ) => STM.STM<A, E, Exclude<R, I>>,
992
+ <A, E, R, I, S>(
985
993
  self: STM.STM<A, E, R>,
986
- tag: T,
987
- resource: Context.Tag.Service<T>
988
- ) => STM.STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
994
+ tag: Context.Tag<I, S>,
995
+ resource: Types.NoInfer<S>
996
+ ) => STM.STM<A, E, Exclude<R, I>>
989
997
  >(3, (self, tag, resource) => provideServiceSTM(self, tag, core.succeed(resource)))
990
998
 
991
999
  /** @internal */
992
1000
  export const provideServiceSTM = dual<
993
- <T extends Context.Tag<any, any>, E1, R1>(
994
- tag: T,
995
- stm: STM.STM<Context.Tag.Service<T>, E1, R1>
1001
+ <I, S, E1, R1>(
1002
+ tag: Context.Tag<I, S>,
1003
+ stm: STM.STM<Types.NoInfer<S>, E1, R1>
996
1004
  ) => <A, E, R>(
997
1005
  self: STM.STM<A, E, R>
998
- ) => STM.STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>,
999
- <A, E, R, T extends Context.Tag<any, any>, E1, R1>(
1006
+ ) => STM.STM<A, E1 | E, R1 | Exclude<R, I>>,
1007
+ <A, E, R, I, S, E1, R1>(
1000
1008
  self: STM.STM<A, E, R>,
1001
- tag: T,
1002
- stm: STM.STM<Context.Tag.Service<T>, E1, R1>
1003
- ) => STM.STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>
1004
- >(3, <A, E, R, T extends Context.Tag<any, any>, E1, R1>(
1009
+ tag: Context.Tag<I, S>,
1010
+ stm: STM.STM<Types.NoInfer<S>, E1, R1>
1011
+ ) => STM.STM<A, E1 | E, R1 | Exclude<R, I>>
1012
+ >(3, <A, E, R, I, S, E1, R1>(
1005
1013
  self: STM.STM<A, E, R>,
1006
- tag: T,
1007
- stm: STM.STM<Context.Tag.Service<T>, E1, R1>
1008
- ): STM.STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>> =>
1009
- core.contextWithSTM((env: Context.Context<R1 | Exclude<R, Context.Tag.Identifier<T>>>) =>
1014
+ tag: Context.Tag<I, S>,
1015
+ stm: STM.STM<Types.NoInfer<S>, E1, R1>
1016
+ ): STM.STM<A, E1 | E, R1 | Exclude<R, I>> =>
1017
+ core.contextWithSTM((env: Context.Context<R1 | Exclude<R, I>>) =>
1010
1018
  core.flatMap(
1011
1019
  stm,
1012
1020
  (service) =>
@@ -1176,7 +1184,7 @@ export const replicateSTMDiscard = dual<
1176
1184
  /** @internal */
1177
1185
  export const retryUntil = dual<
1178
1186
  {
1179
- <A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>
1187
+ <A, B extends A>(refinement: Refinement<Types.NoInfer<A>, B>): <E, R>(self: STM.STM<A, E, R>) => STM.STM<B, E, R>
1180
1188
  <A>(predicate: Predicate<A>): <E, R>(self: STM.STM<A, E, R>) => STM.STM<A, E, R>
1181
1189
  },
1182
1190
  {
@@ -1318,7 +1326,7 @@ export const tapBoth = dual<
1318
1326
  /** @internal */
1319
1327
  export const tapError: {
1320
1328
  <E, X, E2, R2>(
1321
- f: (error: NoInfer<E>) => STM.STM<X, E2, R2>
1329
+ f: (error: Types.NoInfer<E>) => STM.STM<X, E2, R2>
1322
1330
  ): <A, R>(self: STM.STM<A, E, R>) => STM.STM<A, E | E2, R2 | R>
1323
1331
  <A, E, R, X, E2, R2>(self: STM.STM<A, E, R>, f: (error: E) => STM.STM<X, E2, R2>): STM.STM<A, E | E2, R | R2>
1324
1332
  } = dual(