set! now supports changing val in vector and table