docs: def serve_forever(self, banner=None):
          """Interact with the user.
  
          :param banner: (optional) the banner to print before the first
                         interaction. Defaults to ``None``.
          """
          if hasattr(readline, "read_history_file"):
              try:
                  readline.read_history_file(self.histfile)
              except IOError:
                  pass
              atexit.register(self._save_history)
          super(Shell, self).serve_forever(banner)