def default_if_empty(self, default):
        '''If the source sequence is empty return a single element sequence
        containing the supplied default value, otherwise return the source
        sequence unchanged.

        Note: This method uses deferred execution.

        Args:
            default: The element to be returned if the source sequence is empty.

        Returns:
            The source sequence, or if the source sequence is empty an sequence
            containing a single element with the supplied default value.

        Raises:
            ValueError: If the Queryable has been closed.
        '''

        if self.closed():
            raise ValueError("Attempt to call default_if_empty() on a "
                             "closed Queryable.")

        return self._create(self._generate_default_if_empty_result(default))
If the source sequence is empty return a single element sequence
        containing the supplied default value, otherwise return the source
        sequence unchanged.

        Note: This method uses deferred execution.

        Args:
            default: The element to be returned if the source sequence is empty.

        Returns:
            The source sequence, or if the source sequence is empty an sequence
            containing a single element with the supplied default value.

        Raises:
            ValueError: If the Queryable has been closed.