code: def add(self, coro, *args, **kw):
          
          # Create coroutine object if a function is provided
          if asyncio.iscoroutinefunction(coro):
              coro = coro(*args, **kw)
  
          # Verify coroutine
          if not asyncio.iscoroutine(coro):
              raise TypeError('paco: coro must be a coroutine object')
  
          # Store coroutine with arguments for deferred execution
          index = max(len(self.pool), 0)
          task = Task(index, coro)
  
          # Append the coroutine data to the pool
          self.pool.append(task)
  
          return coro
docs: Adds a new coroutine function with optional variadic argumetns.
  
          Arguments:
              coro (coroutine function): coroutine to execute.
              *args (mixed): optional variadic arguments
  
          Raises:
              TypeError: if the coro object is not a valid coroutine
  
          Returns:
              future: coroutine wrapped future