"type stuttering" eludes my ability to Google. Could you provide a link or a quick explanation?
uint8_t foo = (uint8_t)69;
In theory, there should be no need to specify the type twice. The ideal circumstance is something like uint8_t foo = 69; List<String> list = new ArrayList<String>();
It feels silly to have to write the type parameter twice. But now you can say: List<String> list = new ArrayList<>();
It's usually not a huge deal, but occasionally the stutter can be more pronounced: Map<String, List<Map<Integer, Set<Float>>>> map = ...