docs: def trace(self, predicate):
          """
          Starts tracing with the given callable.
  
          Args:
              predicate (callable that accepts a single :obj:`hunter.Event` argument):
          Return:
              self
          """
          self._handler = predicate
          if self.threading_support is None or self.threading_support:
              self._threading_previous = getattr(threading, '_trace_hook', None)
              threading.settrace(self)
          self._previous = sys.gettrace()
          sys.settrace(self)
          return self