alt: enable to order return type in sum(), product()