Flip the order of positonal arguments of given function.

def flip(f):
    """Flip the order of positonal arguments of given function."""
    ensure_callable(f)

    result = lambda *args, **kwargs: f(*reversed(args), **kwargs)
    functools.update_wrapper(result, f, ('__name__', '__module__'))
    return result