use std::isnan explicitly to disambiguate with other declarations