thenWithContext<Q> method
Chain two lenses together.
Example:
final bar = Bar(foos: [Foo(number: 101, name: "One"), Foo(number: 102, name: "Two")], driver: "One");
final driversNumber =
Bar$.foos.thenWithContext((bar) => List$.where<Foo>((foo) => foo.name == bar.driver).then(Foo$.number));
print(driversNumber.of(bar).value);
// 101
Implementation
Lens<S, Q> thenWithContext<Q>(Lens<T, Q> Function(S context) lensMaker) => Lens<S, Q>(
(s) => lensMaker(s).get(get(s)),
(s, q) => update(s, lensMaker(s).update(get(s), q)),
);