from the failing tests it appears that it might be better to allow all *but* numbers: `if isinstance(arg, (int, float, long, Number)): raise TypeError`