martmists
10/03/2023, 3:50 PM@OverloadResolutionByLambdaReturnType
but it's not working and I'm unsure why.
// signatures:
@OverloadResolutionByLambdaReturnType
inline fun <reified L : Any, reified R : Any, reified I : Any> Series<L, I>.zipTransform(other: Series<R, I>, transform: (L, R) -> Double?): Series<Double, I>
@OverloadResolutionByLambdaReturnType
inline fun <reified L : Any, reified R : Any, reified I : Any> Series<L, I>.zipTransform(other: Series<R, I>, transform: (L, R) -> Float?): Series<Float, I>
@OverloadResolutionByLambdaReturnType
inline fun <reified L : Any, reified R : Any, reified I : Any> Series<L, I>.zipTransform(other: Series<R, I>, transform: (L, R) -> Int): Series<Int?, I>
@OverloadResolutionByLambdaReturnType
inline fun <reified L : Any, reified R : Any, reified N : Any, reified I : Any> Series<L, I>.zipTransform(other: Series<R, I>, transform: (L, R) -> N): Series<N?, I>
@OverloadResolutionByLambdaReturnType
inline fun <reified L, reified R, reified N, reified I : Any> Series<L, I>.zipTransform(other: Series<R, I>, transform: (L?, R?) -> N): Series<N, I>
// call site:
inline operator fun <reified I : Any> Series<Double, I>.div(other: Series<Double, I>) = zipTransform(other) { a, b -> a / b }
// error
e: file:///home/mart/git/experiments/kotlin-df/src/main/kotlin/com/martmists/koala/ops/div.kt:6:89 Overload resolution ambiguity:
public inline fun <reified L : Any, reified R : Any, reified N : Any, reified I : Any> Series<TypeVariable(L), TypeVariable(I)>.zipTransform(other: Series<TypeVariable(R), TypeVariable(I)>, transform: (TypeVariable(L), TypeVariable(R)) -> TypeVariable(N)): Series<TypeVariable(N)?, TypeVariable(I)> defined in com.martmists.koala.ops in file _common.kt
public inline fun <reified L : Any, reified R : Any, reified I : Any> Series<TypeVariable(L), TypeVariable(I)>.zipTransform(other: Series<TypeVariable(R), TypeVariable(I)>, transform: (TypeVariable(L), TypeVariable(R)) -> Double?): Series<Double, TypeVariable(I)> defined in com.martmists.koala.ops in file _common.kt
public inline fun <reified L : Any, reified R : Any, reified I : Any> Series<TypeVariable(L), TypeVariable(I)>.zipTransform(other: Series<TypeVariable(R), TypeVariable(I)>, transform: (TypeVariable(L), TypeVariable(R)) -> Float?): Series<Float, TypeVariable(I)> defined in com.martmists.koala.ops in file _common.kt
public inline fun <reified L : Any, reified R : Any, reified I : Any> Series<TypeVariable(L), TypeVariable(I)>.zipTransform(other: Series<TypeVariable(R), TypeVariable(I)>, transform: (TypeVariable(L), TypeVariable(R)) -> Int): Series<Int?, TypeVariable(I)> defined in com.martmists.koala.ops in file _common.kt
public inline fun <reified L, reified R, reified N, reified I : Any> Series<TypeVariable(L), TypeVariable(I)>.zipTransform(other: Series<TypeVariable(R), TypeVariable(I)>, transform: (TypeVariable(L)?, TypeVariable(R)?) -> TypeVariable(N)): Series<TypeVariable(N), TypeVariable(I)> defined in com.martmists.koala.ops in file _common.kt