I am wondering, maybe instead of `reverse_improper` returning two different results, could it simply the list with `{ '|', [], [left, right] }` which we then simply pass to `do_splice`? Thanks!