Consider stream_lazy to always return the result, move nesting check to after reduce