dave
10/12/2019, 9:05 AMinline fun <A, B, reified T> composite2(
crossinline fn: (A, B) -> T,
a: Lens<Environment, A>, b: Lens<Environment, B>) = compositeLens { fn(a(it), b(it)) }
fun main() {
val lens = composite2(::MyThing, <http://EnvironmentKey.int|EnvironmentKey.int>().required("FOO"), EnvironmentKey.required("VAR"))
lens(Environment.EMPTY)
}