docs: def _widen_states(old_state, new_state):
          """
          Perform widen operation on the given states, and return a new one.
  
          :param old_state:
          :param new_state:
          :returns: The widened state, and whether widening has occurred
          """
  
          # print old_state.dbg_print_stack()
          # print new_state.dbg_print_stack()
  
          l.debug('Widening state at IP %s', old_state.ip)
  
          widened_state, widening_occurred = old_state.widen(new_state)
  
          # print "Widened: "
          # print widened_state.dbg_print_stack()
  
          return widened_state, widening_occurred