a bit concerned as to what happens here if the ValuePipe is empty. What if you sum an empty pipe or totally filtered pipe?

Perdaps mapWithScalar should take `fn: (T, Option[U]) => V` and we can do a left hash join to implement this cross.  Thoughts?