If mapping and reducing need to be paired than the current implementation is probably good. Upon second consideration I can't easily think of a case where you'd want multiple reductions.