doit() keeps unevaluated Product, if _eval_product returned nan