Skip to content

Instantly share code, notes, and snippets.

@ivkomarov
Created February 26, 2020 17:40
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("divHKT1")
@JvmSynthetic fun <A: Any, K, G> JLens<J, J, K>.div(F1: Traverse<K>, GA: Applicative<G>, next: JLens<J, A, G>): CompositeLens<J, Kind<K, A>, G> {
val self = this
return CompositeLens { json: J ->
with (F1) {
self(json).traverse(GA, next::invoke)
}
}
}
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("divHKT2")
@JvmSynthetic fun <A: Any, K1, K2, G> JLens<J, Kind<K1, J>, K2>.div(F1: Traverse<K1>, F2: Traverse<K2>, GA: Applicative<G>, next: JLens<J, A, G>): CompositeLens<J, Kind<K2, Kind<K1, A>>, G> {//: CompositeLens<J, Kind<K, A>, G> {
val self = this
return CompositeLens { json: J ->
with (F1) {
with (F2) {
self(json).traverse(GA) {
it.traverse(GA, next::invoke)
}
}
}
}
}
@Suppress("INAPPLICABLE_JVM_NAME")
@JvmName("divHKT2")
@JvmSynthetic fun <A: Any, K1, K2, G> CompositeLens<J, Kind<K1, J>, K2>.div(F1: Traverse<K1>, F2: Traverse<K2>, GA: Applicative<G>, next: JLens<J, A, G>): CompositeLens<J, Kind<K2, Kind<K1, A>>, G> {//: CompositeLens<J, Kind<K, A>, G> {
val self = this
return CompositeLens { json: J ->
with (F1) {
with (F2) {
self(json).traverse(GA) {
it.traverse(GA, next::invoke)
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment