И это я ещё не добрался до, собственно, основных пиксельных данных. А у них уже копец какой-то. Там добавь единицу, тут не добавляй. Там X, Y, а тут Y, X.
Интерфейсы динамически диспатчеризуются по нулевому аргументу (aka this) у методов, а тайпклассы — могут и статически, и тип у методов может быть любой, лишь бы параметр встречался.
Кажется, что наиболее популярное в ООП-мире решение предполагает, что «моноид» является отдельным инстансом, и передаётся в методы вместе с объектами, над которыми ему предстоит работать.
Minoru а, гм, в плюсах тоже нельзя переопредить статический метод класса… Я об этом никогда не задумывался, для меня всегда ключевым свойством было отсутствие в этом методе this