Don't know of all those others, will have to investigate. From that vl-nanp's name I can only surmise it "should" have been something like a predicate to test if a value if Not-A-Number. But it seems to be broken - such predicates should not error out when they get other types of values in their parameters, especially if they're testing for something which "isn't".:
_$ (vl-nanp "1")
_$ (vl-nanp 0)
nil
_$ (vl-nanp t)
; error: bad argument type: numberp: T
_$ (vl-nanp 0.1)
nil_$ (vl-nanp (entlast))
_$ (vl-nanp '(1 2 3))
_$ (vl-nanp nil)
; error: bad argument type: numberp: nil
So sending a string / ename / list returns nothing, sending T / nil errors out. IMO less than useful!
Edit: Anyhow, if that is the correct reason behind the vl-nanp function it's quite simple to roll your own:
PPS: And anyway, why not use the built-in numberp in any case? Makes it even easier: