Не зарезервированное слово, не имя какого-либо класса, а параметр третьего типа в MapLike.
Объявление типа MapLike[K, +V, +This <: MapLike[K, V, This]
. Это можно назвать любым другим способом. В большинстве случаев это должен быть фактический класс разработчика, отсюда и название. в вашем случае
class IntIntMap extends MapLike [Int, Int, IntIntMap].
Без этого параметра +
тип результата был бы объявлен MapLike, а не IntIntMap. На +
это не будет проблемой, потому что вы должны определить это, и, делая это, вы можете изменить тип результата. Но методы, которые вам не нужно переопределять и которые реализованы с использованием +
(например, ++
, все равно будут возвращать MapLike.