code: def _inspect(instance):
      
      is_piper = isinstance(instance, Piper)
      is_function = isinstance(instance, FunctionType) or isbuiltin(instance)
      is_worker = isinstance(instance, Worker)
      is_iterable = getattr(instance, '__iter__', False) and not \
                   (is_piper or is_function or is_worker)
      is_iterable_p = is_iterable and isinstance(instance, Piper)
      is_iterable_f = is_iterable and (isinstance(instance[0], FunctionType) or \
                                       isbuiltin(instance[0]))
      is_iterable_w = is_iterable and isinstance(instance[0], Worker)
      return (is_piper, is_worker, is_function, is_iterable_p, is_iterable_w, \
              is_iterable_f)
docs: (internal) Determines the type of a given ``object``. Discriminates between 
      ``Piper``, ``Worker``, ``FunctionType`` and  ``Iterable`` instances. It 
      returns  a  ``tuple`` of boolean variables i.e: (is_piper, is_worker, 
      is_function,  is_iterable_of_pipers, is_iterable_of_workers, 
      is_iterable_of_functions).