Re-entrant modification of a variable

It's supposedly a bug, but you can still do it.

let tail = tail
return !failFence && block(tail) && !failFence