docs: def matches(self, sexp):
          '''
          Body of a non-terminal is always a :class:`Sequence`. For an s-expr
          to match, it must be of the form::
  
              ['name'] + [sexpr-0, ..., sexpr-n]
  
          where the first list contains a name of the non-terminal,
          and the second one matches its body sequence.
          '''
          if sexp and isinstance(sexp, list) and self.name == sexp[0]:
              return self.body.matches(sexp[1:])
          return False