code: def dep_builder(type_var, ppal_index, index, t, self, node):
      if isinstance(t, TypeVar):
          if t is type_var:
              # FIXME: this is the second part of the hack below,
              # FIXME: there's no reason why self.result[node.args[index]]
              # FIXME: would still be valid in translated context
              return lambda arg: (
                  arg
                  if index == ppal_index
                  else self.result[node.args[index]]
              )
      elif isinstance(t, (List, Set, Iterable, Dict)):
          return lambda arg: self.builder.IteratorContentType(
              dep_builder(
                  type_var, ppal_index, index, t.__args__[0], self, node
              )(arg)
          )
      assert False, t
  
file_path: catboost/contrib/python/pythran/pythran/types/signature.py
imports: from pythran.typing import List, Dict, Set, Fun, TypeVar
  from pythran.typing import Union, Iterable
label_desc: Use image node_id 2 for calling a global function with example usage: dep_builder(type_var, ppal_index, index, t, node) and returns: function, function