diff --git a/packages/effect-fc/src/Lens.ts b/packages/effect-fc/src/Lens.ts
index 79a8f5a..50f1319 100644
--- a/packages/effect-fc/src/Lens.ts
+++ b/packages/effect-fc/src/Lens.ts
@@ -81,7 +81,18 @@ export const unwrap = (
})
-export const map = (
+export const map: {
+ (
+ self: Lens,
+ get: (a: NoInfer) => B,
+ set: (a: NoInfer, b: B) => NoInfer,
+ ): Lens
+ (
+ get: (a: NoInfer) => B,
+ set: (a: NoInfer, b: B) => NoInfer,
+ self: Lens,
+ ): Lens
+} = Function.dual(3, (
self: Lens,
get: (a: NoInfer) => B,
set: (a: NoInfer, b: B) => NoInfer,
@@ -93,9 +104,20 @@ export const map = (
) => self.modify(a =>
Effect.flatMap(f(get(a)), ([c, next]) => Effect.succeed([c, set(a, next)]))
),
-})
+}))
-export const mapEffect = (
+export const mapEffect: {
+ (
+ self: Lens,
+ get: (a: NoInfer) => Effect.Effect,
+ set: (a: NoInfer, b: B) => Effect.Effect, ESet, RSet>,
+ ): Lens
+ (
+ get: (a: NoInfer) => Effect.Effect,
+ set: (a: NoInfer, b: B) => Effect.Effect, ESet, RSet>,
+ self: Lens,
+ ): Lens
+} = Function.dual(3, (
self: Lens,
get: (a: NoInfer) => Effect.Effect,
set: (a: NoInfer, b: B) => Effect.Effect, ESet, RSet>,
@@ -114,7 +136,7 @@ export const mapEffect = (self: Lens): Effect.Effect => self.get