Some 2 years ago Io got a new way of defining setters, which allowed for implementing destructuring bind ([a,b,c] := someTriple). It took me the better part of a year, but it was very rewarding. I put a write-up on my blog, which might be of interest if you'd like to know more about Io interpreter internals:
https://klibert.pl/posts/adding_destructuring_bind_to_io.htm...