def absorb(preferences):
    """Merge our preferences with the given preferences.

        Only those preferences which are unset in us but set in the given
        preferences are absorbed.

        :param preferences: The preferences to merge into ourself.
        :type preferences: IPreferences
        :raises TypeError: if `preferences` isn't a preference.
        """
