diff --git a/packages/effect-fc/src/Lens.ts b/packages/effect-fc/src/Lens.ts index f0e46ad..79a8f5a 100644 --- a/packages/effect-fc/src/Lens.ts +++ b/packages/effect-fc/src/Lens.ts @@ -70,6 +70,16 @@ export const fromSubscriptionRef = ( modify: ref.modifyEffect.bind(ref), // TODO }) +export const unwrap = ( + effect: Effect.Effect, E1, R1> +): Lens => make({ + get: Effect.flatMap(effect, l => l.get), + changes: Stream.unwrap(Effect.map(effect, l => l.changes)), + modify: ( + f: (a: A) => Effect.Effect + ) => Effect.flatMap(effect, l => l.modify(f)), +}) + export const map = ( self: Lens, @@ -106,6 +116,7 @@ export const mapEffect = (self: Lens): Effect.Effect => self.get export const set: { @@ -183,16 +194,6 @@ export const updateAndGetEffect: { )), ) -export const unwrap = ( - effect: Effect.Effect, E1, R1> -): Lens => make({ - get: Effect.flatMap(effect, l => l.get), - changes: Stream.unwrap(Effect.map(effect, l => l.changes)), - modify: ( - f: (a: A) => Effect.Effect - ) => Effect.flatMap(effect, l => l.modify(f)), -}) - Effect.gen(function*() { const myChunkRef = yield* SubscriptionRef.make(Chunk.make(12, 38, 69) as Chunk.Chunk)