1list_reverse(i;) [list(i)] {
2  local p, x;
3  p = NULL;
4  while (i != NULL) [list(i) * list(p)] {
5    x = i->tl;
6    i->tl = p;
7    p = i;
8    i = x;
9  }
10  i = p;
11} [list(i)]
12