def diff(*args, **kwargs):
    '''
    Return the DIFFERENCE of the result sets returned by each matching minion
    pool
    .. versionadded:: 2014.7.0
    These pools are determined from the aggregated and sorted results of
    a salt command.
    This command displays the "diffs" as a series of 2-way differences --
    namely the difference between the FIRST displayed minion pool
    (according to sort order) and EACH SUBSEQUENT minion pool result set.
    Differences are displayed according to the Python ``difflib.unified_diff()``
    as in the case of the salt execution module ``file.get_diff``.
    This command is submitted via a salt runner using the general form::
        salt-run survey.diff [survey_sort=up/down] <target>
                     <salt-execution-module> <salt-execution-module parameters>
    Optionally accept a ``survey_sort=`` parameter. Default:
    ``survey_sort=down``
    CLI Example
    .. code-block:: bash
        salt-run survey.diff survey_sort=up "*" cp.get_file_str file:///etc/hosts
    '''
    import difflib
    bulk_ret = _get_pool_results(*args, **kwargs)
    is_first_time = True
    for k in bulk_ret:
        print('minion pool :\n'
              '------------')
        print(k['pool'])
        print('pool size :\n'
              '----------')
        print('    ' + six.text_type(len(k['pool'])))
        if is_first_time:
            is_first_time = False
            print('pool result :\n'
                  '------------')
            print('    ' + bulk_ret[0]['result'])
            print()
            continue
        outs = ('differences from "{0}" results :').format(
            bulk_ret[0]['pool'][0])
        print(outs)
        print('-' * (len(outs) - 1))
        from_result = bulk_ret[0]['result'].splitlines()
        for i in range(0, len(from_result)):
            from_result[i] += '\n'
        to_result = k['result'].splitlines()
        for i in range(0, len(to_result)):
            to_result[i] += '\n'
        outs = ''
        outs += ''.join(difflib.unified_diff(from_result,
                                             to_result,
                                             fromfile=bulk_ret[0]['pool'][0],
                                             tofile=k['pool'][0],
                                             n=0))
        print(outs)
        print()
    return bulk_ret