I hadn't noticed that 4.06 will let me extend indexing. It's certainly a nice feature to have; I'll throw it in :)
I actually think I can use that to great effect - a lot of this is used to pack data into structures which are sent to/from C, the network, files, etc.. Having multiple ways of indexing it could be quite helpful for getting/setting multiple different types of data.
let ( .!{ } ) = get_1byte_int
let ( .@{ } ) = get_2byte_int
let ( .${ } ) = get_4byte_int
let ( .*{ } ) = get_8byte_int
Where the extension character is shift+number of bytes (at least on my keyboard...) I'm a bit worried that it'll start looking like Perl, but time will tell.
Thanks for the great ideas!