diff --git a/src/mapper/evaluator.py b/src/mapper/evaluator.py
index 48cb683b75ca093d27d268b1123cc5c2d896df81..d5b35979add66da93147cabdd4aa354f91722002 100644
--- a/src/mapper/evaluator.py
+++ b/src/mapper/evaluator.py
@@ -36,12 +36,8 @@ class EvaluationMapper(RecursiveMapper):
         return sum(self.rec(child) for child in expr.children)
 
     def map_product(self, expr):
-        if len(expr.children) == 0:
-            return 1 # FIXME?
-        result = self.rec(expr.children[0])
-        for child in expr.children[1:]:
-            result *= self.rec(child)
-        return result
+        from pytools import product
+        return product(self.rec(child) for child in expr.children)
 
     def map_quotient(self, expr):
         return self.rec(expr.numerator) / self.rec(expr.denominator)