I thought about trying to get clever here and doing something like `step * nextToCheck < step * guard`, but I decided that was needlessly obscure and possibly even slower :)