effect 2.3.8 → 2.4.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 (272) hide show
  1. package/dist/cjs/BigInt.js +14 -1
  2. package/dist/cjs/BigInt.js.map +1 -1
  3. package/dist/cjs/Effect.js +16 -61
  4. package/dist/cjs/Effect.js.map +1 -1
  5. package/dist/cjs/Either.js +35 -6
  6. package/dist/cjs/Either.js.map +1 -1
  7. package/dist/cjs/Equal.js +1 -1
  8. package/dist/cjs/Equal.js.map +1 -1
  9. package/dist/cjs/Exit.js +1 -1
  10. package/dist/cjs/Number.js +25 -1
  11. package/dist/cjs/Number.js.map +1 -1
  12. package/dist/cjs/ReadonlyArray.js +2 -2
  13. package/dist/cjs/ReadonlyArray.js.map +1 -1
  14. package/dist/cjs/ReadonlyRecord.js +71 -76
  15. package/dist/cjs/ReadonlyRecord.js.map +1 -1
  16. package/dist/cjs/STM.js.map +1 -1
  17. package/dist/cjs/Schedule.js.map +1 -1
  18. package/dist/cjs/Sink.js.map +1 -1
  19. package/dist/cjs/Stream.js +3 -23
  20. package/dist/cjs/Stream.js.map +1 -1
  21. package/dist/cjs/Struct.js +3 -1
  22. package/dist/cjs/Struct.js.map +1 -1
  23. package/dist/cjs/TestAnnotation.js.map +1 -1
  24. package/dist/cjs/internal/channel/channelExecutor.js +5 -5
  25. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  26. package/dist/cjs/internal/channel/channelState.js +5 -5
  27. package/dist/cjs/internal/channel/channelState.js.map +1 -1
  28. package/dist/cjs/internal/channel.js.map +1 -1
  29. package/dist/cjs/internal/clock.js +3 -4
  30. package/dist/cjs/internal/clock.js.map +1 -1
  31. package/dist/cjs/internal/core-effect.js +6 -23
  32. package/dist/cjs/internal/core-effect.js.map +1 -1
  33. package/dist/cjs/internal/core.js +11 -27
  34. package/dist/cjs/internal/core.js.map +1 -1
  35. package/dist/cjs/internal/effect/circular.js +4 -5
  36. package/dist/cjs/internal/effect/circular.js.map +1 -1
  37. package/dist/cjs/internal/either.js +3 -3
  38. package/dist/cjs/internal/either.js.map +1 -1
  39. package/dist/cjs/internal/groupBy.js.map +1 -1
  40. package/dist/cjs/internal/layer.js +0 -2
  41. package/dist/cjs/internal/layer.js.map +1 -1
  42. package/dist/cjs/internal/runtime.js +12 -1
  43. package/dist/cjs/internal/runtime.js.map +1 -1
  44. package/dist/cjs/internal/schedule.js +4 -4
  45. package/dist/cjs/internal/schedule.js.map +1 -1
  46. package/dist/cjs/internal/sink.js +0 -2
  47. package/dist/cjs/internal/sink.js.map +1 -1
  48. package/dist/cjs/internal/stm/stm.js +1 -0
  49. package/dist/cjs/internal/stm/stm.js.map +1 -1
  50. package/dist/cjs/internal/stream.js +51 -64
  51. package/dist/cjs/internal/stream.js.map +1 -1
  52. package/dist/cjs/internal/version.js +1 -1
  53. package/dist/dts/BigInt.d.ts +7 -0
  54. package/dist/dts/BigInt.d.ts.map +1 -1
  55. package/dist/dts/Brand.d.ts +1 -1
  56. package/dist/dts/Brand.d.ts.map +1 -1
  57. package/dist/dts/Cause.d.ts +1 -1
  58. package/dist/dts/Cause.d.ts.map +1 -1
  59. package/dist/dts/Channel.d.ts +11 -11
  60. package/dist/dts/Channel.d.ts.map +1 -1
  61. package/dist/dts/Chunk.d.ts +3 -3
  62. package/dist/dts/Config.d.ts +4 -4
  63. package/dist/dts/Config.d.ts.map +1 -1
  64. package/dist/dts/Cron.d.ts +1 -1
  65. package/dist/dts/Cron.d.ts.map +1 -1
  66. package/dist/dts/Differ.d.ts +2 -2
  67. package/dist/dts/Differ.d.ts.map +1 -1
  68. package/dist/dts/Effect.d.ts +52 -108
  69. package/dist/dts/Effect.d.ts.map +1 -1
  70. package/dist/dts/Either.d.ts +126 -83
  71. package/dist/dts/Either.d.ts.map +1 -1
  72. package/dist/dts/Encoding.d.ts +6 -6
  73. package/dist/dts/Encoding.d.ts.map +1 -1
  74. package/dist/dts/Equal.d.ts.map +1 -1
  75. package/dist/dts/Exit.d.ts +2 -2
  76. package/dist/dts/Fiber.d.ts +2 -2
  77. package/dist/dts/Fiber.d.ts.map +1 -1
  78. package/dist/dts/GroupBy.d.ts +12 -12
  79. package/dist/dts/GroupBy.d.ts.map +1 -1
  80. package/dist/dts/Layer.d.ts +26 -26
  81. package/dist/dts/Layer.d.ts.map +1 -1
  82. package/dist/dts/List.d.ts +2 -2
  83. package/dist/dts/Logger.d.ts +4 -4
  84. package/dist/dts/Match.d.ts +2 -2
  85. package/dist/dts/Match.d.ts.map +1 -1
  86. package/dist/dts/MergeDecision.d.ts +1 -1
  87. package/dist/dts/MergeState.d.ts +5 -5
  88. package/dist/dts/MergeState.d.ts.map +1 -1
  89. package/dist/dts/Metric.d.ts +13 -13
  90. package/dist/dts/Metric.d.ts.map +1 -1
  91. package/dist/dts/MetricPolling.d.ts +4 -4
  92. package/dist/dts/MetricPolling.d.ts.map +1 -1
  93. package/dist/dts/Number.d.ts +8 -0
  94. package/dist/dts/Number.d.ts.map +1 -1
  95. package/dist/dts/Option.d.ts +11 -11
  96. package/dist/dts/ReadonlyArray.d.ts +9 -8
  97. package/dist/dts/ReadonlyArray.d.ts.map +1 -1
  98. package/dist/dts/ReadonlyRecord.d.ts +111 -94
  99. package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
  100. package/dist/dts/Reloadable.d.ts +4 -4
  101. package/dist/dts/Reloadable.d.ts.map +1 -1
  102. package/dist/dts/RequestResolver.d.ts +13 -13
  103. package/dist/dts/RequestResolver.d.ts.map +1 -1
  104. package/dist/dts/Resource.d.ts +1 -1
  105. package/dist/dts/Resource.d.ts.map +1 -1
  106. package/dist/dts/STM.d.ts +144 -139
  107. package/dist/dts/STM.d.ts.map +1 -1
  108. package/dist/dts/Schedule.d.ts +171 -179
  109. package/dist/dts/Schedule.d.ts.map +1 -1
  110. package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
  111. package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
  112. package/dist/dts/Sink.d.ts +13 -13
  113. package/dist/dts/Sink.d.ts.map +1 -1
  114. package/dist/dts/Stream.d.ts +355 -366
  115. package/dist/dts/Stream.d.ts.map +1 -1
  116. package/dist/dts/Struct.d.ts +3 -3
  117. package/dist/dts/Struct.d.ts.map +1 -1
  118. package/dist/dts/SubscriptionRef.d.ts +2 -2
  119. package/dist/dts/TArray.d.ts +2 -2
  120. package/dist/dts/TDeferred.d.ts +3 -3
  121. package/dist/dts/TMap.d.ts +10 -10
  122. package/dist/dts/TSet.d.ts +4 -4
  123. package/dist/dts/Take.d.ts +2 -2
  124. package/dist/dts/TestAnnotation.d.ts +2 -2
  125. package/dist/dts/TestAnnotation.d.ts.map +1 -1
  126. package/dist/dts/Types.d.ts +7 -0
  127. package/dist/dts/Types.d.ts.map +1 -1
  128. package/dist/dts/internal/stm/stm.d.ts +2 -15
  129. package/dist/dts/internal/stm/stm.d.ts.map +1 -1
  130. package/dist/esm/BigInt.js +12 -0
  131. package/dist/esm/BigInt.js.map +1 -1
  132. package/dist/esm/Effect.js +13 -58
  133. package/dist/esm/Effect.js.map +1 -1
  134. package/dist/esm/Either.js +42 -5
  135. package/dist/esm/Either.js.map +1 -1
  136. package/dist/esm/Equal.js +1 -1
  137. package/dist/esm/Equal.js.map +1 -1
  138. package/dist/esm/Exit.js +1 -1
  139. package/dist/esm/Number.js +23 -0
  140. package/dist/esm/Number.js.map +1 -1
  141. package/dist/esm/ReadonlyArray.js +2 -2
  142. package/dist/esm/ReadonlyArray.js.map +1 -1
  143. package/dist/esm/ReadonlyRecord.js +70 -75
  144. package/dist/esm/ReadonlyRecord.js.map +1 -1
  145. package/dist/esm/STM.js.map +1 -1
  146. package/dist/esm/Schedule.js.map +1 -1
  147. package/dist/esm/Sink.js.map +1 -1
  148. package/dist/esm/Stream.js +5 -22
  149. package/dist/esm/Stream.js.map +1 -1
  150. package/dist/esm/Struct.js +3 -1
  151. package/dist/esm/Struct.js.map +1 -1
  152. package/dist/esm/TestAnnotation.js.map +1 -1
  153. package/dist/esm/internal/channel/channelExecutor.js +5 -5
  154. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  155. package/dist/esm/internal/channel/channelState.js +3 -3
  156. package/dist/esm/internal/channel/channelState.js.map +1 -1
  157. package/dist/esm/internal/channel.js.map +1 -1
  158. package/dist/esm/internal/clock.js +3 -4
  159. package/dist/esm/internal/clock.js.map +1 -1
  160. package/dist/esm/internal/core-effect.js +4 -20
  161. package/dist/esm/internal/core-effect.js.map +1 -1
  162. package/dist/esm/internal/core.js +8 -22
  163. package/dist/esm/internal/core.js.map +1 -1
  164. package/dist/esm/internal/effect/circular.js +4 -5
  165. package/dist/esm/internal/effect/circular.js.map +1 -1
  166. package/dist/esm/internal/either.js +3 -3
  167. package/dist/esm/internal/either.js.map +1 -1
  168. package/dist/esm/internal/groupBy.js.map +1 -1
  169. package/dist/esm/internal/layer.js +0 -2
  170. package/dist/esm/internal/layer.js.map +1 -1
  171. package/dist/esm/internal/runtime.js +12 -1
  172. package/dist/esm/internal/runtime.js.map +1 -1
  173. package/dist/esm/internal/schedule.js +4 -4
  174. package/dist/esm/internal/schedule.js.map +1 -1
  175. package/dist/esm/internal/sink.js +0 -2
  176. package/dist/esm/internal/sink.js.map +1 -1
  177. package/dist/esm/internal/stm/stm.js +1 -0
  178. package/dist/esm/internal/stm/stm.js.map +1 -1
  179. package/dist/esm/internal/stream.js +49 -59
  180. package/dist/esm/internal/stream.js.map +1 -1
  181. package/dist/esm/internal/version.js +1 -1
  182. package/package.json +1 -1
  183. package/src/BigInt.ts +13 -0
  184. package/src/Brand.ts +4 -4
  185. package/src/Cause.ts +1 -1
  186. package/src/Channel.ts +17 -17
  187. package/src/Chunk.ts +4 -4
  188. package/src/Config.ts +4 -4
  189. package/src/Cron.ts +2 -2
  190. package/src/Differ.ts +2 -2
  191. package/src/Effect.ts +68 -145
  192. package/src/Either.ts +215 -133
  193. package/src/Encoding.ts +3 -3
  194. package/src/Equal.ts +1 -1
  195. package/src/Exit.ts +2 -2
  196. package/src/Fiber.ts +2 -2
  197. package/src/GroupBy.ts +16 -16
  198. package/src/Layer.ts +32 -32
  199. package/src/List.ts +3 -3
  200. package/src/Logger.ts +4 -4
  201. package/src/Match.ts +3 -3
  202. package/src/MergeDecision.ts +1 -1
  203. package/src/MergeState.ts +8 -8
  204. package/src/Metric.ts +13 -13
  205. package/src/MetricPolling.ts +9 -9
  206. package/src/Number.ts +26 -0
  207. package/src/Option.ts +17 -17
  208. package/src/ReadonlyArray.ts +23 -15
  209. package/src/ReadonlyRecord.ts +421 -265
  210. package/src/Reloadable.ts +4 -4
  211. package/src/RequestResolver.ts +19 -19
  212. package/src/Resource.ts +3 -3
  213. package/src/STM.ts +166 -213
  214. package/src/Schedule.ts +331 -361
  215. package/src/SingleProducerAsyncInput.ts +1 -1
  216. package/src/Sink.ts +19 -19
  217. package/src/Stream.ts +449 -456
  218. package/src/Struct.ts +8 -5
  219. package/src/SubscriptionRef.ts +2 -2
  220. package/src/TArray.ts +2 -2
  221. package/src/TDeferred.ts +4 -4
  222. package/src/TMap.ts +10 -10
  223. package/src/TSet.ts +4 -4
  224. package/src/Take.ts +4 -4
  225. package/src/TestAnnotation.ts +5 -8
  226. package/src/Types.ts +11 -0
  227. package/src/internal/blockedRequests.ts +2 -2
  228. package/src/internal/cause.ts +2 -2
  229. package/src/internal/channel/channelExecutor.ts +26 -26
  230. package/src/internal/channel/channelState.ts +13 -13
  231. package/src/internal/channel/mergeDecision.ts +1 -1
  232. package/src/internal/channel/mergeState.ts +6 -6
  233. package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
  234. package/src/internal/channel.ts +43 -43
  235. package/src/internal/clock.ts +3 -4
  236. package/src/internal/config.ts +7 -7
  237. package/src/internal/configError.ts +1 -1
  238. package/src/internal/configProvider/pathPatch.ts +2 -2
  239. package/src/internal/configProvider.ts +1 -1
  240. package/src/internal/core-effect.ts +28 -43
  241. package/src/internal/core.ts +15 -40
  242. package/src/internal/dataSource.ts +26 -26
  243. package/src/internal/differ/orPatch.ts +7 -7
  244. package/src/internal/differ.ts +2 -2
  245. package/src/internal/effect/circular.ts +9 -10
  246. package/src/internal/either.ts +25 -22
  247. package/src/internal/encoding/base64.ts +1 -1
  248. package/src/internal/encoding/base64Url.ts +1 -1
  249. package/src/internal/encoding/hex.ts +1 -1
  250. package/src/internal/fiber.ts +2 -2
  251. package/src/internal/fiberRuntime.ts +9 -9
  252. package/src/internal/groupBy.ts +40 -40
  253. package/src/internal/layer/circular.ts +4 -4
  254. package/src/internal/layer.ts +52 -54
  255. package/src/internal/matcher.ts +5 -5
  256. package/src/internal/metric/polling.ts +8 -8
  257. package/src/internal/metric.ts +6 -6
  258. package/src/internal/reloadable.ts +4 -4
  259. package/src/internal/resource.ts +2 -2
  260. package/src/internal/runtime.ts +32 -19
  261. package/src/internal/schedule.ts +430 -500
  262. package/src/internal/sink.ts +27 -29
  263. package/src/internal/stm/core.ts +23 -23
  264. package/src/internal/stm/stm.ts +158 -157
  265. package/src/internal/stm/tArray.ts +3 -3
  266. package/src/internal/stm/tDeferred.ts +5 -5
  267. package/src/internal/stm/tMap.ts +13 -13
  268. package/src/internal/stm/tSet.ts +4 -4
  269. package/src/internal/stream.ts +688 -723
  270. package/src/internal/subscriptionRef.ts +3 -3
  271. package/src/internal/take.ts +6 -6
  272. package/src/internal/version.ts +1 -1
package/src/Schedule.ts CHANGED
@@ -42,7 +42,7 @@ export const ScheduleDriverTypeId: unique symbol = internal.ScheduleDriverTypeId
42
42
  export type ScheduleDriverTypeId = typeof ScheduleDriverTypeId
43
43
 
44
44
  /**
45
- * A `Schedule<Env, In, Out>` defines a recurring schedule, which consumes
45
+ * A `Schedule<Out, In, R>` defines a recurring schedule, which consumes
46
46
  * values of type `In`, and which returns values of type `Out`.
47
47
  *
48
48
  * Schedules are defined as a possibly infinite set of intervals spread out over
@@ -69,7 +69,7 @@ export type ScheduleDriverTypeId = typeof ScheduleDriverTypeId
69
69
  * @category model
70
70
  * @since 2.0.0
71
71
  */
72
- export interface Schedule<out Env, in In, out Out> extends Schedule.Variance<Env, In, Out>, Pipeable {
72
+ export interface Schedule<out Out, in In = unknown, out R = never> extends Schedule.Variance<Out, In, R>, Pipeable {
73
73
  /**
74
74
  * Initial State
75
75
  */
@@ -81,7 +81,7 @@ export interface Schedule<out Env, in In, out Out> extends Schedule.Variance<Env
81
81
  now: number,
82
82
  input: In,
83
83
  state: any
84
- ): Effect.Effect<readonly [any, Out, ScheduleDecision.ScheduleDecision], never, Env>
84
+ ): Effect.Effect<readonly [any, Out, ScheduleDecision.ScheduleDecision], never, R>
85
85
  }
86
86
 
87
87
  /**
@@ -92,22 +92,22 @@ export declare namespace Schedule {
92
92
  * @since 2.0.0
93
93
  * @category models
94
94
  */
95
- export interface Variance<out Env, in In, out Out> {
95
+ export interface Variance<out Out, in In, out R> {
96
96
  readonly [ScheduleTypeId]: {
97
- readonly _Env: Types.Covariant<Env>
98
- readonly _In: Types.Contravariant<In>
99
97
  readonly _Out: Types.Covariant<Out>
98
+ readonly _In: Types.Contravariant<In>
99
+ readonly _R: Types.Covariant<R>
100
100
  }
101
101
  }
102
102
 
103
103
  /**
104
104
  * @since 2.0.0
105
105
  */
106
- export interface DriverVariance<out Env, in In, out Out> {
106
+ export interface DriverVariance<out Out, in In, out R> {
107
107
  readonly [ScheduleDriverTypeId]: {
108
- readonly _Env: Types.Covariant<Env>
109
- readonly _In: Types.Contravariant<In>
110
108
  readonly _Out: Types.Covariant<Out>
109
+ readonly _In: Types.Contravariant<In>
110
+ readonly _R: Types.Covariant<R>
111
111
  }
112
112
  }
113
113
  }
@@ -116,11 +116,11 @@ export declare namespace Schedule {
116
116
  * @since 2.0.0
117
117
  * @category models
118
118
  */
119
- export interface ScheduleDriver<out Env, in In, out Out> extends Schedule.DriverVariance<Env, In, Out> {
119
+ export interface ScheduleDriver<out Out, in In = unknown, out R = never> extends Schedule.DriverVariance<Out, In, R> {
120
120
  readonly state: Effect.Effect<unknown>
121
121
  readonly last: Effect.Effect<Out, Cause.NoSuchElementException>
122
122
  readonly reset: Effect.Effect<void>
123
- next(input: In): Effect.Effect<Out, Option.Option<never>, Env>
123
+ next(input: In): Effect.Effect<Out, Option.Option<never>, R>
124
124
  }
125
125
 
126
126
  /**
@@ -130,14 +130,14 @@ export interface ScheduleDriver<out Env, in In, out Out> extends Schedule.Driver
130
130
  * @since 2.0.0
131
131
  * @category constructors
132
132
  */
133
- export const makeWithState: <S, Env, In, Out>(
133
+ export const makeWithState: <S, In, Out, R = never>(
134
134
  initial: S,
135
135
  step: (
136
136
  now: number,
137
137
  input: In,
138
138
  state: S
139
- ) => Effect.Effect<readonly [S, Out, ScheduleDecision.ScheduleDecision], never, Env>
140
- ) => Schedule<Env, In, Out> = internal.makeWithState
139
+ ) => Effect.Effect<readonly [S, Out, ScheduleDecision.ScheduleDecision], never, R>
140
+ ) => Schedule<Out, In, R> = internal.makeWithState
141
141
 
142
142
  /**
143
143
  * Returns a new schedule with the given delay added to every interval defined
@@ -147,8 +147,8 @@ export const makeWithState: <S, Env, In, Out>(
147
147
  * @category utils
148
148
  */
149
149
  export const addDelay: {
150
- <Out>(f: (out: Out) => Duration.DurationInput): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
151
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: (out: Out) => Duration.DurationInput): Schedule<Env, In, Out>
150
+ <Out>(f: (out: Out) => Duration.DurationInput): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
151
+ <Out, In, R>(self: Schedule<Out, In, R>, f: (out: Out) => Duration.DurationInput): Schedule<Out, In, R>
152
152
  } = internal.addDelay
153
153
 
154
154
  /**
@@ -159,13 +159,13 @@ export const addDelay: {
159
159
  * @category utils
160
160
  */
161
161
  export const addDelayEffect: {
162
- <Out, Env2>(
163
- f: (out: Out) => Effect.Effect<Duration.DurationInput, never, Env2>
164
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
165
- <Env, In, Out, Env2>(
166
- self: Schedule<Env, In, Out>,
167
- f: (out: Out) => Effect.Effect<Duration.DurationInput, never, Env2>
168
- ): Schedule<Env | Env2, In, Out>
162
+ <Out, R2>(
163
+ f: (out: Out) => Effect.Effect<Duration.DurationInput, never, R2>
164
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
165
+ <Out, In, R, R2>(
166
+ self: Schedule<Out, In, R>,
167
+ f: (out: Out) => Effect.Effect<Duration.DurationInput, never, R2>
168
+ ): Schedule<Out, In, R | R2>
169
169
  } = internal.addDelayEffect
170
170
 
171
171
  /**
@@ -175,13 +175,13 @@ export const addDelayEffect: {
175
175
  * @category sequencing
176
176
  */
177
177
  export const andThen: {
178
- <Env1, In1, Out2>(
179
- that: Schedule<Env1, In1, Out2>
180
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In & In1, Out2 | Out>
181
- <Env, In, Out, Env1, In1, Out2>(
182
- self: Schedule<Env, In, Out>,
183
- that: Schedule<Env1, In1, Out2>
184
- ): Schedule<Env | Env1, In & In1, Out | Out2>
178
+ <Out2, In2, R2>(
179
+ that: Schedule<Out2, In2, R2>
180
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out2 | Out, In & In2, R2 | R>
181
+ <Out, In, R, Out2, In2, R2>(
182
+ self: Schedule<Out, In, R>,
183
+ that: Schedule<Out2, In2, R2>
184
+ ): Schedule<Out | Out2, In & In2, R | R2>
185
185
  } = internal.andThen
186
186
 
187
187
  /**
@@ -192,13 +192,13 @@ export const andThen: {
192
192
  * @category sequencing
193
193
  */
194
194
  export const andThenEither: {
195
- <Env2, In2, Out2>(
196
- that: Schedule<Env2, In2, Out2>
197
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Either.Either<Out, Out2>>
198
- <Env, In, Out, Env2, In2, Out2>(
199
- self: Schedule<Env, In, Out>,
200
- that: Schedule<Env2, In2, Out2>
201
- ): Schedule<Env | Env2, In & In2, Either.Either<Out, Out2>>
195
+ <Out2, In2, R2>(
196
+ that: Schedule<Out2, In2, R2>
197
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Either.Either<Out2, Out>, In & In2, R2 | R>
198
+ <Out, In, R, Out2, In2, R2>(
199
+ self: Schedule<Out, In, R>,
200
+ that: Schedule<Out2, In2, R2>
201
+ ): Schedule<Either.Either<Out2, Out>, In & In2, R | R2>
202
202
  } = internal.andThenEither
203
203
 
204
204
  /**
@@ -208,8 +208,8 @@ export const andThenEither: {
208
208
  * @category mapping
209
209
  */
210
210
  export const as: {
211
- <Out2>(out: Out2): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out2>
212
- <Env, In, Out, Out2>(self: Schedule<Env, In, Out>, out: Out2): Schedule<Env, In, Out2>
211
+ <Out2>(out: Out2): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out2, In, R>
212
+ <Out, In, R, Out2>(self: Schedule<Out, In, R>, out: Out2): Schedule<Out2, In, R>
213
213
  } = internal.as
214
214
 
215
215
  /**
@@ -218,7 +218,7 @@ export const as: {
218
218
  * @since 2.0.0
219
219
  * @category constructors
220
220
  */
221
- export const asUnit: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, void> = internal.asUnit
221
+ export const asUnit: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<void, In, R> = internal.asUnit
222
222
 
223
223
  /**
224
224
  * Returns a new schedule that has both the inputs and outputs of this and the
@@ -228,21 +228,13 @@ export const asUnit: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<En
228
228
  * @category utils
229
229
  */
230
230
  export const bothInOut: {
231
- <Env2, In2, Out2>(
232
- that: Schedule<Env2, In2, Out2>
233
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<
234
- Env2 | Env,
235
- readonly [In, In2], // readonly because contravariant
236
- [Out, Out2]
237
- >
238
- <Env, In, Out, Env2, In2, Out2>(
239
- self: Schedule<Env, In, Out>,
240
- that: Schedule<Env2, In2, Out2>
241
- ): Schedule<
242
- Env | Env2,
243
- readonly [In, In2], // readonly because contravariant
244
- [Out, Out2]
245
- >
231
+ <Out2, In2, R2>(
232
+ that: Schedule<Out2, In2, R2>
233
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], readonly [In, In2], R2 | R>
234
+ <Out, In, R, Out2, In2, R2>(
235
+ self: Schedule<Out, In, R>,
236
+ that: Schedule<Out2, In2, R2>
237
+ ): Schedule<[Out, Out2], readonly [In, In2], R | R2>
246
238
  } = internal.bothInOut
247
239
 
248
240
  /**
@@ -254,8 +246,8 @@ export const bothInOut: {
254
246
  * @category utils
255
247
  */
256
248
  export const check: {
257
- <In, Out>(test: (input: In, output: Out) => boolean): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
258
- <Env, In, Out>(self: Schedule<Env, In, Out>, test: (input: In, output: Out) => boolean): Schedule<Env, In, Out>
249
+ <In, Out>(test: (input: In, output: Out) => boolean): <R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
250
+ <Out, In, R>(self: Schedule<Out, In, R>, test: (input: In, output: Out) => boolean): Schedule<Out, In, R>
259
251
  } = internal.check
260
252
 
261
253
  /**
@@ -267,13 +259,13 @@ export const check: {
267
259
  * @category utils
268
260
  */
269
261
  export const checkEffect: {
270
- <In, Out, Env2>(
271
- test: (input: In, output: Out) => Effect.Effect<boolean, never, Env2>
272
- ): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
273
- <Env, In, Out, Env2>(
274
- self: Schedule<Env, In, Out>,
275
- test: (input: In, output: Out) => Effect.Effect<boolean, never, Env2>
276
- ): Schedule<Env | Env2, In, Out>
262
+ <In, Out, R2>(
263
+ test: (input: In, output: Out) => Effect.Effect<boolean, never, R2>
264
+ ): <R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
265
+ <Out, In, R, R2>(
266
+ self: Schedule<Out, In, R>,
267
+ test: (input: In, output: Out) => Effect.Effect<boolean, never, R2>
268
+ ): Schedule<Out, In, R | R2>
277
269
  } = internal.checkEffect
278
270
 
279
271
  /**
@@ -282,7 +274,7 @@ export const checkEffect: {
282
274
  * @since 2.0.0
283
275
  * @category constructors
284
276
  */
285
- export const collectAllInputs: <A>() => Schedule<never, A, Chunk.Chunk<A>> = internal.collectAllInputs
277
+ export const collectAllInputs: <A>() => Schedule<Chunk.Chunk<A>, A> = internal.collectAllInputs
286
278
 
287
279
  /**
288
280
  * Returns a new schedule that collects the outputs of this one into a chunk.
@@ -290,7 +282,7 @@ export const collectAllInputs: <A>() => Schedule<never, A, Chunk.Chunk<A>> = int
290
282
  * @since 2.0.0
291
283
  * @category utils
292
284
  */
293
- export const collectAllOutputs: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Chunk.Chunk<Out>> =
285
+ export const collectAllOutputs: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Chunk.Chunk<Out>, In, R> =
294
286
  internal.collectAllOutputs
295
287
 
296
288
  /**
@@ -300,7 +292,7 @@ export const collectAllOutputs: <Env, In, Out>(self: Schedule<Env, In, Out>) =>
300
292
  * @since 2.0.0
301
293
  * @category utils
302
294
  */
303
- export const collectUntil: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chunk<A>> = internal.collectUntil
295
+ export const collectUntil: <A>(f: Predicate<A>) => Schedule<Chunk.Chunk<A>, A> = internal.collectUntil
304
296
 
305
297
  /**
306
298
  * A schedule that recurs until the effectful condition f fails, collecting
@@ -309,9 +301,9 @@ export const collectUntil: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chun
309
301
  * @since 2.0.0
310
302
  * @category utils
311
303
  */
312
- export const collectUntilEffect: <Env, A>(
313
- f: (a: A) => Effect.Effect<boolean, never, Env>
314
- ) => Schedule<Env, A, Chunk.Chunk<A>> = internal.collectUntilEffect
304
+ export const collectUntilEffect: <A, R>(
305
+ f: (a: A) => Effect.Effect<boolean, never, R>
306
+ ) => Schedule<Chunk.Chunk<A>, A, R> = internal.collectUntilEffect
315
307
 
316
308
  /**
317
309
  * A schedule that recurs as long as the condition f holds, collecting all
@@ -320,7 +312,7 @@ export const collectUntilEffect: <Env, A>(
320
312
  * @since 2.0.0
321
313
  * @category utils
322
314
  */
323
- export const collectWhile: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chunk<A>> = internal.collectWhile
315
+ export const collectWhile: <A>(f: Predicate<A>) => Schedule<Chunk.Chunk<A>, A> = internal.collectWhile
324
316
 
325
317
  /**
326
318
  * A schedule that recurs as long as the effectful condition holds, collecting
@@ -329,9 +321,9 @@ export const collectWhile: <A>(f: Predicate<A>) => Schedule<never, A, Chunk.Chun
329
321
  * @category utils
330
322
  * @since 2.0.0
331
323
  */
332
- export const collectWhileEffect: <Env, A>(
333
- f: (a: A) => Effect.Effect<boolean, never, Env>
334
- ) => Schedule<Env, A, Chunk.Chunk<A>> = internal.collectWhileEffect
324
+ export const collectWhileEffect: <A, R>(
325
+ f: (a: A) => Effect.Effect<boolean, never, R>
326
+ ) => Schedule<Chunk.Chunk<A>, A, R> = internal.collectWhileEffect
335
327
 
336
328
  /**
337
329
  * Returns the composition of this schedule and the specified schedule, by
@@ -343,13 +335,8 @@ export const collectWhileEffect: <Env, A>(
343
335
  * @category utils
344
336
  */
345
337
  export const compose: {
346
- <Env2, Out, Out2>(
347
- that: Schedule<Env2, Out, Out2>
348
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out2>
349
- <Env, In, Out, Env2, Out2>(
350
- self: Schedule<Env, In, Out>,
351
- that: Schedule<Env2, Out, Out2>
352
- ): Schedule<Env | Env2, In, Out2>
338
+ <Out2, Out, R2>(that: Schedule<Out2, Out, R2>): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out2, In, R2 | R>
339
+ <Out, In, R, Out2, R2>(self: Schedule<Out, In, R>, that: Schedule<Out2, Out, R2>): Schedule<Out2, In, R | R2>
353
340
  } = internal.compose
354
341
 
355
342
  /**
@@ -360,8 +347,8 @@ export const compose: {
360
347
  * @category mapping
361
348
  */
362
349
  export const mapInput: {
363
- <In, In2>(f: (in2: In2) => In): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In2, Out>
364
- <Env, In, Out, In2>(self: Schedule<Env, In, Out>, f: (in2: In2) => In): Schedule<Env, In2, Out>
350
+ <In, In2>(f: (in2: In2) => In): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In2, R>
351
+ <Out, In, R, In2>(self: Schedule<Out, In, R>, f: (in2: In2) => In): Schedule<Out, In2, R>
365
352
  } = internal.mapInput
366
353
 
367
354
  /**
@@ -372,13 +359,13 @@ export const mapInput: {
372
359
  * @category context
373
360
  */
374
361
  export const mapInputContext: {
375
- <Env0, Env>(
376
- f: (env0: Context.Context<Env0>) => Context.Context<Env>
377
- ): <In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env0, In, Out>
378
- <Env0, Env, In, Out>(
379
- self: Schedule<Env, In, Out>,
380
- f: (env0: Context.Context<Env0>) => Context.Context<Env>
381
- ): Schedule<Env0, In, Out>
362
+ <R0, R>(
363
+ f: (env0: Context.Context<R0>) => Context.Context<R>
364
+ ): <Out, In>(self: Schedule<Out, In, R>) => Schedule<Out, In, R0>
365
+ <Out, In, R, R0>(
366
+ self: Schedule<Out, In, R>,
367
+ f: (env0: Context.Context<R0>) => Context.Context<R>
368
+ ): Schedule<Out, In, R0>
382
369
  } = internal.mapInputContext
383
370
 
384
371
  /**
@@ -389,13 +376,13 @@ export const mapInputContext: {
389
376
  * @category mapping
390
377
  */
391
378
  export const mapInputEffect: {
392
- <In, Env2, In2>(
393
- f: (in2: In2) => Effect.Effect<In, never, Env2>
394
- ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In2, Out>
395
- <Env, In, Out, Env2, In2>(
396
- self: Schedule<Env, In, Out>,
397
- f: (in2: In2) => Effect.Effect<In, never, Env2>
398
- ): Schedule<Env | Env2, In2, Out>
379
+ <In2, In, R2>(
380
+ f: (in2: In2) => Effect.Effect<In, never, R2>
381
+ ): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In2, R2 | R>
382
+ <Out, In, R, In2, R2>(
383
+ self: Schedule<Out, In, R>,
384
+ f: (in2: In2) => Effect.Effect<In, never, R2>
385
+ ): Schedule<Out, In2, R | R2>
399
386
  } = internal.mapInputEffect
400
387
 
401
388
  /**
@@ -404,7 +391,7 @@ export const mapInputEffect: {
404
391
  * @since 2.0.0
405
392
  * @category constructors
406
393
  */
407
- export const count: Schedule<never, unknown, number> = internal.count
394
+ export const count: Schedule<number> = internal.count
408
395
 
409
396
  /**
410
397
  * Cron schedule that recurs every `minute` that matches the schedule.
@@ -416,7 +403,7 @@ export const count: Schedule<never, unknown, number> = internal.count
416
403
  * @since 2.0.0
417
404
  * @category constructors
418
405
  */
419
- export const cron: (expression: string | Cron.Cron) => Schedule<never, unknown, [number, number]> = internal.cron
406
+ export const cron: (expression: string | Cron.Cron) => Schedule<[number, number]> = internal.cron
420
407
 
421
408
  /**
422
409
  * Cron-like schedule that recurs every specified `day` of month. Won't recur
@@ -429,7 +416,7 @@ export const cron: (expression: string | Cron.Cron) => Schedule<never, unknown,
429
416
  * @since 2.0.0
430
417
  * @category constructors
431
418
  */
432
- export const dayOfMonth: (day: number) => Schedule<never, unknown, number> = internal.dayOfMonth
419
+ export const dayOfMonth: (day: number) => Schedule<number> = internal.dayOfMonth
433
420
 
434
421
  /**
435
422
  * Cron-like schedule that recurs every specified `day` of each week. It
@@ -441,7 +428,7 @@ export const dayOfMonth: (day: number) => Schedule<never, unknown, number> = int
441
428
  * @since 2.0.0
442
429
  * @category constructors
443
430
  */
444
- export const dayOfWeek: (day: number) => Schedule<never, unknown, number> = internal.dayOfWeek
431
+ export const dayOfWeek: (day: number) => Schedule<number> = internal.dayOfWeek
445
432
 
446
433
  /**
447
434
  * Returns a new schedule with the specified effectfully computed delay added
@@ -453,11 +440,11 @@ export const dayOfWeek: (day: number) => Schedule<never, unknown, number> = inte
453
440
  export const delayed: {
454
441
  (
455
442
  f: (duration: Duration.Duration) => Duration.DurationInput
456
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
457
- <Env, In, Out>(
458
- self: Schedule<Env, In, Out>,
443
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
444
+ <Out, In, R>(
445
+ self: Schedule<Out, In, R>,
459
446
  f: (duration: Duration.Duration) => Duration.DurationInput
460
- ): Schedule<Env, In, Out>
447
+ ): Schedule<Out, In, R>
461
448
  } = internal.delayed
462
449
 
463
450
  /**
@@ -468,13 +455,13 @@ export const delayed: {
468
455
  * @category constructors
469
456
  */
470
457
  export const delayedEffect: {
471
- <Env2>(
472
- f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
473
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
474
- <Env, In, Out, Env2>(
475
- self: Schedule<Env, In, Out>,
476
- f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
477
- ): Schedule<Env | Env2, In, Out>
458
+ <R2>(
459
+ f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, R2>
460
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
461
+ <Out, In, R, R2>(
462
+ self: Schedule<Out, In, R>,
463
+ f: (duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, R2>
464
+ ): Schedule<Out, In, R | R2>
478
465
  } = internal.delayedEffect
479
466
 
480
467
  /**
@@ -484,9 +471,9 @@ export const delayedEffect: {
484
471
  * @since 2.0.0
485
472
  * @category constructors
486
473
  */
487
- export const delayedSchedule: <Env, In>(
488
- schedule: Schedule<Env, In, Duration.Duration>
489
- ) => Schedule<Env, In, Duration.Duration> = internal.delayedSchedule
474
+ export const delayedSchedule: <In, R>(
475
+ schedule: Schedule<Duration.Duration, In, R>
476
+ ) => Schedule<Duration.Duration, In, R> = internal.delayedSchedule
490
477
 
491
478
  /**
492
479
  * Returns a new schedule that outputs the delay between each occurence.
@@ -494,8 +481,7 @@ export const delayedSchedule: <Env, In>(
494
481
  * @since 2.0.0
495
482
  * @category constructors
496
483
  */
497
- export const delays: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Duration.Duration> =
498
- internal.delays
484
+ export const delays: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Duration.Duration, In, R> = internal.delays
499
485
 
500
486
  /**
501
487
  * Returns a new schedule that maps both the input and output.
@@ -504,19 +490,13 @@ export const delays: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<En
504
490
  * @category mapping
505
491
  */
506
492
  export const mapBoth: {
507
- <In, Out, In2, Out2>(
508
- options: {
509
- readonly onInput: (in2: In2) => In
510
- readonly onOutput: (out: Out) => Out2
511
- }
512
- ): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env, In2, Out2>
513
- <Env, In, Out, In2, Out2>(
514
- self: Schedule<Env, In, Out>,
515
- options: {
516
- readonly onInput: (in2: In2) => In
517
- readonly onOutput: (out: Out) => Out2
518
- }
519
- ): Schedule<Env, In2, Out2>
493
+ <In2, In, Out, Out2>(
494
+ options: { readonly onInput: (in2: In2) => In; readonly onOutput: (out: Out) => Out2 }
495
+ ): <R>(self: Schedule<Out, In, R>) => Schedule<Out2, In2, R>
496
+ <Out, In, R, In2, Out2>(
497
+ self: Schedule<Out, In, R>,
498
+ options: { readonly onInput: (in2: In2) => In; readonly onOutput: (out: Out) => Out2 }
499
+ ): Schedule<Out2, In2, R>
520
500
  } = internal.mapBoth
521
501
 
522
502
  /**
@@ -526,19 +506,19 @@ export const mapBoth: {
526
506
  * @category mapping
527
507
  */
528
508
  export const mapBothEffect: {
529
- <In2, Env2, In, Out, Env3, Out2>(
509
+ <In2, In, R2, Out, R3, Out2>(
530
510
  options: {
531
- readonly onInput: (input: In2) => Effect.Effect<In, never, Env2>
532
- readonly onOutput: (out: Out) => Effect.Effect<Out2, never, Env3>
511
+ readonly onInput: (input: In2) => Effect.Effect<In, never, R2>
512
+ readonly onOutput: (out: Out) => Effect.Effect<Out2, never, R3>
533
513
  }
534
- ): <Env>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env3 | Env, In2, Out2>
535
- <Env, In, Out, In2, Env2, Env3, Out2>(
536
- self: Schedule<Env, In, Out>,
514
+ ): <R>(self: Schedule<Out, In, R>) => Schedule<Out2, In2, R2 | R3 | R>
515
+ <Out, In, R, In2, R2, Out2, R3>(
516
+ self: Schedule<Out, In, R>,
537
517
  options: {
538
- readonly onInput: (input: In2) => Effect.Effect<In, never, Env2>
539
- readonly onOutput: (out: Out) => Effect.Effect<Out2, never, Env3>
518
+ readonly onInput: (input: In2) => Effect.Effect<In, never, R2>
519
+ readonly onOutput: (out: Out) => Effect.Effect<Out2, never, R3>
540
520
  }
541
- ): Schedule<Env | Env2 | Env3, In2, Out2>
521
+ ): Schedule<Out2, In2, R | R2 | R3>
542
522
  } = internal.mapBothEffect
543
523
 
544
524
  /**
@@ -548,9 +528,9 @@ export const mapBothEffect: {
548
528
  * @since 2.0.0
549
529
  * @category getter
550
530
  */
551
- export const driver: <Env, In, Out>(
552
- self: Schedule<Env, In, Out>
553
- ) => Effect.Effect<ScheduleDriver<Env, In, Out>> = internal.driver
531
+ export const driver: <Out, In, R>(
532
+ self: Schedule<Out, In, R>
533
+ ) => Effect.Effect<ScheduleDriver<Out, In, R>> = internal.driver
554
534
 
555
535
  /**
556
536
  * A schedule that can recur one time, the specified amount of time into the
@@ -559,8 +539,7 @@ export const driver: <Env, In, Out>(
559
539
  * @since 2.0.0
560
540
  * @category constructors
561
541
  */
562
- export const duration: (duration: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
563
- internal.duration
542
+ export const duration: (duration: Duration.DurationInput) => Schedule<Duration.Duration> = internal.duration
564
543
 
565
544
  /**
566
545
  * Returns a new schedule that performs a geometric union on the intervals
@@ -570,13 +549,13 @@ export const duration: (duration: Duration.DurationInput) => Schedule<never, unk
570
549
  * @category alternatives
571
550
  */
572
551
  export const either: {
573
- <Env2, In2, Out2>(
574
- that: Schedule<Env2, In2, Out2>
575
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
576
- <Env, In, Out, Env2, In2, Out2>(
577
- self: Schedule<Env, In, Out>,
578
- that: Schedule<Env2, In2, Out2>
579
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
552
+ <Out2, In2, R2>(
553
+ that: Schedule<Out2, In2, R2>
554
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
555
+ <Out, In, R, Out2, In2, R2>(
556
+ self: Schedule<Out, In, R>,
557
+ that: Schedule<Out2, In2, R2>
558
+ ): Schedule<[Out, Out2], In & In2, R | R2>
580
559
  } = internal.either
581
560
 
582
561
  /**
@@ -586,15 +565,15 @@ export const either: {
586
565
  * @category alternatives
587
566
  */
588
567
  export const eitherWith: {
589
- <Env2, In2, Out2>(
590
- that: Schedule<Env2, In2, Out2>,
568
+ <Out2, In2, R2>(
569
+ that: Schedule<Out2, In2, R2>,
591
570
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
592
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
593
- <Env, In, Out, Env2, In2, Out2>(
594
- self: Schedule<Env, In, Out>,
595
- that: Schedule<Env2, In2, Out2>,
571
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
572
+ <Out, In, R, Out2, In2, R2>(
573
+ self: Schedule<Out, In, R>,
574
+ that: Schedule<Out2, In2, R2>,
596
575
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
597
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
576
+ ): Schedule<[Out, Out2], In & In2, R | R2>
598
577
  } = internal.eitherWith
599
578
 
600
579
  /**
@@ -604,7 +583,7 @@ export const eitherWith: {
604
583
  * @since 2.0.0
605
584
  * @category constructors
606
585
  */
607
- export const elapsed: Schedule<never, unknown, Duration.Duration> = internal.elapsed
586
+ export const elapsed: Schedule<Duration.Duration> = internal.elapsed
608
587
 
609
588
  /**
610
589
  * Returns a new schedule that will run the specified finalizer as soon as the
@@ -617,8 +596,8 @@ export const elapsed: Schedule<never, unknown, Duration.Duration> = internal.ela
617
596
  * @category finalization
618
597
  */
619
598
  export const ensuring: {
620
- <X>(finalizer: Effect.Effect<X>): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
621
- <Env, In, Out, X>(self: Schedule<Env, In, Out>, finalizer: Effect.Effect<X>): Schedule<Env, In, Out>
599
+ <X>(finalizer: Effect.Effect<X, never, never>): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
600
+ <Out, In, R, X>(self: Schedule<Out, In, R>, finalizer: Effect.Effect<X, never, never>): Schedule<Out, In, R>
622
601
  } = internal.ensuring
623
602
 
624
603
  /**
@@ -632,7 +611,7 @@ export const ensuring: {
632
611
  export const exponential: (
633
612
  base: Duration.DurationInput,
634
613
  factor?: number
635
- ) => Schedule<never, unknown, Duration.Duration> = internal.exponential
614
+ ) => Schedule<Duration.Duration> = internal.exponential
636
615
 
637
616
  /**
638
617
  * A schedule that always recurs, increasing delays by summing the preceding
@@ -642,8 +621,7 @@ export const exponential: (
642
621
  * @since 2.0.0
643
622
  * @category constructors
644
623
  */
645
- export const fibonacci: (one: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
646
- internal.fibonacci
624
+ export const fibonacci: (one: Duration.DurationInput) => Schedule<Duration.Duration> = internal.fibonacci
647
625
 
648
626
  /**
649
627
  * A schedule that recurs on a fixed interval. Returns the number of
@@ -660,7 +638,7 @@ export const fibonacci: (one: Duration.DurationInput) => Schedule<never, unknown
660
638
  * @since 2.0.0
661
639
  * @category constructors
662
640
  */
663
- export const fixed: (interval: Duration.DurationInput) => Schedule<never, unknown, number> = internal.fixed
641
+ export const fixed: (interval: Duration.DurationInput) => Schedule<number> = internal.fixed
664
642
 
665
643
  /**
666
644
  * A schedule that always recurs, producing a count of repeats: 0, 1, 2.
@@ -668,7 +646,7 @@ export const fixed: (interval: Duration.DurationInput) => Schedule<never, unknow
668
646
  * @since 2.0.0
669
647
  * @category constructors
670
648
  */
671
- export const forever: Schedule<never, unknown, number> = internal.forever
649
+ export const forever: Schedule<number> = internal.forever
672
650
 
673
651
  /**
674
652
  * A schedule that recurs once with the specified delay.
@@ -676,8 +654,7 @@ export const forever: Schedule<never, unknown, number> = internal.forever
676
654
  * @since 2.0.0
677
655
  * @category constructors
678
656
  */
679
- export const fromDelay: (delay: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
680
- internal.fromDelay
657
+ export const fromDelay: (delay: Duration.DurationInput) => Schedule<Duration.Duration> = internal.fromDelay
681
658
 
682
659
  /**
683
660
  * A schedule that recurs once for each of the specified durations, delaying
@@ -690,7 +667,7 @@ export const fromDelay: (delay: Duration.DurationInput) => Schedule<never, unkno
690
667
  export const fromDelays: (
691
668
  delay: Duration.DurationInput,
692
669
  ...delays: Array<Duration.DurationInput>
693
- ) => Schedule<never, unknown, Duration.Duration> = internal.fromDelays
670
+ ) => Schedule<Duration.Duration> = internal.fromDelays
694
671
 
695
672
  /**
696
673
  * A schedule that always recurs, mapping input values through the specified
@@ -699,7 +676,7 @@ export const fromDelays: (
699
676
  * @since 2.0.0
700
677
  * @category constructors
701
678
  */
702
- export const fromFunction: <A, B>(f: (a: A) => B) => Schedule<never, A, B> = internal.fromFunction
679
+ export const fromFunction: <A, B>(f: (a: A) => B) => Schedule<B, A> = internal.fromFunction
703
680
 
704
681
  /**
705
682
  * Cron-like schedule that recurs every specified `hour` of each day. It
@@ -710,7 +687,7 @@ export const fromFunction: <A, B>(f: (a: A) => B) => Schedule<never, A, B> = int
710
687
  * @since 2.0.0
711
688
  * @category constructors
712
689
  */
713
- export const hourOfDay: (hour: number) => Schedule<never, unknown, number> = internal.hourOfDay
690
+ export const hourOfDay: (hour: number) => Schedule<number> = internal.hourOfDay
714
691
 
715
692
  /**
716
693
  * A schedule that always recurs, which returns inputs as outputs.
@@ -718,7 +695,7 @@ export const hourOfDay: (hour: number) => Schedule<never, unknown, number> = int
718
695
  * @since 2.0.0
719
696
  * @category constructors
720
697
  */
721
- export const identity: <A>() => Schedule<never, A, A> = internal.identity
698
+ export const identity: <A>() => Schedule<A, A> = internal.identity
722
699
 
723
700
  /**
724
701
  * Returns a new schedule that performs a geometric intersection on the
@@ -728,13 +705,13 @@ export const identity: <A>() => Schedule<never, A, A> = internal.identity
728
705
  * @category utils
729
706
  */
730
707
  export const intersect: {
731
- <Env2, In2, Out2>(
732
- that: Schedule<Env2, In2, Out2>
733
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
734
- <Env, In, Out, Env2, In2, Out2>(
735
- self: Schedule<Env, In, Out>,
736
- that: Schedule<Env2, In2, Out2>
737
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
708
+ <Out2, In2, R2>(
709
+ that: Schedule<Out2, In2, R2>
710
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
711
+ <Out, In, R, Out2, In2, R2>(
712
+ self: Schedule<Out, In, R>,
713
+ that: Schedule<Out2, In2, R2>
714
+ ): Schedule<[Out, Out2], In & In2, R | R2>
738
715
  } = internal.intersect
739
716
 
740
717
  /**
@@ -746,15 +723,15 @@ export const intersect: {
746
723
  * @category utils
747
724
  */
748
725
  export const intersectWith: {
749
- <Env2, In2, Out2>(
750
- that: Schedule<Env2, In2, Out2>,
726
+ <Out2, In2, R2>(
727
+ that: Schedule<Out2, In2, R2>,
751
728
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
752
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
753
- <Env, In, Out, Env2, In2, Out2>(
754
- self: Schedule<Env, In, Out>,
755
- that: Schedule<Env2, In2, Out2>,
729
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
730
+ <Out, In, R, Out2, In2, R2>(
731
+ self: Schedule<Out, In, R>,
732
+ that: Schedule<Out2, In2, R2>,
756
733
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
757
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
734
+ ): Schedule<[Out, Out2], In & In2, R | R2>
758
735
  } = internal.intersectWith
759
736
 
760
737
  /**
@@ -769,7 +746,7 @@ export const intersectWith: {
769
746
  * @since 2.0.0
770
747
  * @category constructors
771
748
  */
772
- export const jittered: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out> = internal.jittered
749
+ export const jittered: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R> = internal.jittered
773
750
 
774
751
  /**
775
752
  * Returns a new schedule that randomly modifies the size of the intervals of
@@ -782,13 +759,13 @@ export const jittered: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<
782
759
  * @category constructors
783
760
  */
784
761
  export const jitteredWith: {
785
- (options: { min?: number; max?: number }): <Env, In, Out>(
786
- self: Schedule<Env, In, Out>
787
- ) => Schedule<Env, In, Out>
788
- <Env, In, Out>(
789
- self: Schedule<Env, In, Out>,
790
- options: { min?: number; max?: number }
791
- ): Schedule<Env, In, Out>
762
+ (
763
+ options: { min?: number | undefined; max?: number | undefined }
764
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
765
+ <Out, In, R>(
766
+ self: Schedule<Out, In, R>,
767
+ options: { min?: number | undefined; max?: number | undefined }
768
+ ): Schedule<Out, In, R>
792
769
  } = internal.jitteredWith
793
770
 
794
771
  /**
@@ -799,7 +776,7 @@ export const jitteredWith: {
799
776
  * @since 2.0.0
800
777
  * @category constructors
801
778
  */
802
- export const linear: (base: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> = internal.linear
779
+ export const linear: (base: Duration.DurationInput) => Schedule<Duration.Duration> = internal.linear
803
780
 
804
781
  /**
805
782
  * Returns a new schedule that maps the output of this schedule through the
@@ -809,8 +786,8 @@ export const linear: (base: Duration.DurationInput) => Schedule<never, unknown,
809
786
  * @category mapping
810
787
  */
811
788
  export const map: {
812
- <Out, Out2>(f: (out: Out) => Out2): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out2>
813
- <Env, In, Out, Out2>(self: Schedule<Env, In, Out>, f: (out: Out) => Out2): Schedule<Env, In, Out2>
789
+ <Out, Out2>(f: (out: Out) => Out2): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out2, In, R>
790
+ <Out, In, R, Out2>(self: Schedule<Out, In, R>, f: (out: Out) => Out2): Schedule<Out2, In, R>
814
791
  } = internal.map
815
792
 
816
793
  /**
@@ -821,13 +798,13 @@ export const map: {
821
798
  * @category mapping
822
799
  */
823
800
  export const mapEffect: {
824
- <Out, Env2, Out2>(
825
- f: (out: Out) => Effect.Effect<Out2, never, Env2>
826
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out2>
827
- <Env, In, Out, Env2, Out2>(
828
- self: Schedule<Env, In, Out>,
829
- f: (out: Out) => Effect.Effect<Out2, never, Env2>
830
- ): Schedule<Env | Env2, In, Out2>
801
+ <Out, Out2, R2>(
802
+ f: (out: Out) => Effect.Effect<Out2, never, R2>
803
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out2, In, R2 | R>
804
+ <Out, In, R, Out2, R2>(
805
+ self: Schedule<Out, In, R>,
806
+ f: (out: Out) => Effect.Effect<Out2, never, R2>
807
+ ): Schedule<Out2, In, R | R2>
831
808
  } = internal.mapEffect
832
809
 
833
810
  /**
@@ -840,7 +817,7 @@ export const mapEffect: {
840
817
  * @since 2.0.0
841
818
  * @category constructors
842
819
  */
843
- export const minuteOfHour: (minute: number) => Schedule<never, unknown, number> = internal.minuteOfHour
820
+ export const minuteOfHour: (minute: number) => Schedule<number> = internal.minuteOfHour
844
821
 
845
822
  /**
846
823
  * Returns a new schedule that modifies the delay using the specified
@@ -852,11 +829,11 @@ export const minuteOfHour: (minute: number) => Schedule<never, unknown, number>
852
829
  export const modifyDelay: {
853
830
  <Out>(
854
831
  f: (out: Out, duration: Duration.Duration) => Duration.DurationInput
855
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
856
- <Env, In, Out>(
857
- self: Schedule<Env, In, Out>,
832
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
833
+ <Out, In, R>(
834
+ self: Schedule<Out, In, R>,
858
835
  f: (out: Out, duration: Duration.Duration) => Duration.DurationInput
859
- ): Schedule<Env, In, Out>
836
+ ): Schedule<Out, In, R>
860
837
  } = internal.modifyDelay
861
838
 
862
839
  /**
@@ -867,13 +844,13 @@ export const modifyDelay: {
867
844
  * @category utils
868
845
  */
869
846
  export const modifyDelayEffect: {
870
- <Out, Env2>(
871
- f: (out: Out, duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
872
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
873
- <Env, In, Out, Env2>(
874
- self: Schedule<Env, In, Out>,
875
- f: (out: Out, duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, Env2>
876
- ): Schedule<Env | Env2, In, Out>
847
+ <Out, R2>(
848
+ f: (out: Out, duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, R2>
849
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
850
+ <Out, In, R, R2>(
851
+ self: Schedule<Out, In, R>,
852
+ f: (out: Out, duration: Duration.Duration) => Effect.Effect<Duration.DurationInput, never, R2>
853
+ ): Schedule<Out, In, R | R2>
877
854
  } = internal.modifyDelayEffect
878
855
 
879
856
  /**
@@ -885,13 +862,13 @@ export const modifyDelayEffect: {
885
862
  * @category utils
886
863
  */
887
864
  export const onDecision: {
888
- <Out, Env2, X>(
889
- f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<X, never, Env2>
890
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
891
- <Env, In, Out, Env2, X>(
892
- self: Schedule<Env, In, Out>,
893
- f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<X, never, Env2>
894
- ): Schedule<Env | Env2, In, Out>
865
+ <Out, X, R2>(
866
+ f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<X, never, R2>
867
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
868
+ <Out, In, R, X, R2>(
869
+ self: Schedule<Out, In, R>,
870
+ f: (out: Out, decision: ScheduleDecision.ScheduleDecision) => Effect.Effect<X, never, R2>
871
+ ): Schedule<Out, In, R | R2>
895
872
  } = internal.onDecision
896
873
 
897
874
  /**
@@ -900,7 +877,7 @@ export const onDecision: {
900
877
  * @since 2.0.0
901
878
  * @category constructors
902
879
  */
903
- export const once: Schedule<never, unknown, void> = internal.once
880
+ export const once: Schedule<void> = internal.once
904
881
 
905
882
  /**
906
883
  * Returns a new schedule that passes through the inputs of this schedule.
@@ -908,8 +885,7 @@ export const once: Schedule<never, unknown, void> = internal.once
908
885
  * @since 2.0.0
909
886
  * @category utils
910
887
  */
911
- export const passthrough: <Env, Input, Output>(self: Schedule<Env, Input, Output>) => Schedule<Env, Input, Input> =
912
- internal.passthrough
888
+ export const passthrough: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<In, In, R> = internal.passthrough
913
889
 
914
890
  /**
915
891
  * Returns a new schedule with its context provided to it, so the
@@ -919,8 +895,8 @@ export const passthrough: <Env, Input, Output>(self: Schedule<Env, Input, Output
919
895
  * @category context
920
896
  */
921
897
  export const provideContext: {
922
- <Env>(context: Context.Context<Env>): <In, Out>(self: Schedule<Env, In, Out>) => Schedule<never, In, Out>
923
- <Env, In, Out>(self: Schedule<Env, In, Out>, context: Context.Context<Env>): Schedule<never, In, Out>
898
+ <R>(context: Context.Context<R>): <Out, In>(self: Schedule<Out, In, R>) => Schedule<Out, In, never>
899
+ <Out, In, R>(self: Schedule<Out, In, R>, context: Context.Context<R>): Schedule<Out, In, never>
924
900
  } = internal.provideContext
925
901
 
926
902
  /**
@@ -932,15 +908,15 @@ export const provideContext: {
932
908
  * @category context
933
909
  */
934
910
  export const provideService: {
935
- <T, T1 extends T>(
936
- tag: any,
937
- service: T1
938
- ): <Env, In, Out>(self: Schedule<T | Env, In, Out>) => Schedule<Exclude<Env, T>, In, Out>
939
- <Env, T, In, Out, T1 extends T>(
940
- self: Schedule<Env | T, In, Out>,
941
- tag: any,
942
- service: T1
943
- ): Schedule<Exclude<Env, T>, In, Out>
911
+ <T extends Context.Tag<any, any>>(
912
+ tag: T,
913
+ service: Context.Tag.Service<T>
914
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, Exclude<R, Context.Tag.Identifier<T>>>
915
+ <Out, In, R, T extends Context.Tag<any, any>>(
916
+ self: Schedule<Out, In, R>,
917
+ tag: T,
918
+ service: Context.Tag.Service<T>
919
+ ): Schedule<Out, In, Exclude<R, Context.Tag.Identifier<T>>>
944
920
  } = internal.provideService
945
921
 
946
922
  /**
@@ -949,7 +925,7 @@ export const provideService: {
949
925
  * @since 2.0.0
950
926
  * @category utils
951
927
  */
952
- export const recurUntil: <A>(f: Predicate<A>) => Schedule<never, A, A> = internal.recurUntil
928
+ export const recurUntil: <A>(f: Predicate<A>) => Schedule<A, A> = internal.recurUntil
953
929
 
954
930
  /**
955
931
  * A schedule that recurs for until the predicate evaluates to true.
@@ -957,7 +933,7 @@ export const recurUntil: <A>(f: Predicate<A>) => Schedule<never, A, A> = interna
957
933
  * @since 2.0.0
958
934
  * @category utils
959
935
  */
960
- export const recurUntilEffect: <Env, A>(f: (a: A) => Effect.Effect<boolean, never, Env>) => Schedule<Env, A, A> =
936
+ export const recurUntilEffect: <A, R>(f: (a: A) => Effect.Effect<boolean, never, R>) => Schedule<A, A, R> =
961
937
  internal.recurUntilEffect
962
938
 
963
939
  /**
@@ -967,7 +943,7 @@ export const recurUntilEffect: <Env, A>(f: (a: A) => Effect.Effect<boolean, neve
967
943
  * @since 2.0.0
968
944
  * @category utils
969
945
  */
970
- export const recurUntilOption: <A, B>(pf: (a: A) => Option.Option<B>) => Schedule<never, A, Option.Option<B>> =
946
+ export const recurUntilOption: <A, B>(pf: (a: A) => Option.Option<B>) => Schedule<Option.Option<B>, A> =
971
947
  internal.recurUntilOption
972
948
 
973
949
  /**
@@ -976,8 +952,7 @@ export const recurUntilOption: <A, B>(pf: (a: A) => Option.Option<B>) => Schedul
976
952
  * @since 2.0.0
977
953
  * @category utils
978
954
  */
979
- export const recurUpTo: (duration: Duration.DurationInput) => Schedule<never, unknown, Duration.Duration> =
980
- internal.recurUpTo
955
+ export const recurUpTo: (duration: Duration.DurationInput) => Schedule<Duration.Duration> = internal.recurUpTo
981
956
 
982
957
  /**
983
958
  * A schedule that recurs for as long as the predicate evaluates to true.
@@ -985,7 +960,7 @@ export const recurUpTo: (duration: Duration.DurationInput) => Schedule<never, un
985
960
  * @since 2.0.0
986
961
  * @category utils
987
962
  */
988
- export const recurWhile: <A>(f: Predicate<A>) => Schedule<never, A, A> = internal.recurWhile
963
+ export const recurWhile: <A>(f: Predicate<A>) => Schedule<A, A> = internal.recurWhile
989
964
 
990
965
  /**
991
966
  * A schedule that recurs for as long as the effectful predicate evaluates to
@@ -994,7 +969,7 @@ export const recurWhile: <A>(f: Predicate<A>) => Schedule<never, A, A> = interna
994
969
  * @since 2.0.0
995
970
  * @category utils
996
971
  */
997
- export const recurWhileEffect: <Env, A>(f: (a: A) => Effect.Effect<boolean, never, Env>) => Schedule<Env, A, A> =
972
+ export const recurWhileEffect: <A, R>(f: (a: A) => Effect.Effect<boolean, never, R>) => Schedule<A, A, R> =
998
973
  internal.recurWhileEffect
999
974
 
1000
975
  /**
@@ -1004,7 +979,7 @@ export const recurWhileEffect: <Env, A>(f: (a: A) => Effect.Effect<boolean, neve
1004
979
  * @category constructors
1005
980
  * @since 2.0.0
1006
981
  */
1007
- export const recurs: (n: number) => Schedule<never, unknown, number> = internal.recurs
982
+ export const recurs: (n: number) => Schedule<number> = internal.recurs
1008
983
 
1009
984
  /**
1010
985
  * Returns a new schedule that folds over the outputs of this one.
@@ -1013,8 +988,8 @@ export const recurs: (n: number) => Schedule<never, unknown, number> = internal.
1013
988
  * @category folding
1014
989
  */
1015
990
  export const reduce: {
1016
- <Out, Z>(zero: Z, f: (z: Z, out: Out) => Z): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Z>
1017
- <Env, In, Out, Z>(self: Schedule<Env, In, Out>, zero: Z, f: (z: Z, out: Out) => Z): Schedule<Env, In, Z>
991
+ <Out, Z>(zero: Z, f: (z: Z, out: Out) => Z): <In, R>(self: Schedule<Out, In, R>) => Schedule<Z, In, R>
992
+ <Out, In, R, Z>(self: Schedule<Out, In, R>, zero: Z, f: (z: Z, out: Out) => Z): Schedule<Z, In, R>
1018
993
  } = internal.reduce
1019
994
 
1020
995
  /**
@@ -1024,15 +999,15 @@ export const reduce: {
1024
999
  * @category folding
1025
1000
  */
1026
1001
  export const reduceEffect: {
1027
- <Out, Env1, Z>(
1002
+ <Z, Out, R2>(
1028
1003
  zero: Z,
1029
- f: (z: Z, out: Out) => Effect.Effect<Z, never, Env1>
1030
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Z>
1031
- <Env, In, Out, Env1, Z>(
1032
- self: Schedule<Env, In, Out>,
1004
+ f: (z: Z, out: Out) => Effect.Effect<Z, never, R2>
1005
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Z, In, R2 | R>
1006
+ <Out, In, R, Z, R2>(
1007
+ self: Schedule<Out, In, R>,
1033
1008
  zero: Z,
1034
- f: (z: Z, out: Out) => Effect.Effect<Z, never, Env1>
1035
- ): Schedule<Env | Env1, In, Z>
1009
+ f: (z: Z, out: Out) => Effect.Effect<Z, never, R2>
1010
+ ): Schedule<Z, In, R | R2>
1036
1011
  } = internal.reduceEffect
1037
1012
 
1038
1013
  /**
@@ -1042,7 +1017,7 @@ export const reduceEffect: {
1042
1017
  * @since 2.0.0
1043
1018
  * @category constructors
1044
1019
  */
1045
- export const repeatForever: Schedule<never, unknown, number> = internal.forever
1020
+ export const repeatForever: Schedule<number> = internal.forever
1046
1021
 
1047
1022
  /**
1048
1023
  * Returns a new schedule that outputs the number of repetitions of this one.
@@ -1050,8 +1025,7 @@ export const repeatForever: Schedule<never, unknown, number> = internal.forever
1050
1025
  * @since 2.0.0
1051
1026
  * @category utils
1052
1027
  */
1053
- export const repetitions: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, number> =
1054
- internal.repetitions
1028
+ export const repetitions: <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<number, In, R> = internal.repetitions
1055
1029
 
1056
1030
  /**
1057
1031
  * Return a new schedule that automatically resets the schedule to its initial
@@ -1061,8 +1035,8 @@ export const repetitions: <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedu
1061
1035
  * @category utils
1062
1036
  */
1063
1037
  export const resetAfter: {
1064
- (duration: Duration.DurationInput): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1065
- <Env, In, Out>(self: Schedule<Env, In, Out>, duration: Duration.DurationInput): Schedule<Env, In, Out>
1038
+ (duration: Duration.DurationInput): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1039
+ <Out, In, R>(self: Schedule<Out, In, R>, duration: Duration.DurationInput): Schedule<Out, In, R>
1066
1040
  } = internal.resetAfter
1067
1041
 
1068
1042
  /**
@@ -1073,8 +1047,8 @@ export const resetAfter: {
1073
1047
  * @category utils
1074
1048
  */
1075
1049
  export const resetWhen: {
1076
- <Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1077
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
1050
+ <Out>(f: Predicate<Out>): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1051
+ <Out, In, R>(self: Schedule<Out, In, R>, f: Predicate<Out>): Schedule<Out, In, R>
1078
1052
  } = internal.resetWhen
1079
1053
 
1080
1054
  /**
@@ -1087,12 +1061,8 @@ export const run: {
1087
1061
  <In>(
1088
1062
  now: number,
1089
1063
  input: Iterable<In>
1090
- ): <Env, Out>(self: Schedule<Env, In, Out>) => Effect.Effect<Chunk.Chunk<Out>, never, Env>
1091
- <Env, In, Out>(
1092
- self: Schedule<Env, In, Out>,
1093
- now: number,
1094
- input: Iterable<In>
1095
- ): Effect.Effect<Chunk.Chunk<Out>, never, Env>
1064
+ ): <Out, R>(self: Schedule<Out, In, R>) => Effect.Effect<Chunk.Chunk<Out>, never, R>
1065
+ <Out, In, R>(self: Schedule<Out, In, R>, now: number, input: Iterable<In>): Effect.Effect<Chunk.Chunk<Out>, never, R>
1096
1066
  } = internal.run
1097
1067
 
1098
1068
  /**
@@ -1105,7 +1075,7 @@ export const run: {
1105
1075
  * @since 2.0.0
1106
1076
  * @category constructors
1107
1077
  */
1108
- export const secondOfMinute: (second: number) => Schedule<never, unknown, number> = internal.secondOfMinute
1078
+ export const secondOfMinute: (second: number) => Schedule<number> = internal.secondOfMinute
1109
1079
 
1110
1080
  /**
1111
1081
  * Returns a schedule that recurs continuously, each repetition spaced the
@@ -1114,7 +1084,7 @@ export const secondOfMinute: (second: number) => Schedule<never, unknown, number
1114
1084
  * @since 2.0.0
1115
1085
  * @category constructors
1116
1086
  */
1117
- export const spaced: (duration: Duration.DurationInput) => Schedule<never, unknown, number> = internal.spaced
1087
+ export const spaced: (duration: Duration.DurationInput) => Schedule<number> = internal.spaced
1118
1088
 
1119
1089
  /**
1120
1090
  * A schedule that does not recur, it just stops.
@@ -1122,7 +1092,7 @@ export const spaced: (duration: Duration.DurationInput) => Schedule<never, unkno
1122
1092
  * @since 2.0.0
1123
1093
  * @category constructors
1124
1094
  */
1125
- export const stop: Schedule<never, unknown, void> = internal.stop
1095
+ export const stop: Schedule<void> = internal.stop
1126
1096
 
1127
1097
  /**
1128
1098
  * Returns a schedule that repeats one time, producing the specified constant
@@ -1131,7 +1101,7 @@ export const stop: Schedule<never, unknown, void> = internal.stop
1131
1101
  * @since 2.0.0
1132
1102
  * @category constructors
1133
1103
  */
1134
- export const succeed: <A>(value: A) => Schedule<never, unknown, A> = internal.succeed
1104
+ export const succeed: <A>(value: A) => Schedule<A> = internal.succeed
1135
1105
 
1136
1106
  /**
1137
1107
  * Returns a schedule that repeats one time, producing the specified constant
@@ -1140,7 +1110,7 @@ export const succeed: <A>(value: A) => Schedule<never, unknown, A> = internal.su
1140
1110
  * @category constructors
1141
1111
  * @since 2.0.0
1142
1112
  */
1143
- export const sync: <A>(evaluate: LazyArg<A>) => Schedule<never, unknown, A> = internal.sync
1113
+ export const sync: <A>(evaluate: LazyArg<A>) => Schedule<A> = internal.sync
1144
1114
 
1145
1115
  /**
1146
1116
  * Returns a new schedule that effectfully processes every input to this
@@ -1150,13 +1120,13 @@ export const sync: <A>(evaluate: LazyArg<A>) => Schedule<never, unknown, A> = in
1150
1120
  * @category sequencing
1151
1121
  */
1152
1122
  export const tapInput: {
1153
- <Env2, In2, X>(
1154
- f: (input: In2) => Effect.Effect<X, never, Env2>
1155
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out>
1156
- <Env, In, Out, Env2, In2, X>(
1157
- self: Schedule<Env, In, Out>,
1158
- f: (input: In2) => Effect.Effect<X, never, Env2>
1159
- ): Schedule<Env | Env2, In & In2, Out>
1123
+ <In2, X, R2>(
1124
+ f: (input: In2) => Effect.Effect<X, never, R2>
1125
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In & In2, R2 | R>
1126
+ <Out, In, R, In2, X, R2>(
1127
+ self: Schedule<Out, In, R>,
1128
+ f: (input: In2) => Effect.Effect<X, never, R2>
1129
+ ): Schedule<Out, In & In2, R | R2>
1160
1130
  } = internal.tapInput
1161
1131
 
1162
1132
  /**
@@ -1167,13 +1137,13 @@ export const tapInput: {
1167
1137
  * @category sequencing
1168
1138
  */
1169
1139
  export const tapOutput: {
1170
- <Out, XO extends Out, Env2, X>(
1171
- f: (out: XO) => Effect.Effect<X, never, Env2>
1172
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1173
- <Env, In, Out, XO extends Out, Env2, X>(
1174
- self: Schedule<Env, In, Out>,
1175
- f: (out: XO) => Effect.Effect<X, never, Env2>
1176
- ): Schedule<Env | Env2, In, Out>
1140
+ <XO extends Out, X, R2, Out>(
1141
+ f: (out: XO) => Effect.Effect<X, never, R2>
1142
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
1143
+ <Out, In, R, XO extends Out, X, R2>(
1144
+ self: Schedule<Out, In, R>,
1145
+ f: (out: XO) => Effect.Effect<X, never, R2>
1146
+ ): Schedule<Out, In, R | R2>
1177
1147
  } = internal.tapOutput
1178
1148
 
1179
1149
  /**
@@ -1183,7 +1153,7 @@ export const tapOutput: {
1183
1153
  * @since 2.0.0
1184
1154
  * @category constructors
1185
1155
  */
1186
- export const unfold: <A>(initial: A, f: (a: A) => A) => Schedule<never, unknown, A> = internal.unfold
1156
+ export const unfold: <A>(initial: A, f: (a: A) => A) => Schedule<A> = internal.unfold
1187
1157
 
1188
1158
  /**
1189
1159
  * Returns a new schedule that performs a geometric union on the intervals
@@ -1193,13 +1163,13 @@ export const unfold: <A>(initial: A, f: (a: A) => A) => Schedule<never, unknown,
1193
1163
  * @category utils
1194
1164
  */
1195
1165
  export const union: {
1196
- <Env2, In2, Out2>(
1197
- that: Schedule<Env2, In2, Out2>
1198
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
1199
- <Env, In, Out, Env2, In2, Out2>(
1200
- self: Schedule<Env, In, Out>,
1201
- that: Schedule<Env2, In2, Out2>
1202
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
1166
+ <Out2, In2, R2>(
1167
+ that: Schedule<Out2, In2, R2>
1168
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
1169
+ <Out, In, R, Out2, In2, R2>(
1170
+ self: Schedule<Out, In, R>,
1171
+ that: Schedule<Out2, In2, R2>
1172
+ ): Schedule<[Out, Out2], In & In2, R | R2>
1203
1173
  } = internal.union
1204
1174
 
1205
1175
  /**
@@ -1211,15 +1181,15 @@ export const union: {
1211
1181
  * @category utils
1212
1182
  */
1213
1183
  export const unionWith: {
1214
- <Env2, In2, Out2>(
1215
- that: Schedule<Env2, In2, Out2>,
1184
+ <Out2, In2, R2>(
1185
+ that: Schedule<Out2, In2, R2>,
1216
1186
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
1217
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, [Out, Out2]>
1218
- <Env, In, Out, Env2, In2, Out2>(
1219
- self: Schedule<Env, In, Out>,
1220
- that: Schedule<Env2, In2, Out2>,
1187
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<[Out, Out2], In & In2, R2 | R>
1188
+ <Out, In, R, Out2, In2, R2>(
1189
+ self: Schedule<Out, In, R>,
1190
+ that: Schedule<Out2, In2, R2>,
1221
1191
  f: (x: Intervals.Intervals, y: Intervals.Intervals) => Intervals.Intervals
1222
- ): Schedule<Env | Env2, In & In2, [Out, Out2]>
1192
+ ): Schedule<[Out, Out2], In & In2, R | R2>
1223
1193
  } = internal.unionWith
1224
1194
 
1225
1195
  /**
@@ -1230,8 +1200,8 @@ export const unionWith: {
1230
1200
  * @category utils
1231
1201
  */
1232
1202
  export const untilInput: {
1233
- <In>(f: Predicate<In>): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1234
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<In>): Schedule<Env, In, Out>
1203
+ <In>(f: Predicate<In>): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1204
+ <Out, In, R>(self: Schedule<Out, In, R>, f: Predicate<In>): Schedule<Out, In, R>
1235
1205
  } = internal.untilInput
1236
1206
 
1237
1207
  /**
@@ -1242,13 +1212,13 @@ export const untilInput: {
1242
1212
  * @category utils
1243
1213
  */
1244
1214
  export const untilInputEffect: {
1245
- <In, Env2>(
1246
- f: (input: In) => Effect.Effect<boolean, never, Env2>
1247
- ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1248
- <Env, In, Out, Env2>(
1249
- self: Schedule<Env, In, Out>,
1250
- f: (input: In) => Effect.Effect<boolean, never, Env2>
1251
- ): Schedule<Env | Env2, In, Out>
1215
+ <In, R2>(
1216
+ f: (input: In) => Effect.Effect<boolean, never, R2>
1217
+ ): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
1218
+ <Out, In, R, R2>(
1219
+ self: Schedule<Out, In, R>,
1220
+ f: (input: In) => Effect.Effect<boolean, never, R2>
1221
+ ): Schedule<Out, In, R | R2>
1252
1222
  } = internal.untilInputEffect
1253
1223
 
1254
1224
  /**
@@ -1259,8 +1229,8 @@ export const untilInputEffect: {
1259
1229
  * @category utils
1260
1230
  */
1261
1231
  export const untilOutput: {
1262
- <Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1263
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
1232
+ <Out>(f: Predicate<Out>): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1233
+ <Out, In, R>(self: Schedule<Out, In, R>, f: Predicate<Out>): Schedule<Out, In, R>
1264
1234
  } = internal.untilOutput
1265
1235
 
1266
1236
  /**
@@ -1271,13 +1241,13 @@ export const untilOutput: {
1271
1241
  * @category utils
1272
1242
  */
1273
1243
  export const untilOutputEffect: {
1274
- <Out, Env2>(
1275
- f: (out: Out) => Effect.Effect<boolean, never, Env2>
1276
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1277
- <Env, In, Out, Env2>(
1278
- self: Schedule<Env, In, Out>,
1279
- f: (out: Out) => Effect.Effect<boolean, never, Env2>
1280
- ): Schedule<Env | Env2, In, Out>
1244
+ <Out, R2>(
1245
+ f: (out: Out) => Effect.Effect<boolean, never, R2>
1246
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
1247
+ <Out, In, R, R2>(
1248
+ self: Schedule<Out, In, R>,
1249
+ f: (out: Out) => Effect.Effect<boolean, never, R2>
1250
+ ): Schedule<Out, In, R | R2>
1281
1251
  } = internal.untilOutputEffect
1282
1252
 
1283
1253
  /**
@@ -1287,8 +1257,8 @@ export const untilOutputEffect: {
1287
1257
  * @category utils
1288
1258
  */
1289
1259
  export const upTo: {
1290
- (duration: Duration.DurationInput): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1291
- <Env, In, Out>(self: Schedule<Env, In, Out>, duration: Duration.DurationInput): Schedule<Env, In, Out>
1260
+ (duration: Duration.DurationInput): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1261
+ <Out, In, R>(self: Schedule<Out, In, R>, duration: Duration.DurationInput): Schedule<Out, In, R>
1292
1262
  } = internal.upTo
1293
1263
 
1294
1264
  /**
@@ -1299,8 +1269,8 @@ export const upTo: {
1299
1269
  * @category utils
1300
1270
  */
1301
1271
  export const whileInput: {
1302
- <In>(f: Predicate<In>): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1303
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<In>): Schedule<Env, In, Out>
1272
+ <In>(f: Predicate<In>): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1273
+ <Out, In, R>(self: Schedule<Out, In, R>, f: Predicate<In>): Schedule<Out, In, R>
1304
1274
  } = internal.whileInput
1305
1275
 
1306
1276
  /**
@@ -1311,13 +1281,13 @@ export const whileInput: {
1311
1281
  * @category utils
1312
1282
  */
1313
1283
  export const whileInputEffect: {
1314
- <In, Env2>(
1315
- f: (input: In) => Effect.Effect<boolean, never, Env2>
1316
- ): <Env, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In, Out>
1317
- <Env, In, Out, Env2>(
1318
- self: Schedule<Env, In, Out>,
1319
- f: (input: In) => Effect.Effect<boolean, never, Env2>
1320
- ): Schedule<Env | Env2, In, Out>
1284
+ <In, R2>(
1285
+ f: (input: In) => Effect.Effect<boolean, never, R2>
1286
+ ): <Out, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
1287
+ <Out, In, R, R2>(
1288
+ self: Schedule<Out, In, R>,
1289
+ f: (input: In) => Effect.Effect<boolean, never, R2>
1290
+ ): Schedule<Out, In, R | R2>
1321
1291
  } = internal.whileInputEffect
1322
1292
 
1323
1293
  /**
@@ -1328,8 +1298,8 @@ export const whileInputEffect: {
1328
1298
  * @category utils
1329
1299
  */
1330
1300
  export const whileOutput: {
1331
- <Out>(f: Predicate<Out>): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env, In, Out>
1332
- <Env, In, Out>(self: Schedule<Env, In, Out>, f: Predicate<Out>): Schedule<Env, In, Out>
1301
+ <Out>(f: Predicate<Out>): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R>
1302
+ <Out, In, R>(self: Schedule<Out, In, R>, f: Predicate<Out>): Schedule<Out, In, R>
1333
1303
  } = internal.whileOutput
1334
1304
 
1335
1305
  /**
@@ -1340,13 +1310,13 @@ export const whileOutput: {
1340
1310
  * @category utils
1341
1311
  */
1342
1312
  export const whileOutputEffect: {
1343
- <Out, Env1>(
1344
- f: (out: Out) => Effect.Effect<boolean, never, Env1>
1345
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env1 | Env, In, Out>
1346
- <Env, In, Out, Env1>(
1347
- self: Schedule<Env, In, Out>,
1348
- f: (out: Out) => Effect.Effect<boolean, never, Env1>
1349
- ): Schedule<Env | Env1, In, Out>
1313
+ <Out, R2>(
1314
+ f: (out: Out) => Effect.Effect<boolean, never, R2>
1315
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In, R2 | R>
1316
+ <Out, In, R, R2>(
1317
+ self: Schedule<Out, In, R>,
1318
+ f: (out: Out) => Effect.Effect<boolean, never, R2>
1319
+ ): Schedule<Out, In, R | R2>
1350
1320
  } = internal.whileOutputEffect
1351
1321
 
1352
1322
  /**
@@ -1365,7 +1335,7 @@ export const whileOutputEffect: {
1365
1335
  * @since 2.0.0
1366
1336
  * @category constructors
1367
1337
  */
1368
- export const windowed: (interval: Duration.DurationInput) => Schedule<never, unknown, number> = internal.windowed
1338
+ export const windowed: (interval: Duration.DurationInput) => Schedule<number> = internal.windowed
1369
1339
 
1370
1340
  /**
1371
1341
  * The same as `intersect` but ignores the right output.
@@ -1374,13 +1344,13 @@ export const windowed: (interval: Duration.DurationInput) => Schedule<never, unk
1374
1344
  * @category zipping
1375
1345
  */
1376
1346
  export const zipLeft: {
1377
- <Env2, In2, Out2>(
1378
- that: Schedule<Env2, In2, Out2>
1379
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out>
1380
- <Env, In, Out, Env2, In2, Out2>(
1381
- self: Schedule<Env, In, Out>,
1382
- that: Schedule<Env2, In2, Out2>
1383
- ): Schedule<Env | Env2, In & In2, Out>
1347
+ <Out2, In2, R2>(
1348
+ that: Schedule<Out2, In2, R2>
1349
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out, In & In2, R2 | R>
1350
+ <Out, In, R, Out2, In2, R2>(
1351
+ self: Schedule<Out, In, R>,
1352
+ that: Schedule<Out2, In2, R2>
1353
+ ): Schedule<Out, In & In2, R | R2>
1384
1354
  } = internal.zipLeft
1385
1355
 
1386
1356
  /**
@@ -1390,13 +1360,13 @@ export const zipLeft: {
1390
1360
  * @category zipping
1391
1361
  */
1392
1362
  export const zipRight: {
1393
- <Env2, In2, Out2>(
1394
- that: Schedule<Env2, In2, Out2>
1395
- ): <Env, In, Out>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out2>
1396
- <Env, In, Out, Env2, In2, Out2>(
1397
- self: Schedule<Env, In, Out>,
1398
- that: Schedule<Env2, In2, Out2>
1399
- ): Schedule<Env | Env2, In & In2, Out2>
1363
+ <Out2, In2, R2>(
1364
+ that: Schedule<Out2, In2, R2>
1365
+ ): <Out, In, R>(self: Schedule<Out, In, R>) => Schedule<Out2, In & In2, R2 | R>
1366
+ <Out, In, R, Out2, In2, R2>(
1367
+ self: Schedule<Out, In, R>,
1368
+ that: Schedule<Out2, In2, R2>
1369
+ ): Schedule<Out2, In & In2, R | R2>
1400
1370
  } = internal.zipRight
1401
1371
 
1402
1372
  /**
@@ -1406,13 +1376,13 @@ export const zipRight: {
1406
1376
  * @category zipping
1407
1377
  */
1408
1378
  export const zipWith: {
1409
- <Env2, In2, Out2, Out, Out3>(
1410
- that: Schedule<Env2, In2, Out2>,
1379
+ <Out2, In2, R2, Out, Out3>(
1380
+ that: Schedule<Out2, In2, R2>,
1411
1381
  f: (out: Out, out2: Out2) => Out3
1412
- ): <Env, In>(self: Schedule<Env, In, Out>) => Schedule<Env2 | Env, In & In2, Out3>
1413
- <Env, In, Out, Env2, In2, Out2, Out3>(
1414
- self: Schedule<Env, In, Out>,
1415
- that: Schedule<Env2, In2, Out2>,
1382
+ ): <In, R>(self: Schedule<Out, In, R>) => Schedule<Out3, In & In2, R2 | R>
1383
+ <Out, In, R, Out2, In2, R2, Out3>(
1384
+ self: Schedule<Out, In, R>,
1385
+ that: Schedule<Out2, In2, R2>,
1416
1386
  f: (out: Out, out2: Out2) => Out3
1417
- ): Schedule<Env | Env2, In & In2, Out3>
1387
+ ): Schedule<Out3, In & In2, R | R2>
1418
1388
  } = internal.zipWith