code: def dependency_closure(self, tkn: str, seen: Optional[Set[str]]=None) -> Set[str]:
          
          if seen is None:
              seen = set()
          for k in self.dependencies(tkn):
              if k not in seen:
                  seen.add(k)
                  self.dependency_closure(k, seen)
          return seen
docs: Determine the transitive closure of tkn's dependencies
          :param tkn: root token
          :param seen: list of tokens already visited in closure process
          :return: dependents, dependents of dependents, etc.