Here is a more scary example with the tables module:
import tables
var value: string
var table = initTable[int, int]()
table[1] = 1
proc foo[T]() =
table.withValue(1, value) do: discard
foo[int]()
Fails with `inconsistent typing for reintroduced symbol 'value': previous type was: string; new type is: ptr int`
