docs: def getNextService(self, discover):
          """Return the next authentication service for the pair of
          user_input and session.  This function handles fallback.
  
  
          @param discover: a callable that takes a URL and returns a
              list of services
  
          @type discover: str -> [service]
  
  
          @return: the next available service
          """
          manager = self.getManager()
          if manager is not None and not manager:
              self.destroyManager()
  
          if not manager:
              yadis_url, services = discover(self.url)
              manager = self.createManager(services, yadis_url)
  
          if manager:
              service = manager.next()
              manager.store(self.session)
          else:
              service = None
  
          return service