while(nan) doesn't compile since
nan isn't defined. Technically, it should be
while(real.nan), but that was a bit unwieldy.
As for what it does, it turns out that despite
nan comparing false to everything including itself, it's effectively the same as
while(true). Go figure.