code: def is_instance_collection(c, cls):
      
      if not (hasattr(c, '__iter__') and len(c) > 0):
          # make sure it's iterable and not empty
          return False
  
      cls = make_list(cls)
      for i in get_collection_values(c):
          instance = False
          for cl in cls:
              if isinstance(i, cl):
                  instance = True
                  break
          if not instance:
              return False
  
      return True
docs: Args:
          c: any object
          cls: a class or a list/tuple of classes
      Returns: True if c is a non-empty collection of objects, each of which
          is an instance of one of the specified classes.