Represent the aruments in a form suitable as a key (hashable)

    And which will be recognisable to user in error messages
    >>> print(_represent_arguments([1, 2], **{'fred':'here'}))
    [1, 2], fred='here'

def _represent_arguments(*arguments, **keyword_arguments):
    """Represent the aruments in a form suitable as a key (hashable)

    And which will be recognisable to user in error messages
    >>> print(_represent_arguments([1, 2], **{'fred':'here'}))
    [1, 2], fred='here'
    """
    argument_strings = [repr(a) for a in arguments]
    keyword_strings = [
        '='.join((k, repr(v))) for k, v in keyword_arguments.items()]
    return ', '.join(argument_strings + keyword_strings)