diff --git a/packages/effect/src/Record.ts b/packages/effect/src/Record.ts
index 79d1912105d..31fc391b060 100644
--- a/packages/effect/src/Record.ts
+++ b/packages/effect/src/Record.ts
@@ -168,10 +168,21 @@ export const fromIterableWith: {
* @category constructors
* @since 2.0.0
*/
-export const fromIterableBy = (
- items: Iterable,
- f: (a: A) => K
-): Record, A> => fromIterableWith(items, (a) => [f(a), a])
+export const fromIterableBy: {
+ (
+ f: (a: A) => K
+ ): (self: Iterable) => Record, A>
+ (
+ self: Iterable,
+ f: (a: A) => K
+ ): Record, A>
+} = dual(
+ 2,
+ (
+ self: Iterable,
+ f: (a: A) => K
+ ): Record, A> => fromIterableWith(self, (a) => [f(a), a])
+)
/**
* Builds a record from an iterable of key-value pairs.