pub fn apply_binary_kernel_broadcast<'l, 'r, L, R, O, K, LK, RK>(
    lhs: &'l ChunkedArray<L>,
    rhs: &'r ChunkedArray<R>,
    kernel: K,
    lhs_broadcast_kernel: LK,
    rhs_broadcast_kernel: RK
) -> ChunkedArray<O>
where L: PolarsDataType, R: PolarsDataType, O: PolarsDataType, K: Fn(&L::Array, &R::Array) -> O::Array, LK: Fn(L::Physical<'l>, &R::Array) -> O::Array, RK: Fn(&L::Array, R::Physical<'r>) -> O::Array,