docs: def get_literals(self):
          """
          Return a list of all the literals contained in this expression.
          Include recursively subexpressions symbols.
          This includes duplicates.
          """
          if self.isliteral:
              return [self]
          if not self.args:
              return []
          return list(itertools.chain.from_iterable(arg.get_literals() for arg in self.args))