Hmm.... aren't 0 and false reasonable default defaults for non-pointer types? It just needs to be documented doesn't it?

I did notice that there's no checking a number is actually a number until it fails to compile...