code: def prune(t):
      
      if isinstance(t, TypeVariable):
          if t.instance is not None:
              t.instance = prune(t.instance)
              return t.instance
      return t
docs: Returns the currently defining instance of t.
  
      As a side effect, collapses the list of type instances. The function Prune
      is used whenever a type expression has to be inspected: it will always
      return a type expression which is either an uninstantiated type variable or
      a type operator; i.e. it will skip instantiated variables, and will
      actually prune them from expressions to remove long chains of instantiated
      variables.
  
      Args:
          t: The type to be pruned
  
      Returns:
          An uninstantiated TypeVariable or a TypeOperator