class FooError {
readonly _tag = 'FooError';
}
class BarError {
readonly _tag = 'BarError';
}
class BazError {
readonly _tag = 'BazError';
}
const op1 = (n: number): Effect.Effect<never, FooError, number> =>
n > 0.5 ? Effect.fail(new FooError()) : Effect.succeed(n - 0.1);
const op2 = (n: number): Effect.Effect<never, BarError, number> =>
n > 0.5 ? Effect.fail(new BarError()) : Effect.succeed(n - 0.1);
const op3 = (n: number): Effect.Effect<never, BazError, number> =>
n > 0.5 ? Effect.fail(new BazError()) : Effect.succeed(n);
const fooBarBaz = Random.next.pipe(
op1,
op2,
op3,
)
class FooError {
readonly _tag = 'FooError';
}
class BarError {
readonly _tag = 'BarError';
}
class BazError {
readonly _tag = 'BazError';
}
const op1 = (n: number): Effect.Effect<never, FooError, number> =>
n > 0.5 ? Effect.fail(new FooError()) : Effect.succeed(n - 0.1);
const op2 = (n: number): Effect.Effect<never, BarError, number> =>
n > 0.5 ? Effect.fail(new BarError()) : Effect.succeed(n - 0.1);
const op3 = (n: number): Effect.Effect<never, BazError, number> =>
n > 0.5 ? Effect.fail(new BazError()) : Effect.succeed(n);
const fooBarBaz = Random.next.pipe(
op1,
op2,
op3,
)