fn complete(mut self) -> Option<(B, Option<(B, B)>)> {
        let mut fuel = isize::max_value();
        self.work(&mut fuel);
        if let MergeVariant::Complete(batch) = self { batch }
        else { panic!("Failed to complete a merge!"); }
    }
Completes and extracts the batch, unless structurally empty.

The result is either `None`, for structurally empty batches,
or a batch and optionally input batches from which it derived.
differential-dataflow/src/trace/implementations/spine_fueled.rs