proc f(x: int): int =
  result = case x
    of 1: 2
    elif x == 2: 3
    else: 1

doAssert 2 == f(f(f(f(1))))