docs: def summary(self):
          """Summary of reviews for this product.
  
          Initial summary is computed by
  
          .. math::
  
              \\frac{1}{|R|} \\sum_{r \\in R} \\mbox{review}(r),
  
          where :math:`\\mbox{review}(r)` means review from reviewer :math:`r`.
          """
          if self._summary:
              return self._summary
  
          reviewers = self._graph.retrieve_reviewers(self)
          return self._summary_cls(
              [self._graph.retrieve_review(r, self) for r in reviewers])