Effect.tap
値をそのまま保ったままEffectを挟む
例えば、ログ記録やトラッキングなどを挟む
(Effect<A, E, R>, A => Effect<B, E, R>) => Effect<A, E, R>
code:ts
// finalAmount :: Effect<number, Error, never>
const finalAmount = pipe(
fetchTransactionAmount, // :: Effect<number, never, never>
// Log the fetched transaction amount
Effect.tap((amount) => Console.log(Apply a discount to: ${amount})),
// amount is still available!
Effect.flatMap((amount) => applyDiscount(amount, 5))
)