def increase_and_bind_indices(indices, incr, free_indices):
    """
    Increase all indices greater than or equal to zero by some constant 
    amount and change the free indices to the ones given as:
        i -> free_indices[-i - 1]

    Args:
        indices ([int]): list in which the operation is to be done
        incr (int): constant amount to increase the non-negative indices
        free_indices ([int]): list of new free_indices

    Return:
        A list of the changed indices.
    """
    return [ind + incr if ind >= 0
            else free_indices[-ind - 1]
            for ind in indices]