I guess
```scala
for (u <- b) yield a.fold(u)(combOp(_, _))
```
should be just as good, maybe better.