Moves a list element to a new index while preserving order.

    Parameters
    ---------
    arr : list
        The list in which to shift an element.
    value : object
        The value of the element to shift.
    new_index : int
        The index to which to shift the element.

    Returns
    -------
    list
        The list with the element shifted.

    Example
    -------
    >>> arr = ['a', 'b', 'c', 'd']
    >>> order_preserving_single_element_shift(['a', 'b', 'c', 'd'], 'c', 0)
    ['c', 'a', 'b', 'd']

def order_preserving_single_element_shift(arr, value, new_index):
    """Moves a list element to a new index while preserving order.

    Parameters
    ---------
    arr : list
        The list in which to shift an element.
    value : object
        The value of the element to shift.
    new_index : int
        The index to which to shift the element.

    Returns
    -------
    list
        The list with the element shifted.

    Example
    -------
    >>> arr = ['a', 'b', 'c', 'd']
    >>> order_preserving_single_element_shift(['a', 'b', 'c', 'd'], 'c', 0)
    ['c', 'a', 'b', 'd']
    """
    return order_preserving_single_index_shift(
        arr=arr, index=arr.index(value), new_index=new_index)