docs: def findall(self, expr):
          """list of all matching (sub-)expressions in `expr`
  
          See also:
              :meth:`finditer` yields the matches (:class:`MatchDict` instances)
              for the matched expressions.
          """
          result = []
          try:
              for arg in expr.args:
                  result.extend(self.findall(arg))
              for arg in expr.kwargs.values():
                  result.extend(self.findall(arg))
          except AttributeError:
              pass
          if self.match(expr):
              result.append(expr)
          return result