diff --git a/packages/effect-lens/src/Lens.ts b/packages/effect-lens/src/Lens.ts
index 5210b17..a5d1082 100644
--- a/packages/effect-lens/src/Lens.ts
+++ b/packages/effect-lens/src/Lens.ts
@@ -79,7 +79,7 @@ export const asLensImpl = (
lens: Lens
): LensImpl => {
if (!isLensImpl(lens))
- throw new Error("Not a 'LensImpl'.")
+ throw new Error("Not a 'LensImpl'")
return lens as LensImpl
}
@@ -122,67 +122,6 @@ export const make = (
): Lens => new LensLazyImpl(source)
-export declare namespace DerivedLensImpl {
- export interface Source<
- in out A,
- in out B,
- in out ER = never,
- in out ESR = never,
- in out EW = never,
- in out ESW = never,
- in out RR = never,
- in out RSR = never,
- in out RW = never,
- in out RSW = never,
- > {
- readonly resolve: (effect: Effect.Effect, ESR, RSR>) => Effect.Effect, ER, RR>
- readonly mapStream: (stream: Stream.Stream) => Stream.Stream
- readonly mapLock: (lock: Effect.Effect) => Effect.Effect
- }
-}
-
-export class DerivedLensImpl<
- in out A,
- in out B,
- in out ER = never,
- in out PER = never,
- in out EW = never,
- in out PEW = never,
- in out RR = never,
- in out PRR = never,
- in out RW = never,
- in out PRW = never,
->
-extends LensImpl {
- constructor(
- readonly parent: LensImpl,
- readonly source: DerivedLensImpl.Source,
- ) {
- super()
- }
-
- get resolve() { return this.source.resolve(this.parent.resolve) }
- get changes() { return this.source.mapStream(this.parent.changes) }
- get lock() { return this.source.mapLock(this.parent.lock) }
-}
-
-/**
- * Derives a new `Lens` by linking a step to an existing parent lens.
- */
-export const derive: {
- (
- self: Lens,
- source: DerivedLensImpl.Source,
- ): Lens
- (
- source: DerivedLensImpl.Source,
- ): (self: Lens) => Lens
-} = Function.dual(2, (
- self: Lens,
- source: DerivedLensImpl.Source,
-): Lens => new DerivedLensImpl(asLensImpl(self), source))
-
-
export class UnwrappedLensImpl
extends LensImpl {
constructor(
@@ -337,6 +276,67 @@ export const fromSubscriptionRef = (
): Lens => new SubscriptionRefLensImpl(ref as SubscriptionRefLensImpl.SubscriptionRefWithInternals)
+export declare namespace DerivedLensImpl {
+ export interface Source<
+ in out A,
+ in out B,
+ in out ER = never,
+ in out ESR = never,
+ in out EW = never,
+ in out ESW = never,
+ in out RR = never,
+ in out RSR = never,
+ in out RW = never,
+ in out RSW = never,
+ > {
+ readonly resolve: (effect: Effect.Effect, ESR, RSR>) => Effect.Effect, ER, RR>
+ readonly mapStream: (stream: Stream.Stream) => Stream.Stream
+ readonly mapLock: (lock: Effect.Effect) => Effect.Effect
+ }
+}
+
+export class DerivedLensImpl<
+ in out A,
+ in out B,
+ in out ER = never,
+ in out PER = never,
+ in out EW = never,
+ in out PEW = never,
+ in out RR = never,
+ in out PRR = never,
+ in out RW = never,
+ in out PRW = never,
+>
+extends LensImpl {
+ constructor(
+ readonly parent: LensImpl,
+ readonly source: DerivedLensImpl.Source,
+ ) {
+ super()
+ }
+
+ get resolve() { return this.source.resolve(this.parent.resolve) }
+ get changes() { return this.source.mapStream(this.parent.changes) }
+ get lock() { return this.source.mapLock(this.parent.lock) }
+}
+
+/**
+ * Derives a new `Lens` by linking a step to an existing parent lens.
+ */
+export const derive: {
+ (
+ self: Lens,
+ source: DerivedLensImpl.Source,
+ ): Lens
+ (
+ source: DerivedLensImpl.Source,
+ ): (self: Lens) => Lens
+} = Function.dual(2, (
+ self: Lens,
+ source: DerivedLensImpl.Source,
+): Lens => new DerivedLensImpl(asLensImpl(self), source))
+
+
/**
* Derives a new `Lens` by applying synchronous getters and setters over the focused value.
*/