echo 0.isNil
type mismatch: got < int literal(0)>
but expected one of: proc isNil[T: proc](x: T): bool
proc isNil[T](x: ptr T): bool
proc isNil(x: cstring): bool
proc isNil(x: pointer): bool
proc isNil(x: string): bool
proc isNil[T](x: seq[T]): bool
proc isNil[T](x: ref T): bool
How are we supposed to write generic code when we can't have expressions like 0.isNil
?