anchor.diff:  case _ => tailcall(even(i - 1))
   }
   even(3000).result
  -```
  +----
   
   ## Comparing performance
   
  
positive.code: case Done(a) => a
  case c: Continue[A] => run(c.next)
  }
  ```
  
  ## Recursion and Trampolines in Scala
  
  
negative.code: case Even(value) => run(even(value))
  case Odd(value) => run(odd(value))
  }
  ----
  
  Now we have expressed `even` and `odd` in their natural, mutually recursive way, and we still have a stack safe interpreter:
  
  