procedure ackertrace(i,j)
   static level
   local result
   initial level := 0
   write(repl("x",level +:= 1))
   if i = 0 then result := j + 1
   else if j = 0 then result := ackertrace(i - 1,1)
   else result := ackertrace(i - 1,ackertrace(i,j - 1))
   level -:= 1
   return result
end
