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.
- package/dist/cjs/BigInt.js +14 -1
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Effect.js +16 -61
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +35 -6
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/Equal.js +1 -1
- package/dist/cjs/Equal.js.map +1 -1
- package/dist/cjs/Exit.js +1 -1
- package/dist/cjs/Number.js +25 -1
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/ReadonlyArray.js +2 -2
- package/dist/cjs/ReadonlyArray.js.map +1 -1
- package/dist/cjs/ReadonlyRecord.js +71 -76
- package/dist/cjs/ReadonlyRecord.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schedule.js.map +1 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +3 -23
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/Struct.js +3 -1
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/TestAnnotation.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +5 -5
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel/channelState.js +5 -5
- package/dist/cjs/internal/channel/channelState.js.map +1 -1
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/clock.js +3 -4
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/cjs/internal/core-effect.js +6 -23
- package/dist/cjs/internal/core-effect.js.map +1 -1
- package/dist/cjs/internal/core.js +11 -27
- package/dist/cjs/internal/core.js.map +1 -1
- package/dist/cjs/internal/effect/circular.js +4 -5
- package/dist/cjs/internal/effect/circular.js.map +1 -1
- package/dist/cjs/internal/either.js +3 -3
- package/dist/cjs/internal/either.js.map +1 -1
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/layer.js +0 -2
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/runtime.js +12 -1
- package/dist/cjs/internal/runtime.js.map +1 -1
- package/dist/cjs/internal/schedule.js +4 -4
- package/dist/cjs/internal/schedule.js.map +1 -1
- package/dist/cjs/internal/sink.js +0 -2
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stm/stm.js +1 -0
- package/dist/cjs/internal/stm/stm.js.map +1 -1
- package/dist/cjs/internal/stream.js +51 -64
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/BigInt.d.ts +7 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +1 -1
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Cause.d.ts +1 -1
- package/dist/dts/Cause.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +11 -11
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +3 -3
- package/dist/dts/Config.d.ts +4 -4
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +1 -1
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Differ.d.ts +2 -2
- package/dist/dts/Differ.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +52 -108
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +126 -83
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/Encoding.d.ts +6 -6
- package/dist/dts/Encoding.d.ts.map +1 -1
- package/dist/dts/Equal.d.ts.map +1 -1
- package/dist/dts/Exit.d.ts +2 -2
- package/dist/dts/Fiber.d.ts +2 -2
- package/dist/dts/Fiber.d.ts.map +1 -1
- package/dist/dts/GroupBy.d.ts +12 -12
- package/dist/dts/GroupBy.d.ts.map +1 -1
- package/dist/dts/Layer.d.ts +26 -26
- package/dist/dts/Layer.d.ts.map +1 -1
- package/dist/dts/List.d.ts +2 -2
- package/dist/dts/Logger.d.ts +4 -4
- package/dist/dts/Match.d.ts +2 -2
- package/dist/dts/Match.d.ts.map +1 -1
- package/dist/dts/MergeDecision.d.ts +1 -1
- package/dist/dts/MergeState.d.ts +5 -5
- package/dist/dts/MergeState.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +13 -13
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/MetricPolling.d.ts +4 -4
- package/dist/dts/MetricPolling.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +8 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +11 -11
- package/dist/dts/ReadonlyArray.d.ts +9 -8
- package/dist/dts/ReadonlyArray.d.ts.map +1 -1
- package/dist/dts/ReadonlyRecord.d.ts +111 -94
- package/dist/dts/ReadonlyRecord.d.ts.map +1 -1
- package/dist/dts/Reloadable.d.ts +4 -4
- package/dist/dts/Reloadable.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +13 -13
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Resource.d.ts +1 -1
- package/dist/dts/Resource.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +144 -139
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schedule.d.ts +171 -179
- package/dist/dts/Schedule.d.ts.map +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts +1 -1
- package/dist/dts/SingleProducerAsyncInput.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +13 -13
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +355 -366
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +3 -3
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/SubscriptionRef.d.ts +2 -2
- package/dist/dts/TArray.d.ts +2 -2
- package/dist/dts/TDeferred.d.ts +3 -3
- package/dist/dts/TMap.d.ts +10 -10
- package/dist/dts/TSet.d.ts +4 -4
- package/dist/dts/Take.d.ts +2 -2
- package/dist/dts/TestAnnotation.d.ts +2 -2
- package/dist/dts/TestAnnotation.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +7 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/internal/stm/stm.d.ts +2 -15
- package/dist/dts/internal/stm/stm.d.ts.map +1 -1
- package/dist/esm/BigInt.js +12 -0
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Effect.js +13 -58
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +42 -5
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/Equal.js +1 -1
- package/dist/esm/Equal.js.map +1 -1
- package/dist/esm/Exit.js +1 -1
- package/dist/esm/Number.js +23 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/ReadonlyArray.js +2 -2
- package/dist/esm/ReadonlyArray.js.map +1 -1
- package/dist/esm/ReadonlyRecord.js +70 -75
- package/dist/esm/ReadonlyRecord.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schedule.js.map +1 -1
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +5 -22
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/Struct.js +3 -1
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/TestAnnotation.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +5 -5
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel/channelState.js +3 -3
- package/dist/esm/internal/channel/channelState.js.map +1 -1
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/clock.js +3 -4
- package/dist/esm/internal/clock.js.map +1 -1
- package/dist/esm/internal/core-effect.js +4 -20
- package/dist/esm/internal/core-effect.js.map +1 -1
- package/dist/esm/internal/core.js +8 -22
- package/dist/esm/internal/core.js.map +1 -1
- package/dist/esm/internal/effect/circular.js +4 -5
- package/dist/esm/internal/effect/circular.js.map +1 -1
- package/dist/esm/internal/either.js +3 -3
- package/dist/esm/internal/either.js.map +1 -1
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/layer.js +0 -2
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/runtime.js +12 -1
- package/dist/esm/internal/runtime.js.map +1 -1
- package/dist/esm/internal/schedule.js +4 -4
- package/dist/esm/internal/schedule.js.map +1 -1
- package/dist/esm/internal/sink.js +0 -2
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stm/stm.js +1 -0
- package/dist/esm/internal/stm/stm.js.map +1 -1
- package/dist/esm/internal/stream.js +49 -59
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/BigInt.ts +13 -0
- package/src/Brand.ts +4 -4
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +17 -17
- package/src/Chunk.ts +4 -4
- package/src/Config.ts +4 -4
- package/src/Cron.ts +2 -2
- package/src/Differ.ts +2 -2
- package/src/Effect.ts +68 -145
- package/src/Either.ts +215 -133
- package/src/Encoding.ts +3 -3
- package/src/Equal.ts +1 -1
- package/src/Exit.ts +2 -2
- package/src/Fiber.ts +2 -2
- package/src/GroupBy.ts +16 -16
- package/src/Layer.ts +32 -32
- package/src/List.ts +3 -3
- package/src/Logger.ts +4 -4
- package/src/Match.ts +3 -3
- package/src/MergeDecision.ts +1 -1
- package/src/MergeState.ts +8 -8
- package/src/Metric.ts +13 -13
- package/src/MetricPolling.ts +9 -9
- package/src/Number.ts +26 -0
- package/src/Option.ts +17 -17
- package/src/ReadonlyArray.ts +23 -15
- package/src/ReadonlyRecord.ts +421 -265
- package/src/Reloadable.ts +4 -4
- package/src/RequestResolver.ts +19 -19
- package/src/Resource.ts +3 -3
- package/src/STM.ts +166 -213
- package/src/Schedule.ts +331 -361
- package/src/SingleProducerAsyncInput.ts +1 -1
- package/src/Sink.ts +19 -19
- package/src/Stream.ts +449 -456
- package/src/Struct.ts +8 -5
- package/src/SubscriptionRef.ts +2 -2
- package/src/TArray.ts +2 -2
- package/src/TDeferred.ts +4 -4
- package/src/TMap.ts +10 -10
- package/src/TSet.ts +4 -4
- package/src/Take.ts +4 -4
- package/src/TestAnnotation.ts +5 -8
- package/src/Types.ts +11 -0
- package/src/internal/blockedRequests.ts +2 -2
- package/src/internal/cause.ts +2 -2
- package/src/internal/channel/channelExecutor.ts +26 -26
- package/src/internal/channel/channelState.ts +13 -13
- package/src/internal/channel/mergeDecision.ts +1 -1
- package/src/internal/channel/mergeState.ts +6 -6
- package/src/internal/channel/singleProducerAsyncInput.ts +5 -5
- package/src/internal/channel.ts +43 -43
- package/src/internal/clock.ts +3 -4
- package/src/internal/config.ts +7 -7
- package/src/internal/configError.ts +1 -1
- package/src/internal/configProvider/pathPatch.ts +2 -2
- package/src/internal/configProvider.ts +1 -1
- package/src/internal/core-effect.ts +28 -43
- package/src/internal/core.ts +15 -40
- package/src/internal/dataSource.ts +26 -26
- package/src/internal/differ/orPatch.ts +7 -7
- package/src/internal/differ.ts +2 -2
- package/src/internal/effect/circular.ts +9 -10
- package/src/internal/either.ts +25 -22
- package/src/internal/encoding/base64.ts +1 -1
- package/src/internal/encoding/base64Url.ts +1 -1
- package/src/internal/encoding/hex.ts +1 -1
- package/src/internal/fiber.ts +2 -2
- package/src/internal/fiberRuntime.ts +9 -9
- package/src/internal/groupBy.ts +40 -40
- package/src/internal/layer/circular.ts +4 -4
- package/src/internal/layer.ts +52 -54
- package/src/internal/matcher.ts +5 -5
- package/src/internal/metric/polling.ts +8 -8
- package/src/internal/metric.ts +6 -6
- package/src/internal/reloadable.ts +4 -4
- package/src/internal/resource.ts +2 -2
- package/src/internal/runtime.ts +32 -19
- package/src/internal/schedule.ts +430 -500
- package/src/internal/sink.ts +27 -29
- package/src/internal/stm/core.ts +23 -23
- package/src/internal/stm/stm.ts +158 -157
- package/src/internal/stm/tArray.ts +3 -3
- package/src/internal/stm/tDeferred.ts +5 -5
- package/src/internal/stm/tMap.ts +13 -13
- package/src/internal/stm/tSet.ts +4 -4
- package/src/internal/stream.ts +688 -723
- package/src/internal/subscriptionRef.ts +3 -3
- package/src/internal/take.ts +6 -6
- package/src/internal/version.ts +1 -1
package/src/STM.ts
CHANGED
|
@@ -14,7 +14,7 @@ import * as stm from "./internal/stm/stm.js"
|
|
|
14
14
|
import type * as Option from "./Option.js"
|
|
15
15
|
import type { Pipeable } from "./Pipeable.js"
|
|
16
16
|
import type { Predicate, Refinement } from "./Predicate.js"
|
|
17
|
-
import type { Covariant, NoInfer } from "./Types.js"
|
|
17
|
+
import type { Covariant, MergeRecord, NoInfer } from "./Types.js"
|
|
18
18
|
import type * as Unify from "./Unify.js"
|
|
19
19
|
|
|
20
20
|
/**
|
|
@@ -111,10 +111,10 @@ declare module "./Context.js" {
|
|
|
111
111
|
* @category models
|
|
112
112
|
*/
|
|
113
113
|
declare module "./Either.js" {
|
|
114
|
-
interface Left<
|
|
114
|
+
interface Left<L, R> extends STM<R, L> {
|
|
115
115
|
readonly _tag: "Left"
|
|
116
116
|
}
|
|
117
|
-
interface Right<
|
|
117
|
+
interface Right<L, R> extends STM<R, L> {
|
|
118
118
|
readonly _tag: "Right"
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -179,11 +179,11 @@ export const isSTM: (u: unknown) => u is STM<unknown, unknown, unknown> = core.i
|
|
|
179
179
|
* @category constructors
|
|
180
180
|
*/
|
|
181
181
|
export const acquireUseRelease: {
|
|
182
|
-
<A,
|
|
182
|
+
<A, A2, E2, R2, A3, E3, R3>(
|
|
183
183
|
use: (resource: A) => STM<A2, E2, R2>,
|
|
184
184
|
release: (resource: A) => STM<A3, E3, R3>
|
|
185
|
-
): <
|
|
186
|
-
<
|
|
185
|
+
): <E, R>(acquire: STM<A, E, R>) => Effect.Effect<A2, E2 | E3 | E, R2 | R3 | R>
|
|
186
|
+
<A, E, R, A2, E2, R2, A3, E3, R3>(
|
|
187
187
|
acquire: STM<A, E, R>,
|
|
188
188
|
use: (resource: A) => STM<A2, E2, R2>,
|
|
189
189
|
release: (resource: A) => STM<A3, E3, R3>
|
|
@@ -268,7 +268,7 @@ export const all: All.Signature = stm.all
|
|
|
268
268
|
*/
|
|
269
269
|
export const as: {
|
|
270
270
|
<A2>(value: A2): <A, E, R>(self: STM<A, E, R>) => STM<A2, E, R>
|
|
271
|
-
<
|
|
271
|
+
<A, E, R, A2>(self: STM<A, E, R>, value: A2): STM<A2, E, R>
|
|
272
272
|
} = stm.as
|
|
273
273
|
|
|
274
274
|
/**
|
|
@@ -312,8 +312,8 @@ export const attempt: <A>(evaluate: LazyArg<A>) => STM<A, unknown> = stm.attempt
|
|
|
312
312
|
* @category error handling
|
|
313
313
|
*/
|
|
314
314
|
export const catchAll: {
|
|
315
|
-
<E,
|
|
316
|
-
<
|
|
315
|
+
<E, B, E1, R1>(f: (e: E) => STM<B, E1, R1>): <A, R>(self: STM<A, E, R>) => STM<B | A, E1, R1 | R>
|
|
316
|
+
<A, E, R, B, E1, R1>(self: STM<A, E, R>, f: (e: E) => STM<B, E1, R1>): STM<A | B, E1, R | R1>
|
|
317
317
|
} = core.catchAll
|
|
318
318
|
|
|
319
319
|
/**
|
|
@@ -323,12 +323,10 @@ export const catchAll: {
|
|
|
323
323
|
* @category error handling
|
|
324
324
|
*/
|
|
325
325
|
export const catchSome: {
|
|
326
|
-
<E,
|
|
326
|
+
<E, A2, E2, R2>(
|
|
327
327
|
pf: (error: E) => Option.Option<STM<A2, E2, R2>>
|
|
328
|
-
): <R, A>
|
|
329
|
-
|
|
330
|
-
) => STM<A2 | A, E | E2, R2 | R>
|
|
331
|
-
<R, A, E, R2, E2, A2>(
|
|
328
|
+
): <A, R>(self: STM<A, E, R>) => STM<A2 | A, E | E2, R2 | R>
|
|
329
|
+
<A, E, R, A2, E2, R2>(
|
|
332
330
|
self: STM<A, E, R>,
|
|
333
331
|
pf: (error: E) => Option.Option<STM<A2, E2, R2>>
|
|
334
332
|
): STM<A | A2, E | E2, R | R2>
|
|
@@ -341,11 +339,11 @@ export const catchSome: {
|
|
|
341
339
|
* @category error handling
|
|
342
340
|
*/
|
|
343
341
|
export const catchTag: {
|
|
344
|
-
<K extends E["_tag"] & string, E extends { _tag: string },
|
|
342
|
+
<K extends E["_tag"] & string, E extends { _tag: string }, A1, E1, R1>(
|
|
345
343
|
k: K,
|
|
346
344
|
f: (e: Extract<E, { _tag: K }>) => STM<A1, E1, R1>
|
|
347
|
-
): <
|
|
348
|
-
<
|
|
345
|
+
): <A, R>(self: STM<A, E, R>) => STM<A1 | A, E1 | Exclude<E, { _tag: K }>, R1 | R>
|
|
346
|
+
<A, E extends { _tag: string }, R, K extends E["_tag"] & string, A1, E1, R1>(
|
|
349
347
|
self: STM<A, E, R>,
|
|
350
348
|
k: K,
|
|
351
349
|
f: (e: Extract<E, { _tag: K }>) => STM<A1, E1, R1>
|
|
@@ -364,7 +362,7 @@ export const catchTags: {
|
|
|
364
362
|
Cases extends { [K in E["_tag"]]+?: ((error: Extract<E, { _tag: K }>) => STM<any, any, any>) }
|
|
365
363
|
>(
|
|
366
364
|
cases: Cases
|
|
367
|
-
): <
|
|
365
|
+
): <A, R>(
|
|
368
366
|
self: STM<A, E, R>
|
|
369
367
|
) => STM<
|
|
370
368
|
| A
|
|
@@ -407,8 +405,8 @@ export const check: (predicate: LazyArg<boolean>) => STM<void> = stm.check
|
|
|
407
405
|
* @category mutations
|
|
408
406
|
*/
|
|
409
407
|
export const collect: {
|
|
410
|
-
<A, A2>(pf: (a: A) => Option.Option<A2>): <
|
|
411
|
-
<
|
|
408
|
+
<A, A2>(pf: (a: A) => Option.Option<A2>): <E, R>(self: STM<A, E, R>) => STM<A2, E, R>
|
|
409
|
+
<A, E, R, A2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<A2>): STM<A2, E, R>
|
|
412
410
|
} = stm.collect
|
|
413
411
|
|
|
414
412
|
/**
|
|
@@ -418,8 +416,8 @@ export const collect: {
|
|
|
418
416
|
* @category mutations
|
|
419
417
|
*/
|
|
420
418
|
export const collectSTM: {
|
|
421
|
-
<A,
|
|
422
|
-
<
|
|
419
|
+
<A, A2, E2, R2>(pf: (a: A) => Option.Option<STM<A2, E2, R2>>): <E, R>(self: STM<A, E, R>) => STM<A2, E2 | E, R2 | R>
|
|
420
|
+
<A, E, R, A2, E2, R2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<A2, E2, R2>>): STM<A2, E | E2, R | R2>
|
|
423
421
|
} = stm.collectSTM
|
|
424
422
|
|
|
425
423
|
/**
|
|
@@ -470,7 +468,7 @@ export const contextWith: <R0, R>(f: (environment: Context.Context<R0>) => R) =>
|
|
|
470
468
|
* @since 2.0.0
|
|
471
469
|
* @category constructors
|
|
472
470
|
*/
|
|
473
|
-
export const contextWithSTM: <R0,
|
|
471
|
+
export const contextWithSTM: <R0, A, E, R>(
|
|
474
472
|
f: (environment: Context.Context<R0>) => STM<A, E, R>
|
|
475
473
|
) => STM<A, E, R0 | R> = core.contextWithSTM
|
|
476
474
|
|
|
@@ -517,7 +515,7 @@ export const dieSync: (evaluate: LazyArg<unknown>) => STM<never> = core.dieSync
|
|
|
517
515
|
* @since 2.0.0
|
|
518
516
|
* @category mutations
|
|
519
517
|
*/
|
|
520
|
-
export const either: <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<
|
|
518
|
+
export const either: <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<A, E>, never, R> = stm.either
|
|
521
519
|
|
|
522
520
|
/**
|
|
523
521
|
* Executes the specified finalization transaction whether or not this effect
|
|
@@ -529,7 +527,7 @@ export const either: <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<E, A>, n
|
|
|
529
527
|
*/
|
|
530
528
|
export const ensuring: {
|
|
531
529
|
<R1, B>(finalizer: STM<B, never, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E, R1 | R>
|
|
532
|
-
<
|
|
530
|
+
<A, E, R, R1, B>(self: STM<A, E, R>, finalizer: STM<B, never, R1>): STM<A, E, R | R1>
|
|
533
531
|
} = core.ensuring
|
|
534
532
|
|
|
535
533
|
/**
|
|
@@ -622,9 +620,9 @@ export const filterOrDie: {
|
|
|
622
620
|
<A, B extends A>(
|
|
623
621
|
refinement: Refinement<NoInfer<A>, B>,
|
|
624
622
|
defect: LazyArg<unknown>
|
|
625
|
-
): <
|
|
626
|
-
<A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <
|
|
627
|
-
<
|
|
623
|
+
): <E, R>(self: STM<A, E, R>) => STM<B, E, R>
|
|
624
|
+
<A>(predicate: Predicate<NoInfer<A>>, defect: LazyArg<unknown>): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
625
|
+
<A, E, R, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, defect: LazyArg<unknown>): STM<B, E, R>
|
|
628
626
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, defect: LazyArg<unknown>): STM<A, E, R>
|
|
629
627
|
} = stm.filterOrDie
|
|
630
628
|
|
|
@@ -636,9 +634,9 @@ export const filterOrDie: {
|
|
|
636
634
|
* @category filtering
|
|
637
635
|
*/
|
|
638
636
|
export const filterOrDieMessage: {
|
|
639
|
-
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <
|
|
640
|
-
<A>(predicate: Predicate<NoInfer<A>>, message: string): <
|
|
641
|
-
<
|
|
637
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>, message: string): <E, R>(self: STM<A, E, R>) => STM<B, E, R>
|
|
638
|
+
<A>(predicate: Predicate<NoInfer<A>>, message: string): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
639
|
+
<A, E, R, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>, message: string): STM<B, E, R>
|
|
642
640
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>, message: string): STM<A, E, R>
|
|
643
641
|
} = stm.filterOrDieMessage
|
|
644
642
|
|
|
@@ -649,20 +647,20 @@ export const filterOrDieMessage: {
|
|
|
649
647
|
* @category filtering
|
|
650
648
|
*/
|
|
651
649
|
export const filterOrElse: {
|
|
652
|
-
<A, B extends A,
|
|
650
|
+
<A, B extends A, C, E2, R2>(
|
|
653
651
|
refinement: Refinement<NoInfer<A>, B>,
|
|
654
652
|
orElse: (a: NoInfer<A>) => STM<C, E2, R2>
|
|
655
|
-
): <
|
|
656
|
-
<A,
|
|
653
|
+
): <E, R>(self: STM<A, E, R>) => STM<B | C, E2 | E, R2 | R>
|
|
654
|
+
<A, B, E2, R2>(
|
|
657
655
|
predicate: Predicate<NoInfer<A>>,
|
|
658
656
|
orElse: (a: NoInfer<A>) => STM<B, E2, R2>
|
|
659
|
-
): <
|
|
660
|
-
<
|
|
657
|
+
): <E, R>(self: STM<A, E, R>) => STM<A | B, E2 | E, R2 | R>
|
|
658
|
+
<A, E, R, B extends A, C, E2, R2>(
|
|
661
659
|
self: STM<A, E, R>,
|
|
662
660
|
refinement: Refinement<A, B>,
|
|
663
661
|
orElse: (a: A) => STM<C, E2, R2>
|
|
664
662
|
): STM<B | C, E | E2, R | R2>
|
|
665
|
-
<
|
|
663
|
+
<A, E, R, B, E2, R2>(
|
|
666
664
|
self: STM<A, E, R>,
|
|
667
665
|
predicate: Predicate<A>,
|
|
668
666
|
orElse: (a: A) => STM<B, E2, R2>
|
|
@@ -679,17 +677,17 @@ export const filterOrFail: {
|
|
|
679
677
|
<A, B extends A, E2>(
|
|
680
678
|
refinement: Refinement<NoInfer<A>, B>,
|
|
681
679
|
orFailWith: (a: NoInfer<A>) => E2
|
|
682
|
-
): <
|
|
680
|
+
): <E, R>(self: STM<A, E, R>) => STM<B, E2 | E, R>
|
|
683
681
|
<A, E2>(
|
|
684
682
|
predicate: Predicate<NoInfer<A>>,
|
|
685
683
|
orFailWith: (a: NoInfer<A>) => E2
|
|
686
|
-
): <
|
|
687
|
-
<
|
|
684
|
+
): <E, R>(self: STM<A, E, R>) => STM<A, E2 | E, R>
|
|
685
|
+
<A, E, R, B extends A, E2>(
|
|
688
686
|
self: STM<A, E, R>,
|
|
689
687
|
refinement: Refinement<A, B>,
|
|
690
688
|
orFailWith: (a: A) => E2
|
|
691
689
|
): STM<B, E | E2, R>
|
|
692
|
-
<
|
|
690
|
+
<A, E, R, E2>(self: STM<A, E, R>, predicate: Predicate<A>, orFailWith: (a: A) => E2): STM<A, E | E2, R>
|
|
693
691
|
} = stm.filterOrFail
|
|
694
692
|
|
|
695
693
|
/**
|
|
@@ -700,8 +698,8 @@ export const filterOrFail: {
|
|
|
700
698
|
* @category sequencing
|
|
701
699
|
*/
|
|
702
700
|
export const flatMap: {
|
|
703
|
-
<A,
|
|
704
|
-
<
|
|
701
|
+
<A, A2, E1, R1>(f: (a: A) => STM<A2, E1, R1>): <E, R>(self: STM<A, E, R>) => STM<A2, E1 | E, R1 | R>
|
|
702
|
+
<A, E, R, A2, E1, R1>(self: STM<A, E, R>, f: (a: A) => STM<A2, E1, R1>): STM<A2, E | E1, R | R1>
|
|
705
703
|
} = core.flatMap
|
|
706
704
|
|
|
707
705
|
/**
|
|
@@ -710,7 +708,7 @@ export const flatMap: {
|
|
|
710
708
|
* @since 2.0.0
|
|
711
709
|
* @category sequencing
|
|
712
710
|
*/
|
|
713
|
-
export const flatten: <
|
|
711
|
+
export const flatten: <A, E2, R2, E, R>(self: STM<STM<A, E2, R2>, E, R>) => STM<A, E2 | E, R2 | R> = stm.flatten
|
|
714
712
|
|
|
715
713
|
/**
|
|
716
714
|
* Flips the success and failure channels of this transactional effect. This
|
|
@@ -730,8 +728,8 @@ export const flip: <A, E, R>(self: STM<A, E, R>) => STM<E, A, R> = stm.flip
|
|
|
730
728
|
* @category mutations
|
|
731
729
|
*/
|
|
732
730
|
export const flipWith: {
|
|
733
|
-
<
|
|
734
|
-
<
|
|
731
|
+
<E, A, R, E2, A2, R2>(f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): (self: STM<A, E, R>) => STM<A | A2, E | E2, R | R2>
|
|
732
|
+
<A, E, R, E2, A2, R2>(self: STM<A, E, R>, f: (stm: STM<E, A, R>) => STM<E2, A2, R2>): STM<A | A2, E | E2, R | R2>
|
|
735
733
|
} = stm.flipWith
|
|
736
734
|
|
|
737
735
|
/**
|
|
@@ -743,17 +741,11 @@ export const flipWith: {
|
|
|
743
741
|
*/
|
|
744
742
|
export const match: {
|
|
745
743
|
<E, A2, A, A3>(
|
|
746
|
-
options: {
|
|
747
|
-
readonly onFailure: (error: E) => A2
|
|
748
|
-
readonly onSuccess: (value: A) => A3
|
|
749
|
-
}
|
|
744
|
+
options: { readonly onFailure: (error: E) => A2; readonly onSuccess: (value: A) => A3 }
|
|
750
745
|
): <R>(self: STM<A, E, R>) => STM<A2 | A3, never, R>
|
|
751
|
-
<
|
|
746
|
+
<A, E, R, A2, A3>(
|
|
752
747
|
self: STM<A, E, R>,
|
|
753
|
-
options: {
|
|
754
|
-
readonly onFailure: (error: E) => A2
|
|
755
|
-
readonly onSuccess: (value: A) => A3
|
|
756
|
-
}
|
|
748
|
+
options: { readonly onFailure: (error: E) => A2; readonly onSuccess: (value: A) => A3 }
|
|
757
749
|
): STM<A2 | A3, never, R>
|
|
758
750
|
} = stm.match
|
|
759
751
|
|
|
@@ -764,18 +756,12 @@ export const match: {
|
|
|
764
756
|
* @category folding
|
|
765
757
|
*/
|
|
766
758
|
export const matchSTM: {
|
|
767
|
-
<E,
|
|
768
|
-
options: {
|
|
769
|
-
readonly onFailure: (e: E) => STM<A1, E1, R1>
|
|
770
|
-
readonly onSuccess: (a: A) => STM<A2, E2, R2>
|
|
771
|
-
}
|
|
759
|
+
<E, A1, E1, R1, A, A2, E2, R2>(
|
|
760
|
+
options: { readonly onFailure: (e: E) => STM<A1, E1, R1>; readonly onSuccess: (a: A) => STM<A2, E2, R2> }
|
|
772
761
|
): <R>(self: STM<A, E, R>) => STM<A1 | A2, E1 | E2, R1 | R2 | R>
|
|
773
|
-
<
|
|
762
|
+
<A, E, R, A1, E1, R1, A2, E2, R2>(
|
|
774
763
|
self: STM<A, E, R>,
|
|
775
|
-
options: {
|
|
776
|
-
readonly onFailure: (e: E) => STM<A1, E1, R1>
|
|
777
|
-
readonly onSuccess: (a: A) => STM<A2, E2, R2>
|
|
778
|
-
}
|
|
764
|
+
options: { readonly onFailure: (e: E) => STM<A1, E1, R1>; readonly onSuccess: (a: A) => STM<A2, E2, R2> }
|
|
779
765
|
): STM<A1 | A2, E1 | E2, R | R1 | R2>
|
|
780
766
|
} = core.matchSTM
|
|
781
767
|
|
|
@@ -787,28 +773,20 @@ export const matchSTM: {
|
|
|
787
773
|
* @category traversing
|
|
788
774
|
*/
|
|
789
775
|
export const forEach: {
|
|
790
|
-
<A,
|
|
776
|
+
<A, A2, E, R>(
|
|
791
777
|
f: (a: A) => STM<A2, E, R>,
|
|
792
|
-
options?: {
|
|
793
|
-
readonly discard?: false | undefined
|
|
794
|
-
}
|
|
778
|
+
options?: { readonly discard?: false | undefined } | undefined
|
|
795
779
|
): (elements: Iterable<A>) => STM<Array<A2>, E, R>
|
|
796
|
-
<A,
|
|
780
|
+
<A, A2, E, R>(
|
|
797
781
|
f: (a: A) => STM<A2, E, R>,
|
|
798
|
-
options: {
|
|
799
|
-
readonly discard: true
|
|
800
|
-
}
|
|
782
|
+
options: { readonly discard: true }
|
|
801
783
|
): (elements: Iterable<A>) => STM<void, E, R>
|
|
802
|
-
<A,
|
|
784
|
+
<A, A2, E, R>(
|
|
803
785
|
elements: Iterable<A>,
|
|
804
786
|
f: (a: A) => STM<A2, E, R>,
|
|
805
|
-
options?: {
|
|
806
|
-
readonly discard?: false | undefined
|
|
807
|
-
}
|
|
787
|
+
options?: { readonly discard?: false | undefined } | undefined
|
|
808
788
|
): STM<Array<A2>, E, R>
|
|
809
|
-
<A,
|
|
810
|
-
readonly discard: true
|
|
811
|
-
}): STM<void, E, R>
|
|
789
|
+
<A, A2, E, R>(elements: Iterable<A>, f: (a: A) => STM<A2, E, R>, options: { readonly discard: true }): STM<void, E, R>
|
|
812
790
|
} = stm.forEach
|
|
813
791
|
|
|
814
792
|
/**
|
|
@@ -817,7 +795,7 @@ export const forEach: {
|
|
|
817
795
|
* @since 2.0.0
|
|
818
796
|
* @category constructors
|
|
819
797
|
*/
|
|
820
|
-
export const fromEither: <
|
|
798
|
+
export const fromEither: <A, E>(either: Either.Either<A, E>) => STM<A, E> = stm.fromEither
|
|
821
799
|
|
|
822
800
|
/**
|
|
823
801
|
* Lifts an `Option` into a `STM`.
|
|
@@ -1115,26 +1093,23 @@ export const gen: <Eff extends STMGen<any, any, any>, AEff>(
|
|
|
1115
1093
|
export const head: <A, E, R>(self: STM<Iterable<A>, E, R>) => STM<A, Option.Option<E>, R> = stm.head
|
|
1116
1094
|
|
|
1117
1095
|
const if_: {
|
|
1118
|
-
<
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1096
|
+
<A, E1, R1, A2, E2, R2>(options: {
|
|
1097
|
+
readonly onTrue: STM<A, E1, R1>
|
|
1098
|
+
readonly onFalse: STM<A2, E2, R2> /**
|
|
1099
|
+
* Flattens out a nested `STM` effect.
|
|
1100
|
+
*
|
|
1101
|
+
* @since 2.0.0
|
|
1102
|
+
* @category sequencing
|
|
1103
|
+
*/
|
|
1104
|
+
}): <E = never, R = never>(self: boolean | STM<boolean, E, R>) => STM<A | A2, E1 | E2 | E, R1 | R2 | R>
|
|
1105
|
+
<A, E1, R1, A2, E2, R2, E = never, R = never>(
|
|
1125
1106
|
self: boolean,
|
|
1126
|
-
options: {
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
}
|
|
1130
|
-
): STM<A | A1, E | E1 | E2, R | R1 | R2>
|
|
1131
|
-
<R, E, R1, R2, E1, E2, A, A1>(
|
|
1107
|
+
options: { readonly onTrue: STM<A, E1, R1>; readonly onFalse: STM<A2, E2, R2> }
|
|
1108
|
+
): STM<A | A2, E1 | E2 | E, R1 | R2 | R>
|
|
1109
|
+
<E, R, A, E1, R1, A2, E2, R2>(
|
|
1132
1110
|
self: STM<boolean, E, R>,
|
|
1133
|
-
options: {
|
|
1134
|
-
|
|
1135
|
-
readonly onFalse: STM<A1, E2, R2>
|
|
1136
|
-
}
|
|
1137
|
-
): STM<A | A1, E | E1 | E2, R | R1 | R2>
|
|
1111
|
+
options: { readonly onTrue: STM<A, E1, R1>; readonly onFalse: STM<A2, E2, R2> }
|
|
1112
|
+
): STM<A | A2, E | E1 | E2, R | R1 | R2>
|
|
1138
1113
|
} = stm.if_
|
|
1139
1114
|
|
|
1140
1115
|
export {
|
|
@@ -1204,7 +1179,7 @@ export const isSuccess: <A, E, R>(self: STM<A, E, R>) => STM<boolean, never, R>
|
|
|
1204
1179
|
* @since 2.0.0
|
|
1205
1180
|
* @category constructors
|
|
1206
1181
|
*/
|
|
1207
|
-
export const iterate: <
|
|
1182
|
+
export const iterate: <Z, E, R>(
|
|
1208
1183
|
initial: Z,
|
|
1209
1184
|
options: {
|
|
1210
1185
|
readonly while: Predicate<Z>
|
|
@@ -1232,19 +1207,19 @@ export const iterate: <R, E, Z>(
|
|
|
1232
1207
|
* @category constructors
|
|
1233
1208
|
*/
|
|
1234
1209
|
export const loop: {
|
|
1235
|
-
<Z,
|
|
1210
|
+
<Z, A, E, R>(
|
|
1236
1211
|
initial: Z,
|
|
1237
1212
|
options: {
|
|
1238
|
-
readonly while:
|
|
1213
|
+
readonly while: (z: Z) => boolean
|
|
1239
1214
|
readonly step: (z: Z) => Z
|
|
1240
1215
|
readonly body: (z: Z) => STM<A, E, R>
|
|
1241
1216
|
readonly discard?: false | undefined
|
|
1242
1217
|
}
|
|
1243
1218
|
): STM<Array<A>, E, R>
|
|
1244
|
-
<Z,
|
|
1219
|
+
<Z, A, E, R>(
|
|
1245
1220
|
initial: Z,
|
|
1246
1221
|
options: {
|
|
1247
|
-
readonly while:
|
|
1222
|
+
readonly while: (z: Z) => boolean
|
|
1248
1223
|
readonly step: (z: Z) => Z
|
|
1249
1224
|
readonly body: (z: Z) => STM<A, E, R>
|
|
1250
1225
|
readonly discard: true
|
|
@@ -1259,8 +1234,8 @@ export const loop: {
|
|
|
1259
1234
|
* @category mapping
|
|
1260
1235
|
*/
|
|
1261
1236
|
export const map: {
|
|
1262
|
-
<A, B>(f: (a: A) => B): <
|
|
1263
|
-
<
|
|
1237
|
+
<A, B>(f: (a: A) => B): <E, R>(self: STM<A, E, R>) => STM<B, E, R>
|
|
1238
|
+
<A, E, R, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, E, R>
|
|
1264
1239
|
} = core.map
|
|
1265
1240
|
|
|
1266
1241
|
/**
|
|
@@ -1272,8 +1247,8 @@ export const map: {
|
|
|
1272
1247
|
* @category mapping
|
|
1273
1248
|
*/
|
|
1274
1249
|
export const mapAttempt: {
|
|
1275
|
-
<A, B>(f: (a: A) => B): <
|
|
1276
|
-
<
|
|
1250
|
+
<A, B>(f: (a: A) => B): <E, R>(self: STM<A, E, R>) => STM<B, unknown, R>
|
|
1251
|
+
<A, E, R, B>(self: STM<A, E, R>, f: (a: A) => B): STM<B, unknown, R>
|
|
1277
1252
|
} = stm.mapAttempt
|
|
1278
1253
|
|
|
1279
1254
|
/**
|
|
@@ -1285,17 +1260,11 @@ export const mapAttempt: {
|
|
|
1285
1260
|
*/
|
|
1286
1261
|
export const mapBoth: {
|
|
1287
1262
|
<E, E2, A, A2>(
|
|
1288
|
-
options: {
|
|
1289
|
-
readonly onFailure: (error: E) => E2
|
|
1290
|
-
readonly onSuccess: (value: A) => A2
|
|
1291
|
-
}
|
|
1263
|
+
options: { readonly onFailure: (error: E) => E2; readonly onSuccess: (value: A) => A2 }
|
|
1292
1264
|
): <R>(self: STM<A, E, R>) => STM<A2, E2, R>
|
|
1293
|
-
<
|
|
1265
|
+
<A, E, R, E2, A2>(
|
|
1294
1266
|
self: STM<A, E, R>,
|
|
1295
|
-
options: {
|
|
1296
|
-
readonly onFailure: (error: E) => E2
|
|
1297
|
-
readonly onSuccess: (value: A) => A2
|
|
1298
|
-
}
|
|
1267
|
+
options: { readonly onFailure: (error: E) => E2; readonly onSuccess: (value: A) => A2 }
|
|
1299
1268
|
): STM<A2, E2, R>
|
|
1300
1269
|
} = stm.mapBoth
|
|
1301
1270
|
|
|
@@ -1306,8 +1275,8 @@ export const mapBoth: {
|
|
|
1306
1275
|
* @category mapping
|
|
1307
1276
|
*/
|
|
1308
1277
|
export const mapError: {
|
|
1309
|
-
<E, E2>(f: (error: E) => E2): <
|
|
1310
|
-
<
|
|
1278
|
+
<E, E2>(f: (error: E) => E2): <A, R>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1279
|
+
<A, E, R, E2>(self: STM<A, E, R>, f: (error: E) => E2): STM<A, E2, R>
|
|
1311
1280
|
} = stm.mapError
|
|
1312
1281
|
|
|
1313
1282
|
/**
|
|
@@ -1326,8 +1295,8 @@ export const merge: <A, E, R>(self: STM<A, E, R>) => STM<E | A, never, R> = stm.
|
|
|
1326
1295
|
* @category constructors
|
|
1327
1296
|
*/
|
|
1328
1297
|
export const mergeAll: {
|
|
1329
|
-
<A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <
|
|
1330
|
-
<
|
|
1298
|
+
<A2, A>(zero: A2, f: (a2: A2, a: A) => A2): <E, R>(iterable: Iterable<STM<A, E, R>>) => STM<A2, E, R>
|
|
1299
|
+
<A, E, R, A2>(iterable: Iterable<STM<A, E, R>>, zero: A2, f: (a2: A2, a: A) => A2): STM<A2, E, R>
|
|
1331
1300
|
} = stm.mergeAll
|
|
1332
1301
|
|
|
1333
1302
|
/**
|
|
@@ -1336,7 +1305,7 @@ export const mergeAll: {
|
|
|
1336
1305
|
* @since 2.0.0
|
|
1337
1306
|
* @category mutations
|
|
1338
1307
|
*/
|
|
1339
|
-
export const negate: <
|
|
1308
|
+
export const negate: <E, R>(self: STM<boolean, E, R>) => STM<boolean, E, R> = stm.negate
|
|
1340
1309
|
|
|
1341
1310
|
/**
|
|
1342
1311
|
* Requires the option produced by this value to be `None`.
|
|
@@ -1371,8 +1340,8 @@ export const orDie: <A, E, R>(self: STM<A, E, R>) => STM<A, never, R> = stm.orDi
|
|
|
1371
1340
|
* @category error handling
|
|
1372
1341
|
*/
|
|
1373
1342
|
export const orDieWith: {
|
|
1374
|
-
<E>(f: (error: E) => unknown): <
|
|
1375
|
-
<
|
|
1343
|
+
<E>(f: (error: E) => unknown): <A, R>(self: STM<A, E, R>) => STM<A, never, R>
|
|
1344
|
+
<A, E, R>(self: STM<A, E, R>, f: (error: E) => unknown): STM<A, never, R>
|
|
1376
1345
|
} = stm.orDieWith
|
|
1377
1346
|
|
|
1378
1347
|
/**
|
|
@@ -1383,8 +1352,8 @@ export const orDieWith: {
|
|
|
1383
1352
|
* @category error handling
|
|
1384
1353
|
*/
|
|
1385
1354
|
export const orElse: {
|
|
1386
|
-
<
|
|
1387
|
-
<
|
|
1355
|
+
<A2, E2, R2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, E2, R2 | R>
|
|
1356
|
+
<A, E, R, A2, E2, R2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<A | A2, E2, R | R2>
|
|
1388
1357
|
} = stm.orElse
|
|
1389
1358
|
|
|
1390
1359
|
/**
|
|
@@ -1396,8 +1365,8 @@ export const orElse: {
|
|
|
1396
1365
|
* @category error handling
|
|
1397
1366
|
*/
|
|
1398
1367
|
export const orElseEither: {
|
|
1399
|
-
<
|
|
1400
|
-
<
|
|
1368
|
+
<A2, E2, R2>(that: LazyArg<STM<A2, E2, R2>>): <A, E, R>(self: STM<A, E, R>) => STM<Either.Either<A2, A>, E2, R2 | R>
|
|
1369
|
+
<A, E, R, A2, E2, R2>(self: STM<A, E, R>, that: LazyArg<STM<A2, E2, R2>>): STM<Either.Either<A2, A>, E2, R | R2>
|
|
1401
1370
|
} = stm.orElseEither
|
|
1402
1371
|
|
|
1403
1372
|
/**
|
|
@@ -1409,7 +1378,7 @@ export const orElseEither: {
|
|
|
1409
1378
|
*/
|
|
1410
1379
|
export const orElseFail: {
|
|
1411
1380
|
<E2>(error: LazyArg<E2>): <A, E, R>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1412
|
-
<
|
|
1381
|
+
<A, E, R, E2>(self: STM<A, E, R>, error: LazyArg<E2>): STM<A, E2, R>
|
|
1413
1382
|
} = stm.orElseFail
|
|
1414
1383
|
|
|
1415
1384
|
/**
|
|
@@ -1421,12 +1390,10 @@ export const orElseFail: {
|
|
|
1421
1390
|
* @category error handling
|
|
1422
1391
|
*/
|
|
1423
1392
|
export const orElseOptional: {
|
|
1424
|
-
<
|
|
1393
|
+
<A2, E2, R2>(
|
|
1425
1394
|
that: LazyArg<STM<A2, Option.Option<E2>, R2>>
|
|
1426
|
-
): <A, E, R>(
|
|
1427
|
-
|
|
1428
|
-
) => STM<A2 | A, Option.Option<E2 | E>, R2 | R>
|
|
1429
|
-
<R, E, A, R2, E2, A2>(
|
|
1395
|
+
): <A, E, R>(self: STM<A, Option.Option<E>, R>) => STM<A2 | A, Option.Option<E2 | E>, R2 | R>
|
|
1396
|
+
<A, E, R, A2, E2, R2>(
|
|
1430
1397
|
self: STM<A, Option.Option<E>, R>,
|
|
1431
1398
|
that: LazyArg<STM<A2, Option.Option<E2>, R2>>
|
|
1432
1399
|
): STM<A | A2, Option.Option<E | E2>, R | R2>
|
|
@@ -1441,7 +1408,7 @@ export const orElseOptional: {
|
|
|
1441
1408
|
*/
|
|
1442
1409
|
export const orElseSucceed: {
|
|
1443
1410
|
<A2>(value: LazyArg<A2>): <A, E, R>(self: STM<A, E, R>) => STM<A2 | A, never, R>
|
|
1444
|
-
<
|
|
1411
|
+
<A, E, R, A2>(self: STM<A, E, R>, value: LazyArg<A2>): STM<A | A2, never, R>
|
|
1445
1412
|
} = stm.orElseSucceed
|
|
1446
1413
|
|
|
1447
1414
|
/**
|
|
@@ -1452,8 +1419,8 @@ export const orElseSucceed: {
|
|
|
1452
1419
|
* @category error handling
|
|
1453
1420
|
*/
|
|
1454
1421
|
export const orTry: {
|
|
1455
|
-
<
|
|
1456
|
-
<
|
|
1422
|
+
<A1, E1, R1>(that: LazyArg<STM<A1, E1, R1>>): <A, E, R>(self: STM<A, E, R>) => STM<A1 | A, E1 | E, R1 | R>
|
|
1423
|
+
<A, E, R, A1, E1, R1>(self: STM<A, E, R>, that: LazyArg<STM<A1, E1, R1>>): STM<A | A1, E | E1, R | R1>
|
|
1457
1424
|
} = core.orTry
|
|
1458
1425
|
|
|
1459
1426
|
/**
|
|
@@ -1464,10 +1431,10 @@ export const orTry: {
|
|
|
1464
1431
|
* @category traversing
|
|
1465
1432
|
*/
|
|
1466
1433
|
export const partition: {
|
|
1467
|
-
<
|
|
1434
|
+
<A, A2, E, R>(
|
|
1468
1435
|
f: (a: A) => STM<A2, E, R>
|
|
1469
1436
|
): (elements: Iterable<A>) => STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>
|
|
1470
|
-
<
|
|
1437
|
+
<A, A2, E, R>(
|
|
1471
1438
|
elements: Iterable<A>,
|
|
1472
1439
|
f: (a: A) => STM<A2, E, R>
|
|
1473
1440
|
): STM<[excluded: Array<E>, satisfying: Array<A2>], never, R>
|
|
@@ -1509,7 +1476,7 @@ export const provideService: {
|
|
|
1509
1476
|
tag: T,
|
|
1510
1477
|
resource: Context.Tag.Service<T>
|
|
1511
1478
|
): <A, E, R>(self: STM<A, E, R>) => STM<A, E, Exclude<R, Context.Tag.Identifier<T>>>
|
|
1512
|
-
<
|
|
1479
|
+
<A, E, R, T extends Context.Tag<any, any>>(
|
|
1513
1480
|
self: STM<A, E, R>,
|
|
1514
1481
|
tag: T,
|
|
1515
1482
|
resource: Context.Tag.Service<T>
|
|
@@ -1524,11 +1491,11 @@ export const provideService: {
|
|
|
1524
1491
|
* @category context
|
|
1525
1492
|
*/
|
|
1526
1493
|
export const provideServiceSTM: {
|
|
1527
|
-
<T extends Context.Tag<any, any>,
|
|
1494
|
+
<T extends Context.Tag<any, any>, E1, R1>(
|
|
1528
1495
|
tag: T,
|
|
1529
1496
|
stm: STM<Context.Tag.Service<T>, E1, R1>
|
|
1530
1497
|
): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | Exclude<R, Context.Tag.Identifier<T>>>
|
|
1531
|
-
<
|
|
1498
|
+
<A, E, R, T extends Context.Tag<any, any>, E1, R1>(
|
|
1532
1499
|
self: STM<A, E, R>,
|
|
1533
1500
|
tag: T,
|
|
1534
1501
|
stm: STM<Context.Tag.Service<T>, E1, R1>
|
|
@@ -1543,8 +1510,8 @@ export const provideServiceSTM: {
|
|
|
1543
1510
|
* @category constructors
|
|
1544
1511
|
*/
|
|
1545
1512
|
export const reduce: {
|
|
1546
|
-
<S, A,
|
|
1547
|
-
<S, A,
|
|
1513
|
+
<S, A, E, R>(zero: S, f: (s: S, a: A) => STM<S, E, R>): (iterable: Iterable<A>) => STM<S, E, R>
|
|
1514
|
+
<S, A, E, R>(iterable: Iterable<A>, zero: S, f: (s: S, a: A) => STM<S, E, R>): STM<S, E, R>
|
|
1548
1515
|
} = stm.reduce
|
|
1549
1516
|
|
|
1550
1517
|
/**
|
|
@@ -1554,13 +1521,11 @@ export const reduce: {
|
|
|
1554
1521
|
* @category constructors
|
|
1555
1522
|
*/
|
|
1556
1523
|
export const reduceAll: {
|
|
1557
|
-
<
|
|
1524
|
+
<A, E2, R2>(
|
|
1558
1525
|
initial: STM<A, E2, R2>,
|
|
1559
1526
|
f: (x: A, y: A) => A
|
|
1560
|
-
): <R, E>
|
|
1561
|
-
|
|
1562
|
-
) => STM<A, E2 | E, R2 | R>
|
|
1563
|
-
<R, E, R2, E2, A>(
|
|
1527
|
+
): <E, R>(iterable: Iterable<STM<A, E, R>>) => STM<A, E2 | E, R2 | R>
|
|
1528
|
+
<A, E, R, E2, R2>(
|
|
1564
1529
|
iterable: Iterable<STM<A, E, R>>,
|
|
1565
1530
|
initial: STM<A, E2, R2>,
|
|
1566
1531
|
f: (x: A, y: A) => A
|
|
@@ -1586,8 +1551,8 @@ export const reduceRight: {
|
|
|
1586
1551
|
* @category mutations
|
|
1587
1552
|
*/
|
|
1588
1553
|
export const refineOrDie: {
|
|
1589
|
-
<E, E2>(pf: (error: E) => Option.Option<E2>): <
|
|
1590
|
-
<
|
|
1554
|
+
<E, E2>(pf: (error: E) => Option.Option<E2>): <A, R>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1555
|
+
<A, E, R, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>): STM<A, E2, R>
|
|
1591
1556
|
} = stm.refineOrDie
|
|
1592
1557
|
|
|
1593
1558
|
/**
|
|
@@ -1598,8 +1563,8 @@ export const refineOrDie: {
|
|
|
1598
1563
|
* @category mutations
|
|
1599
1564
|
*/
|
|
1600
1565
|
export const refineOrDieWith: {
|
|
1601
|
-
<E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <
|
|
1602
|
-
<
|
|
1566
|
+
<E, E2>(pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): <A, R>(self: STM<A, E, R>) => STM<A, E2, R>
|
|
1567
|
+
<A, E, R, E2>(self: STM<A, E, R>, pf: (error: E) => Option.Option<E2>, f: (error: E) => unknown): STM<A, E2, R>
|
|
1603
1568
|
} = stm.refineOrDieWith
|
|
1604
1569
|
|
|
1605
1570
|
/**
|
|
@@ -1610,8 +1575,8 @@ export const refineOrDieWith: {
|
|
|
1610
1575
|
* @category mutations
|
|
1611
1576
|
*/
|
|
1612
1577
|
export const reject: {
|
|
1613
|
-
<A, E2>(pf: (a: A) => Option.Option<E2>): <
|
|
1614
|
-
<
|
|
1578
|
+
<A, E2>(pf: (a: A) => Option.Option<E2>): <E, R>(self: STM<A, E, R>) => STM<A, E2 | E, R>
|
|
1579
|
+
<A, E, R, E2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<E2>): STM<A, E | E2, R>
|
|
1615
1580
|
} = stm.reject
|
|
1616
1581
|
|
|
1617
1582
|
/**
|
|
@@ -1623,8 +1588,8 @@ export const reject: {
|
|
|
1623
1588
|
* @category mutations
|
|
1624
1589
|
*/
|
|
1625
1590
|
export const rejectSTM: {
|
|
1626
|
-
<A,
|
|
1627
|
-
<
|
|
1591
|
+
<A, E2, R2>(pf: (a: A) => Option.Option<STM<E2, E2, R2>>): <E, R>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>
|
|
1592
|
+
<A, E, R, E2, R2>(self: STM<A, E, R>, pf: (a: A) => Option.Option<STM<E2, E2, R2>>): STM<A, E | E2, R | R2>
|
|
1628
1593
|
} = stm.rejectSTM
|
|
1629
1594
|
|
|
1630
1595
|
/**
|
|
@@ -1643,7 +1608,7 @@ export const rejectSTM: {
|
|
|
1643
1608
|
* @category mutations
|
|
1644
1609
|
*/
|
|
1645
1610
|
export const repeatUntil: {
|
|
1646
|
-
<A>(predicate: Predicate<A>): <
|
|
1611
|
+
<A>(predicate: Predicate<A>): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1647
1612
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1648
1613
|
} = stm.repeatUntil
|
|
1649
1614
|
|
|
@@ -1664,7 +1629,7 @@ export const repeatUntil: {
|
|
|
1664
1629
|
* @category mutations
|
|
1665
1630
|
*/
|
|
1666
1631
|
export const repeatWhile: {
|
|
1667
|
-
<A>(predicate: Predicate<A>): <
|
|
1632
|
+
<A>(predicate: Predicate<A>): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1668
1633
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1669
1634
|
} = stm.repeatWhile
|
|
1670
1635
|
|
|
@@ -1721,9 +1686,9 @@ export const retry: STM<never> = core.retry
|
|
|
1721
1686
|
* @category mutations
|
|
1722
1687
|
*/
|
|
1723
1688
|
export const retryUntil: {
|
|
1724
|
-
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <
|
|
1725
|
-
<A>(predicate: Predicate<A>): <
|
|
1726
|
-
<
|
|
1689
|
+
<A, B extends A>(refinement: Refinement<NoInfer<A>, B>): <E, R>(self: STM<A, E, R>) => STM<B, E, R>
|
|
1690
|
+
<A>(predicate: Predicate<A>): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1691
|
+
<A, E, R, B extends A>(self: STM<A, E, R>, refinement: Refinement<A, B>): STM<B, E, R>
|
|
1727
1692
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1728
1693
|
} = stm.retryUntil
|
|
1729
1694
|
|
|
@@ -1735,7 +1700,7 @@ export const retryUntil: {
|
|
|
1735
1700
|
* @category mutations
|
|
1736
1701
|
*/
|
|
1737
1702
|
export const retryWhile: {
|
|
1738
|
-
<A>(predicate: Predicate<A>): <
|
|
1703
|
+
<A>(predicate: Predicate<A>): <E, R>(self: STM<A, E, R>) => STM<A, E, R>
|
|
1739
1704
|
<A, E, R>(self: STM<A, E, R>, predicate: Predicate<A>): STM<A, E, R>
|
|
1740
1705
|
} = stm.retryWhile
|
|
1741
1706
|
|
|
@@ -1780,13 +1745,11 @@ export const succeedSome: <A>(value: A) => STM<Option.Option<A>> = stm.succeedSo
|
|
|
1780
1745
|
* @category mutations
|
|
1781
1746
|
*/
|
|
1782
1747
|
export const summarized: {
|
|
1783
|
-
<
|
|
1748
|
+
<A2, E2, R2, A3>(
|
|
1784
1749
|
summary: STM<A2, E2, R2>,
|
|
1785
1750
|
f: (before: A2, after: A2) => A3
|
|
1786
|
-
): <A, E, R>(
|
|
1787
|
-
|
|
1788
|
-
) => STM<[A3, A], E2 | E, R2 | R>
|
|
1789
|
-
<R, E, A, R2, E2, A2, A3>(
|
|
1751
|
+
): <A, E, R>(self: STM<A, E, R>) => STM<[A3, A], E2 | E, R2 | R>
|
|
1752
|
+
<A, E, R, A2, E2, R2, A3>(
|
|
1790
1753
|
self: STM<A, E, R>,
|
|
1791
1754
|
summary: STM<A2, E2, R2>,
|
|
1792
1755
|
f: (before: A2, after: A2) => A3
|
|
@@ -1817,8 +1780,8 @@ export const sync: <A>(evaluate: () => A) => STM<A> = core.sync
|
|
|
1817
1780
|
* @category sequencing
|
|
1818
1781
|
*/
|
|
1819
1782
|
export const tap: {
|
|
1820
|
-
<A,
|
|
1821
|
-
<
|
|
1783
|
+
<A, X, E2, R2>(f: (a: A) => STM<X, E2, R2>): <E, R>(self: STM<A, E, R>) => STM<A, E2 | E, R2 | R>
|
|
1784
|
+
<A, E, R, X, E2, R2>(self: STM<A, E, R>, f: (a: A) => STM<X, E2, R2>): STM<A, E | E2, R | R2>
|
|
1822
1785
|
} = stm.tap
|
|
1823
1786
|
|
|
1824
1787
|
/**
|
|
@@ -1828,18 +1791,12 @@ export const tap: {
|
|
|
1828
1791
|
* @category sequencing
|
|
1829
1792
|
*/
|
|
1830
1793
|
export const tapBoth: {
|
|
1831
|
-
<
|
|
1832
|
-
options: {
|
|
1833
|
-
readonly onFailure: (error: XE) => STM<A2, E2, R2>
|
|
1834
|
-
readonly onSuccess: (value: XA) => STM<A3, E3, R3>
|
|
1835
|
-
}
|
|
1794
|
+
<XE extends E, A2, E2, R2, XA extends A, A3, E3, R3, A, E>(
|
|
1795
|
+
options: { readonly onFailure: (error: XE) => STM<A2, E2, R2>; readonly onSuccess: (value: XA) => STM<A3, E3, R3> }
|
|
1836
1796
|
): <R>(self: STM<A, E, R>) => STM<A, E | E2 | E3, R2 | R3 | R>
|
|
1837
|
-
<
|
|
1797
|
+
<A, E, R, XE extends E, A2, E2, R2, XA extends A, A3, E3, R3>(
|
|
1838
1798
|
self: STM<A, E, R>,
|
|
1839
|
-
options: {
|
|
1840
|
-
readonly onFailure: (error: XE) => STM<A2, E2, R2>
|
|
1841
|
-
readonly onSuccess: (value: XA) => STM<A3, E3, R3>
|
|
1842
|
-
}
|
|
1799
|
+
options: { readonly onFailure: (error: XE) => STM<A2, E2, R2>; readonly onSuccess: (value: XA) => STM<A3, E3, R3> }
|
|
1843
1800
|
): STM<A, E | E2 | E3, R | R2 | R3>
|
|
1844
1801
|
} = stm.tapBoth
|
|
1845
1802
|
|
|
@@ -1850,8 +1807,8 @@ export const tapBoth: {
|
|
|
1850
1807
|
* @category sequencing
|
|
1851
1808
|
*/
|
|
1852
1809
|
export const tapError: {
|
|
1853
|
-
<E,
|
|
1854
|
-
<
|
|
1810
|
+
<E, X, E2, R2>(f: (error: NoInfer<E>) => STM<X, E2, R2>): <A, R>(self: STM<A, E, R>) => STM<A, E | E2, R2 | R>
|
|
1811
|
+
<A, E, R, X, E2, R2>(self: STM<A, E, R>, f: (error: E) => STM<X, E2, R2>): STM<A, E | E2, R | R2>
|
|
1855
1812
|
} = stm.tapError
|
|
1856
1813
|
|
|
1857
1814
|
const try_: {
|
|
@@ -1861,6 +1818,7 @@ const try_: {
|
|
|
1861
1818
|
}): STM<A, E>
|
|
1862
1819
|
<A>(try_: LazyArg<A>): STM<A, unknown>
|
|
1863
1820
|
} = stm.try_
|
|
1821
|
+
|
|
1864
1822
|
export {
|
|
1865
1823
|
/**
|
|
1866
1824
|
* Imports a synchronous side-effect into a pure value, translating any thrown
|
|
@@ -1890,8 +1848,8 @@ export const unless: {
|
|
|
1890
1848
|
* @category mutations
|
|
1891
1849
|
*/
|
|
1892
1850
|
export const unlessSTM: {
|
|
1893
|
-
<
|
|
1894
|
-
<
|
|
1851
|
+
<E2, R2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>
|
|
1852
|
+
<A, E, R, E2, R2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>
|
|
1895
1853
|
} = stm.unlessSTM
|
|
1896
1854
|
|
|
1897
1855
|
/**
|
|
@@ -1921,8 +1879,8 @@ export const unit: STM<void> = stm.unit
|
|
|
1921
1879
|
* @category mutations
|
|
1922
1880
|
*/
|
|
1923
1881
|
export const validateAll: {
|
|
1924
|
-
<
|
|
1925
|
-
<
|
|
1882
|
+
<A, B, E, R>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<Array<B>, [E, ...Array<E>], R>
|
|
1883
|
+
<A, B, E, R>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<Array<B>, [E, ...Array<E>], R>
|
|
1926
1884
|
} = stm.validateAll
|
|
1927
1885
|
|
|
1928
1886
|
/**
|
|
@@ -1933,8 +1891,8 @@ export const validateAll: {
|
|
|
1933
1891
|
* @category mutations
|
|
1934
1892
|
*/
|
|
1935
1893
|
export const validateFirst: {
|
|
1936
|
-
<
|
|
1937
|
-
<
|
|
1894
|
+
<A, B, E, R>(f: (a: A) => STM<B, E, R>): (elements: Iterable<A>) => STM<B, Array<E>, R>
|
|
1895
|
+
<A, B, E, R>(elements: Iterable<A>, f: (a: A) => STM<B, E, R>): STM<B, Array<E>, R>
|
|
1938
1896
|
} = stm.validateFirst
|
|
1939
1897
|
|
|
1940
1898
|
/**
|
|
@@ -1955,8 +1913,8 @@ export const when: {
|
|
|
1955
1913
|
* @category mutations
|
|
1956
1914
|
*/
|
|
1957
1915
|
export const whenSTM: {
|
|
1958
|
-
<
|
|
1959
|
-
<
|
|
1916
|
+
<E2, R2>(predicate: STM<boolean, E2, R2>): <A, E, R>(self: STM<A, E, R>) => STM<Option.Option<A>, E2 | E, R2 | R>
|
|
1917
|
+
<A, E, R, E2, R2>(self: STM<A, E, R>, predicate: STM<boolean, E2, R2>): STM<Option.Option<A>, E | E2, R | R2>
|
|
1960
1918
|
} = stm.whenSTM
|
|
1961
1919
|
|
|
1962
1920
|
/**
|
|
@@ -1966,8 +1924,8 @@ export const whenSTM: {
|
|
|
1966
1924
|
* @category zipping
|
|
1967
1925
|
*/
|
|
1968
1926
|
export const zip: {
|
|
1969
|
-
<
|
|
1970
|
-
<
|
|
1927
|
+
<A1, E1, R1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<[A, A1], E1 | E, R1 | R>
|
|
1928
|
+
<A, E, R, A1, E1, R1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<[A, A1], E | E1, R | R1>
|
|
1971
1929
|
} = core.zip
|
|
1972
1930
|
|
|
1973
1931
|
/**
|
|
@@ -1978,8 +1936,8 @@ export const zip: {
|
|
|
1978
1936
|
* @category zipping
|
|
1979
1937
|
*/
|
|
1980
1938
|
export const zipLeft: {
|
|
1981
|
-
<
|
|
1982
|
-
<
|
|
1939
|
+
<A1, E1, R1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A, E1 | E, R1 | R>
|
|
1940
|
+
<A, E, R, A1, E1, R1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A, E | E1, R | R1>
|
|
1983
1941
|
} = core.zipLeft
|
|
1984
1942
|
|
|
1985
1943
|
/**
|
|
@@ -1990,8 +1948,8 @@ export const zipLeft: {
|
|
|
1990
1948
|
* @category zipping
|
|
1991
1949
|
*/
|
|
1992
1950
|
export const zipRight: {
|
|
1993
|
-
<
|
|
1994
|
-
<
|
|
1951
|
+
<A1, E1, R1>(that: STM<A1, E1, R1>): <A, E, R>(self: STM<A, E, R>) => STM<A1, E1 | E, R1 | R>
|
|
1952
|
+
<A, E, R, A1, E1, R1>(self: STM<A, E, R>, that: STM<A1, E1, R1>): STM<A1, E | E1, R | R1>
|
|
1995
1953
|
} = core.zipRight
|
|
1996
1954
|
|
|
1997
1955
|
/**
|
|
@@ -2002,17 +1960,11 @@ export const zipRight: {
|
|
|
2002
1960
|
* @category zipping
|
|
2003
1961
|
*/
|
|
2004
1962
|
export const zipWith: {
|
|
2005
|
-
<
|
|
1963
|
+
<A1, E1, R1, A, A2>(
|
|
2006
1964
|
that: STM<A1, E1, R1>,
|
|
2007
1965
|
f: (a: A, b: A1) => A2
|
|
2008
|
-
): <R, E>
|
|
2009
|
-
|
|
2010
|
-
) => STM<A2, E1 | E, R1 | R>
|
|
2011
|
-
<R, E, R1, E1, A1, A, A2>(
|
|
2012
|
-
self: STM<A, E, R>,
|
|
2013
|
-
that: STM<A1, E1, R1>,
|
|
2014
|
-
f: (a: A, b: A1) => A2
|
|
2015
|
-
): STM<A2, E | E1, R | R1>
|
|
1966
|
+
): <E, R>(self: STM<A, E, R>) => STM<A2, E1 | E, R1 | R>
|
|
1967
|
+
<A, E, R, A1, E1, R1, A2>(self: STM<A, E, R>, that: STM<A1, E1, R1>, f: (a: A, b: A1) => A2): STM<A2, E | E1, R | R1>
|
|
2016
1968
|
} = core.zipWith
|
|
2017
1969
|
|
|
2018
1970
|
/**
|
|
@@ -2058,28 +2010,29 @@ export const Do: STM<{}> = succeed({})
|
|
|
2058
2010
|
* @since 2.0.0
|
|
2059
2011
|
*/
|
|
2060
2012
|
export const bind: {
|
|
2061
|
-
<N extends string, K,
|
|
2013
|
+
<N extends string, K, A, E2, R2>(
|
|
2062
2014
|
tag: Exclude<N, keyof K>,
|
|
2063
2015
|
f: (_: K) => STM<A, E2, R2>
|
|
2064
|
-
): <
|
|
2065
|
-
<
|
|
2016
|
+
): <E, R>(self: STM<K, E, R>) => STM<MergeRecord<K, { [k in N]: A }>, E2 | E, R2 | R>
|
|
2017
|
+
<K, E, R, N extends string, A, E2, R2>(
|
|
2066
2018
|
self: STM<K, E, R>,
|
|
2067
2019
|
tag: Exclude<N, keyof K>,
|
|
2068
2020
|
f: (_: K) => STM<A, E2, R2>
|
|
2069
|
-
): STM<
|
|
2021
|
+
): STM<MergeRecord<K, { [k in N]: A }>, E | E2, R | R2>
|
|
2070
2022
|
} = stm.bind
|
|
2071
2023
|
|
|
2072
2024
|
const let_: {
|
|
2073
2025
|
<N extends string, K, A>(
|
|
2074
2026
|
tag: Exclude<N, keyof K>,
|
|
2075
2027
|
f: (_: K) => A
|
|
2076
|
-
): <
|
|
2077
|
-
<
|
|
2028
|
+
): <E, R>(self: STM<K, E, R>) => STM<MergeRecord<K, { [k in N]: A }>, E, R>
|
|
2029
|
+
<K, E, R, N extends string, A>(
|
|
2078
2030
|
self: STM<K, E, R>,
|
|
2079
2031
|
tag: Exclude<N, keyof K>,
|
|
2080
2032
|
f: (_: K) => A
|
|
2081
|
-
): STM<
|
|
2033
|
+
): STM<MergeRecord<K, { [k in N]: A }>, E, R>
|
|
2082
2034
|
} = stm.let_
|
|
2035
|
+
|
|
2083
2036
|
export {
|
|
2084
2037
|
/**
|
|
2085
2038
|
* @category do notation
|
|
@@ -2094,5 +2047,5 @@ export {
|
|
|
2094
2047
|
*/
|
|
2095
2048
|
export const bindTo: {
|
|
2096
2049
|
<N extends string>(tag: N): <A, E, R>(self: STM<A, E, R>) => STM<Record<N, A>, E, R>
|
|
2097
|
-
<
|
|
2050
|
+
<A, E, R, N extends string>(self: STM<A, E, R>, tag: N): STM<Record<N, A>, E, R>
|
|
2098
2051
|
} = stm.bindTo
|