code: def occurs_in_type(v, type2):
      
      pruned_type2 = prune(type2)
      if pruned_type2 == v:
          return True
      elif isinstance(pruned_type2, TypeOperator):
          return occurs_in(v, pruned_type2.types)
      return False
docs: Checks whether a type variable occurs in a type expression.
  
      Note: Must be called with v pre-pruned
  
      Args:
          v:  The TypeVariable to be tested for
          type2: The type in which to search
  
      Returns:
          True if v occurs in type2, otherwise False