diff --git a/docs/modules/ReaderTask.ts.md b/docs/modules/ReaderTask.ts.md index d44091f1a..df7b4113c 100644 --- a/docs/modules/ReaderTask.ts.md +++ b/docs/modules/ReaderTask.ts.md @@ -16,6 +16,7 @@ Added in v2.3.0 - [tap](#tap) - [tapIO](#tapio) - [tapReader](#tapreader) + - [tapReaderIO](#tapreaderio) - [tapTask](#taptask) - [constructors](#constructors) - [ask](#ask) @@ -54,6 +55,8 @@ Added in v2.3.0 - [chain](#chain) - [chainFirst](#chainfirst) - [chainFirstIOK](#chainfirstiok) + - [chainFirstReaderIOK](#chainfirstreaderiok) + - [chainFirstReaderIOKW](#chainfirstreaderiokw) - [chainFirstReaderK](#chainfirstreaderk) - [chainFirstReaderKW](#chainfirstreaderkw) - [chainFirstTaskK](#chainfirsttaskk) @@ -72,8 +75,6 @@ Added in v2.3.0 - [model](#model) - [ReaderTask (interface)](#readertask-interface) - [sequencing](#sequencing) - - [chainFirstReaderIOK](#chainfirstreaderiok) - - [chainFirstReaderIOKW](#chainfirstreaderiokw) - [chainIOK](#chainiok) - [chainReaderIOK](#chainreaderiok) - [chainReaderIOKW](#chainreaderiokw) @@ -183,6 +184,22 @@ export declare const tapReader: { Added in v2.16.0 +## tapReaderIO + +Composes computations in sequence, using the return value of one computation to determine the next computation and +keeping only the result of the first. + +**Signature** + +```ts +export declare const tapReaderIO: { + (self: ReaderTask, f: (a: A) => RIO.ReaderIO): ReaderTask + (f: (a: A) => RIO.ReaderIO): (self: ReaderTask) => ReaderTask +} +``` + +Added in v2.16.0 + ## tapTask Composes computations in sequence, using the return value of one computation to determine the next computation and @@ -595,6 +612,36 @@ export declare const chainFirstIOK: (f: (a: A) => IO) => (first: Rea Added in v2.10.0 +## chainFirstReaderIOK + +Alias of `tapReaderIO`. + +**Signature** + +```ts +export declare const chainFirstReaderIOK: ( + f: (a: A) => RIO.ReaderIO +) => (ma: ReaderTask) => ReaderTask +``` + +Added in v2.13.0 + +## chainFirstReaderIOKW + +Alias of `tapReaderIO`. + +Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + +**Signature** + +```ts +export declare const chainFirstReaderIOKW: ( + f: (a: A) => RIO.ReaderIO +) => (ma: ReaderTask) => ReaderTask +``` + +Added in v2.13.0 + ## chainFirstReaderK Alias of `tapReader`. @@ -785,32 +832,6 @@ Added in v2.3.0 # sequencing -## chainFirstReaderIOK - -**Signature** - -```ts -export declare const chainFirstReaderIOK: ( - f: (a: A) => RIO.ReaderIO -) => (ma: ReaderTask) => ReaderTask -``` - -Added in v2.13.0 - -## chainFirstReaderIOKW - -Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). - -**Signature** - -```ts -export declare const chainFirstReaderIOKW: ( - f: (a: A) => RIO.ReaderIO -) => (ma: ReaderTask) => ReaderTask -``` - -Added in v2.13.0 - ## chainIOK **Signature** diff --git a/docs/modules/ReaderTaskEither.ts.md b/docs/modules/ReaderTaskEither.ts.md index 40d5274d0..4c95b921c 100644 --- a/docs/modules/ReaderTaskEither.ts.md +++ b/docs/modules/ReaderTaskEither.ts.md @@ -17,7 +17,11 @@ Added in v2.0.0 - [tapEither](#tapeither) - [tapIO](#tapio) - [tapReader](#tapreader) + - [tapReaderEither](#tapreadereither) + - [tapReaderIO](#tapreaderio) + - [tapReaderTask](#tapreadertask) - [tapTask](#taptask) + - [tapTaskEither](#taptaskeither) - [constructors](#constructors) - [ask](#ask) - [asks](#asks) @@ -101,8 +105,16 @@ Added in v2.0.0 - [chainFirstEitherK](#chainfirsteitherk) - [chainFirstEitherKW](#chainfirsteitherkw) - [chainFirstIOK](#chainfirstiok) + - [chainFirstReaderEitherK](#chainfirstreadereitherk) + - [chainFirstReaderEitherKW](#chainfirstreadereitherkw) + - [chainFirstReaderIOK](#chainfirstreaderiok) + - [chainFirstReaderIOKW](#chainfirstreaderiokw) - [chainFirstReaderK](#chainfirstreaderk) - [chainFirstReaderKW](#chainfirstreaderkw) + - [chainFirstReaderTaskK](#chainfirstreadertaskk) + - [chainFirstReaderTaskKW](#chainfirstreadertaskkw) + - [chainFirstTaskEitherK](#chainfirsttaskeitherk) + - [chainFirstTaskEitherKW](#chainfirsttaskeitherkw) - [chainFirstTaskK](#chainfirsttaskk) - [chainFirstW](#chainfirstw) - [chainNullableK](#chainnullablek) @@ -142,14 +154,6 @@ Added in v2.0.0 - [matchEW](#matchew) - [matchW](#matchw) - [sequencing](#sequencing) - - [chainFirstReaderEitherK](#chainfirstreadereitherk) - - [chainFirstReaderEitherKW](#chainfirstreadereitherkw) - - [chainFirstReaderIOK](#chainfirstreaderiok) - - [chainFirstReaderIOKW](#chainfirstreaderiokw) - - [chainFirstReaderTaskK](#chainfirstreadertaskk) - - [chainFirstReaderTaskKW](#chainfirstreadertaskkw) - - [chainFirstTaskEitherK](#chainfirsttaskeitherk) - - [chainFirstTaskEitherKW](#chainfirsttaskeitherkw) - [chainIOEitherK](#chainioeitherk) - [chainIOEitherKW](#chainioeitherkw) - [chainIOK](#chainiok) @@ -319,6 +323,68 @@ export declare const tapReader: { Added in v2.16.0 +## tapReaderEither + +Composes computations in sequence, using the return value of one computation to determine the next computation and +keeping only the result of the first. + +**Signature** + +```ts +export declare const tapReaderEither: { + (self: ReaderTaskEither, f: (a: A) => ReaderEither): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > + (f: (a: A) => ReaderEither): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} +``` + +Added in v2.16.0 + +## tapReaderIO + +Composes computations in sequence, using the return value of one computation to determine the next computation and +keeping only the result of the first. + +**Signature** + +```ts +export declare const tapReaderIO: { + (self: ReaderTaskEither, f: (a: A) => RIO.ReaderIO): ReaderTaskEither + (f: (a: A) => RT.ReaderTask): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} +``` + +Added in v2.16.0 + +## tapReaderTask + +Composes computations in sequence, using the return value of one computation to determine the next computation and +keeping only the result of the first. + +**Signature** + +```ts +export declare const tapReaderTask: { + (self: ReaderTaskEither, f: (a: A) => RT.ReaderTask): ReaderTaskEither< + R1 & R2, + E, + A + > + (f: (a: A) => RT.ReaderTask): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} +``` + +Added in v2.16.0 + ## tapTask Composes computations in sequence, using the return value of one computation to determine the next computation and @@ -351,6 +417,28 @@ test() Added in v2.16.0 +## tapTaskEither + +Composes computations in sequence, using the return value of one computation to determine the next computation and +keeping only the result of the first. + +**Signature** + +```ts +export declare const tapTaskEither: { + (self: ReaderTaskEither, f: (a: A) => TE.TaskEither): ReaderTaskEither< + R, + E1 | E2, + A + > + (f: (a: A) => TE.TaskEither): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} +``` + +Added in v2.16.0 + # constructors ## ask @@ -1341,6 +1429,68 @@ export declare const chainFirstIOK: ( Added in v2.10.0 +## chainFirstReaderEitherK + +Alias of `tapReaderEither`. + +**Signature** + +```ts +export declare const chainFirstReaderEitherK: ( + f: (a: A) => ReaderEither +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + +## chainFirstReaderEitherKW + +Alias of `tapReaderEither`. + +Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + +The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + +**Signature** + +```ts +export declare const chainFirstReaderEitherKW: ( + f: (a: A) => ReaderEither +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + +## chainFirstReaderIOK + +Alias of `tapReaderIO`. + +**Signature** + +```ts +export declare const chainFirstReaderIOK: ( + f: (a: A) => RIO.ReaderIO +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.13.0 + +## chainFirstReaderIOKW + +Alias of `tapReaderIO`. + +Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). + +**Signature** + +```ts +export declare const chainFirstReaderIOKW: ( + f: (a: A) => RIO.ReaderIO +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.13.0 + ## chainFirstReaderK Alias of `tapReader`. @@ -1373,6 +1523,70 @@ export declare const chainFirstReaderKW: ( Added in v2.11.0 +## chainFirstReaderTaskK + +Alias of `tapReaderTask`. + +**Signature** + +```ts +export declare const chainFirstReaderTaskK: ( + f: (a: A) => RT.ReaderTask +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + +## chainFirstReaderTaskKW + +Alias of `tapReaderTask`. + +Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). + +The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + +**Signature** + +```ts +export declare const chainFirstReaderTaskKW: ( + f: (a: A) => RT.ReaderTask +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + +## chainFirstTaskEitherK + +Alias of `tapTaskEither`. + +**Signature** + +```ts +export declare const chainFirstTaskEitherK: ( + f: (a: A) => TE.TaskEither +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + +## chainFirstTaskEitherKW + +Alias of `tapTaskEither`. + +Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + +The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + +**Signature** + +```ts +export declare const chainFirstTaskEitherKW: ( + f: (a: A) => TE.TaskEither +) => (ma: ReaderTaskEither) => ReaderTaskEither +``` + +Added in v2.11.0 + ## chainFirstTaskK Alias of `tapTask`. @@ -1847,116 +2061,6 @@ Added in v2.10.0 # sequencing -## chainFirstReaderEitherK - -**Signature** - -```ts -export declare const chainFirstReaderEitherK: ( - f: (a: A) => ReaderEither -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - -## chainFirstReaderEitherKW - -Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). - -The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. - -**Signature** - -```ts -export declare const chainFirstReaderEitherKW: ( - f: (a: A) => ReaderEither -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - -## chainFirstReaderIOK - -**Signature** - -```ts -export declare const chainFirstReaderIOK: ( - f: (a: A) => RIO.ReaderIO -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.13.0 - -## chainFirstReaderIOKW - -Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). - -**Signature** - -```ts -export declare const chainFirstReaderIOKW: ( - f: (a: A) => RIO.ReaderIO -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.13.0 - -## chainFirstReaderTaskK - -**Signature** - -```ts -export declare const chainFirstReaderTaskK: ( - f: (a: A) => RT.ReaderTask -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - -## chainFirstReaderTaskKW - -Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). - -The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. - -**Signature** - -```ts -export declare const chainFirstReaderTaskKW: ( - f: (a: A) => RT.ReaderTask -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - -## chainFirstTaskEitherK - -**Signature** - -```ts -export declare const chainFirstTaskEitherK: ( - f: (a: A) => TE.TaskEither -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - -## chainFirstTaskEitherKW - -Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). - -The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. - -**Signature** - -```ts -export declare const chainFirstTaskEitherKW: ( - f: (a: A) => TE.TaskEither -) => (ma: ReaderTaskEither) => ReaderTaskEither -``` - -Added in v2.11.0 - ## chainIOEitherK **Signature** diff --git a/src/ReaderTask.ts b/src/ReaderTask.ts index 1f5e935f3..a7b8e9b44 100644 --- a/src/ReaderTask.ts +++ b/src/ReaderTask.ts @@ -457,6 +457,22 @@ export const tapTask: { (f: (a: A) => Task<_>): (self: ReaderTask) => ReaderTask } = /*#__PURE__*/ dual(2, tapTask_(FromTask, Chain)) +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export const tapReaderIO: { + (self: ReaderTask, f: (a: A) => ReaderIO): ReaderTask + (f: (a: A) => ReaderIO): (self: ReaderTask) => ReaderTask +} = /*#__PURE__*/ dual( + 2, + (self: ReaderTask, f: (a: A) => ReaderIO): ReaderTask => + tap(self, fromReaderIOK(f)) +) + /** * @category lifting * @since 2.4.0 @@ -573,21 +589,25 @@ export const chainReaderIOK: (f: (a: A) => ReaderIO) => (ma: Read chainReaderIOKW /** + * Alias of `tapReaderIO`. + * * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). * - * @category sequencing + * @category legacy * @since 2.13.0 */ export const chainFirstReaderIOKW: ( f: (a: A) => ReaderIO -) => (ma: ReaderTask) => ReaderTask = (f) => chainFirstW(fromReaderIOK(f)) +) => (ma: ReaderTask) => ReaderTask = tapReaderIO /** - * @category sequencing + * Alias of `tapReaderIO`. + * + * @category legacy * @since 2.13.0 */ export const chainFirstReaderIOK: (f: (a: A) => ReaderIO) => (ma: ReaderTask) => ReaderTask = - chainFirstReaderIOKW + tapReaderIO /** * @category lifting diff --git a/src/ReaderTaskEither.ts b/src/ReaderTaskEither.ts index c41f454d1..fbc505999 100644 --- a/src/ReaderTaskEither.ts +++ b/src/ReaderTaskEither.ts @@ -497,26 +497,6 @@ export const chainTaskEitherK: ( f: (a: A) => TaskEither ) => (ma: ReaderTaskEither) => ReaderTaskEither = chainTaskEitherKW -/** - * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). - * - * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. - * - * @category sequencing - * @since 2.11.0 - */ -export const chainFirstTaskEitherKW: ( - f: (a: A) => TaskEither -) => (ma: ReaderTaskEither) => ReaderTaskEither = (f) => chainFirstW(fromTaskEitherK(f)) - -/** - * @category sequencing - * @since 2.11.0 - */ -export const chainFirstTaskEitherK: ( - f: (a: A) => TaskEither -) => (ma: ReaderTaskEither) => ReaderTaskEither = chainFirstTaskEitherKW - /** * @category lifting * @since 2.11.0 @@ -546,27 +526,6 @@ export const chainReaderEitherK: ( f: (a: A) => ReaderEither ) => (ma: ReaderTaskEither) => ReaderTaskEither = chainReaderEitherKW -/** - * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). - * - * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. - * - * @category sequencing - * @since 2.11.0 - */ -export const chainFirstReaderEitherKW: ( - f: (a: A) => ReaderEither -) => (ma: ReaderTaskEither) => ReaderTaskEither = (f) => - chainFirstW(fromReaderEitherK(f)) - -/** - * @category sequencing - * @since 2.11.0 - */ -export const chainFirstReaderEitherK: ( - f: (a: A) => ReaderEither -) => (ma: ReaderTaskEither) => ReaderTaskEither = chainFirstReaderEitherKW - const _map: Functor3['map'] = (fa, f) => pipe(fa, map(f)) const _apPar: Apply3['ap'] = (fab, fa) => pipe(fab, ap(fa)) const _apSeq: Apply3['ap'] = (fab, fa) => flatMap(fab, (f) => pipe(fa, map(f))) @@ -1183,6 +1142,88 @@ export const tapReader: { (f: (a: A) => Reader): (self: ReaderTaskEither) => ReaderTaskEither } = /*#__PURE__*/ dual(2, tapReader_(FromReader, Chain)) +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export const tapReaderEither: { + (self: ReaderTaskEither, f: (a: A) => ReaderEither): ReaderTaskEither< + R1 & R2, + E1 | E2, + A + > + (f: (a: A) => ReaderEither): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} = /*#__PURE__*/ dual( + 2, + ( + self: ReaderTaskEither, + f: (a: A) => ReaderEither + ): ReaderTaskEither => tap(self, fromReaderEitherK(f)) +) + +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export const tapTaskEither: { + (self: ReaderTaskEither, f: (a: A) => TaskEither): ReaderTaskEither + (f: (a: A) => TaskEither): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} = /*#__PURE__*/ dual( + 2, + ( + self: ReaderTaskEither, + f: (a: A) => TaskEither + ): ReaderTaskEither => tap(self, fromTaskEitherK(f)) +) + +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export const tapReaderTask: { + (self: ReaderTaskEither, f: (a: A) => ReaderTask): ReaderTaskEither + (f: (a: A) => ReaderTask): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} = /*#__PURE__*/ dual( + 2, + ( + self: ReaderTaskEither, + f: (a: A) => ReaderTask + ): ReaderTaskEither => tap(self, fromReaderTaskK(f)) +) + +/** + * Composes computations in sequence, using the return value of one computation to determine the next computation and + * keeping only the result of the first. + * + * @category combinators + * @since 2.16.0 + */ +export const tapReaderIO: { + (self: ReaderTaskEither, f: (a: A) => ReaderIO): ReaderTaskEither + (f: (a: A) => ReaderTask): ( + self: ReaderTaskEither + ) => ReaderTaskEither +} = /*#__PURE__*/ dual( + 2, + (self: ReaderTaskEither, f: (a: A) => ReaderIO): ReaderTaskEither => + tap(self, fromReaderIOK(f)) +) + /** * @category instances * @since 2.7.0 @@ -1271,6 +1312,54 @@ export const chainFirstReaderKW: ( f: (a: A) => R.Reader ) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReader +/** + * Alias of `tapReaderEither`. + * + * Less strict version of [`chainFirstReaderEitherK`](#chainfirstreadereitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export const chainFirstReaderEitherKW: ( + f: (a: A) => ReaderEither +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderEither + +/** + * Alias of `tapReaderEither`. + * + * @category legacy + * @since 2.11.0 + */ +export const chainFirstReaderEitherK: ( + f: (a: A) => ReaderEither +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderEither + +/** + * Alias of `tapTaskEither`. + * + * Less strict version of [`chainFirstTaskEitherK`](#chainfirsttaskeitherk). + * + * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. + * + * @category legacy + * @since 2.11.0 + */ +export const chainFirstTaskEitherKW: ( + f: (a: A) => TaskEither +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapTaskEither + +/** + * Alias of `tapTaskEither`. + * + * @category legacy + * @since 2.11.0 + */ +export const chainFirstTaskEitherK: ( + f: (a: A) => TaskEither +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapTaskEither + /** * @category lifting * @since 2.11.0 @@ -1303,24 +1392,28 @@ export const chainReaderTaskK: ( ) => (ma: ReaderTaskEither) => ReaderTaskEither = chainReaderTaskKW /** + * Alias of `tapReaderTask`. + * * Less strict version of [`chainFirstReaderTaskK`](#chainfirstreadertaskk). * * The `W` suffix (short for **W**idening) means that the environment types and the error types will be merged. * - * @category sequencing + * @category legacy * @since 2.11.0 */ export const chainFirstReaderTaskKW: ( f: (a: A) => RT.ReaderTask -) => (ma: ReaderTaskEither) => ReaderTaskEither = (f) => chainFirstW(fromReaderTaskK(f)) +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderTask /** - * @category sequencing + * Alias of `tapReaderTask`. + * + * @category legacy * @since 2.11.0 */ export const chainFirstReaderTaskK: ( f: (a: A) => RT.ReaderTask -) => (ma: ReaderTaskEither) => ReaderTaskEither = chainFirstReaderTaskKW +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderTask /** * @category lifting @@ -1352,22 +1445,26 @@ export const chainReaderIOK: ( ) => (ma: ReaderTaskEither) => ReaderTaskEither = chainReaderIOKW /** + * Alias of `tapReaderIO`. + * * Less strict version of [`chainFirstReaderIOK`](#chainfirstreaderiok). * - * @category sequencing + * @category legacy * @since 2.13.0 */ export const chainFirstReaderIOKW: ( f: (a: A) => ReaderIO -) => (ma: ReaderTaskEither) => ReaderTaskEither = (f) => chainFirstW(fromReaderIOK(f)) +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderIO /** - * @category sequencing + * Alias of `tapReaderIO`. + * + * @category legacy * @since 2.13.0 */ export const chainFirstReaderIOK: ( f: (a: A) => ReaderIO -) => (ma: ReaderTaskEither) => ReaderTaskEither = chainFirstReaderIOKW +) => (ma: ReaderTaskEither) => ReaderTaskEither = tapReaderIO /** * @category conversions diff --git a/test/ReaderTask.ts b/test/ReaderTask.ts index 001fb3aa8..350b177be 100644 --- a/test/ReaderTask.ts +++ b/test/ReaderTask.ts @@ -315,4 +315,8 @@ describe.concurrent('ReaderTask', () => { it('tapReader', async () => { U.deepStrictEqual(await _.tapReader(_.of(1), () => R.of(2))({})(), 1) }) + + it('tapReaderIO', async () => { + U.deepStrictEqual(await _.tapReaderIO(_.of(1), () => RIO.of(2))({})(), 1) + }) }) diff --git a/test/ReaderTaskEither.ts b/test/ReaderTaskEither.ts index 757c92d66..8e4616c78 100644 --- a/test/ReaderTaskEither.ts +++ b/test/ReaderTaskEither.ts @@ -774,4 +774,20 @@ describe.concurrent('ReaderTaskEither', () => { it('tapReader', async () => { U.deepStrictEqual(await _.tapReader(_.of(1), () => R.of(2))({})(), E.of(1)) }) + + it('tapReaderEither', async () => { + U.deepStrictEqual(await _.tapReaderEither(_.of(1), () => RE.of(2))({})(), E.of(1)) + }) + + it('tapTaskEither', async () => { + U.deepStrictEqual(await _.tapTaskEither(_.of(1), () => TE.of(2))({})(), E.of(1)) + }) + + it('tapReaderTask', async () => { + U.deepStrictEqual(await _.tapReaderTask(_.of(1), () => RT.of(2))({})(), E.of(1)) + }) + + it('tapReaderIO', async () => { + U.deepStrictEqual(await _.tapReaderIO(_.of(1), () => RIO.of(2))({})(), E.of(1)) + }) })