Is the micro-optimization of checking for `1.` really important? I had to stare at this for a few seconds to figure out what happens when the wrong type gets passed in (say, a string). I'd prefer just checking for `None`.