@@ -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>,
|
self: Lens<A, ER, EW, RR, RW>,
|
||||||
get: (a: NoInfer<A>) => B,
|
get: (a: NoInfer<A>) => B,
|
||||||
set: (a: NoInfer<A>, b: B) => NoInfer<A>,
|
set: (a: NoInfer<A>, b: B) => NoInfer<A>,
|
||||||
@@ -93,9 +104,20 @@ export const map = <A, ER, EW, RR, RW, B>(
|
|||||||
) => self.modify(a =>
|
) => self.modify(a =>
|
||||||
Effect.flatMap(f(get(a)), ([c, next]) => Effect.succeed([c, set(a, next)]))
|
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>,
|
self: Lens<A, ER, EW, RR, RW>,
|
||||||
get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>,
|
get: (a: NoInfer<A>) => Effect.Effect<B, EGet, RGet>,
|
||||||
set: (a: NoInfer<A>, b: B) => Effect.Effect<NoInfer<A>, ESet, RSet>,
|
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
|
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