@@ -81,7 +81,18 @@ export const unwrap = <A, ER, EW, RR, RW, E1, R1>(
|
||||
})
|
||||
|
||||
|
||||
export const map = <A, ER, EW, RR, RW, B>(
|
||||
export const map: {
|
||||
<A, ER, EW, RR, RW, B>(
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
get: (a: NoInfer<A>) => B,
|
||||
set: (a: NoInfer<A>, b: B) => NoInfer<A>,
|
||||
): Lens<B, ER, EW, RR, RW>
|
||||
<A, ER, EW, RR, RW, B>(
|
||||
get: (a: NoInfer<A>) => B,
|
||||
set: (a: NoInfer<A>, b: B) => NoInfer<A>,
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
): Lens<B, ER, EW, RR, RW>
|
||||
} = Function.dual(3, <A, ER, EW, RR, RW, B>(
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
get: (a: NoInfer<A>) => B,
|
||||
set: (a: NoInfer<A>, b: B) => NoInfer<A>,
|
||||
@@ -93,9 +104,20 @@ export const map = <A, ER, EW, RR, RW, B>(
|
||||
) => self.modify(a =>
|
||||
Effect.flatMap(f(get(a)), ([c, next]) => Effect.succeed([c, set(a, next)]))
|
||||
),
|
||||
})
|
||||
}))
|
||||
|
||||
export const mapEffect = <A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(
|
||||
export const mapEffect: {
|
||||
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>,
|
||||
set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>,
|
||||
): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet>
|
||||
<A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(
|
||||
get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>,
|
||||
set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>,
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
): Lens<B, ER | EGet, EW | ESet, RR | RGet, RW | RSet>
|
||||
} = Function.dual(3, <A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet = never, RSet = never>(
|
||||
self: Lens<A, ER, EW, RR, RW>,
|
||||
get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>,
|
||||
set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>,
|
||||
@@ -114,7 +136,7 @@ export const mapEffect = <A, ER, EW, RR, RW, B, EGet = never, RGet = never, ESet
|
||||
),
|
||||
)
|
||||
)),
|
||||
})
|
||||
}))
|
||||
|
||||
|
||||
export const get = <A, ER, EW, RR, RW>(self: Lens<A, ER, EW, RR, RW>): Effect.Effect<A, ER, RR> => self.get
|
||||
|
||||
Reference in New Issue
Block a user