diff --git a/packages/effect-lens/src/Subscribable.ts b/packages/effect-lens/src/Subscribable.ts index 125198e..c88a108 100644 --- a/packages/effect-lens/src/Subscribable.ts +++ b/packages/effect-lens/src/Subscribable.ts @@ -36,6 +36,22 @@ export const focusArrayAt: { index: number, ): Subscribable.Subscribable => Subscribable.mapEffect(self, Array.get(index))) +/** + * Narrows the focus to an indexed element of a readonly tuple. + */ +export const focusTupleAt: { + ( + self: Subscribable.Subscribable, + index: I, + ): Subscribable.Subscribable + ( + index: I + ): (self: Subscribable.Subscribable) => Subscribable.Subscribable +} = Function.dual(2, ( + self: Subscribable.Subscribable, + index: I, +): Subscribable.Subscribable => Subscribable.map(self, Array.unsafeGet(index))) + /** * Narrows the focus to an indexed element of `Chunk`. */