Extends deferred operations calling each operation of given Blueprints.

        :param blues:
            Blueprints or Dispatchers to extend deferred operations.
        :type blues: Blueprint | schedula.dispatcher.Dispatcher

        :param memo:
            A dictionary to cache Blueprints.
        :type memo: dict[T,Blueprint]

        :return:
            Self.
        :rtype: Blueprint

        **--------------------------------------------------------------------**

        Example::

            >>> import schedula as sh
            >>> blue = sh.BlueDispatcher()
            >>> blue.extend(
            ...     BlueDispatcher().add_func(len, ['length']),
            ...     BlueDispatcher().add_func(callable, ['is_callable'])
            ... )
            <schedula.utils.blue.BlueDispatcher object at ...>

def extend(self, *blues, memo=None):
        """
        Extends deferred operations calling each operation of given Blueprints.

        :param blues:
            Blueprints or Dispatchers to extend deferred operations.
        :type blues: Blueprint | schedula.dispatcher.Dispatcher

        :param memo:
            A dictionary to cache Blueprints.
        :type memo: dict[T,Blueprint]

        :return:
            Self.
        :rtype: Blueprint

        **--------------------------------------------------------------------**

        Example::

            >>> import schedula as sh
            >>> blue = sh.BlueDispatcher()
            >>> blue.extend(
            ...     BlueDispatcher().add_func(len, ['length']),
            ...     BlueDispatcher().add_func(callable, ['is_callable'])
            ... )
            <schedula.utils.blue.BlueDispatcher object at ...>
        """
        memo = {} if memo is None else memo
        for blue in blues:
            if isinstance(blue, Dispatcher):
                blue = blue.blue(memo=memo)
            for method, kwargs in blue.deferred:
                getattr(self, method)(**kwargs)
        return self