@spec insert_at(tuple, integer, term) :: tuple def insert_at(tuple, index, value) do non_neg_index = if index >= 0 do index else count = tuple_size(tuple) index + count + 1 end
:erlang.insert_element(non_neg_index + 1, tuple, value) end
@spec delete_at(tuple, integer) :: tuple
def delete_at(tuple, index) do non_neg_index = if index >= 0 do index else count = tuple_size(tuple) index + count end
:erlang.delete_element(non_neg_index + 1, tuple) end