gaps don't have to be typed explicitly, because the type is already known