docs: def visit_filter(self, _, children):
          """A filter, with optional arguments.
  
          Arguments
          ---------
          _ (node) : parsimonious.nodes.Node.
          children : list
              - 0: string, name of the filter.
              - 1: list of instances of ``.resources.NamedArg``
  
          Returns
          -------
          .resources.Filter
              An instance of ``.resources.Filter`` with a name and a list of arguments.
              The list of arguments will be ``None`` if no parenthesis.
  
          Example
          -------
  
          >>> FiltersParserMixin(r'foo', default_rule='FILTER').data
          .foo
          >>> FiltersParserMixin(r'foo()', default_rule='FILTER').data
          .foo()
          >>> FiltersParserMixin(r'foo(1)', default_rule='FILTER').data
          .foo(1)
          >>> FiltersParserMixin(r'foo(1, bar="baz")', default_rule='FILTER').data
          .foo(1, bar="baz")
  
          """
  
          return self.Filter(
              name=children[0],
              args=children[1],
          )