concept-check range difference type