async def __call__(self, *args, **kwargs):
if self._pos == <NUM_LIT:0>:<EOL><INDENT>is_root = True<EOL><DEDENT>else:<EOL><INDENT>is_root = False<EOL><DEDENT>if self._pos < len(self._stack):<EOL><INDENT>func = self._stack[self._pos]<EOL>self._pos += <NUM_LIT:1><EOL>out = await func(*args, **kwargs)<EOL><DEDENT>elif self._pos == len(self._stack):<EOL><INDENT>self._pos += <NUM_LIT:1><EOL>out = await self.final(*args, **kwargs)<EOL>self._complete = True<EOL><DEDENT>else:<EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>if is_root and not self._complete:<EOL><INDENT>faulty = self._stack[self._pos - <NUM_LIT:1>].__qualname__<EOL>raise TypeError(f'<STR_LIT>'<EOL>f'<STR_LIT>')<EOL><DEDENT>return out<EOL>
Calls the next function in the stack.