The patch. I refrained from using the `args-out-of-range` error in `aset` in favour of more descriptive ones although the exact messages could perhaps be improved. Otherwise, not much to say really. Everything works but that's a given; don't expect anything to break at this point.