Последняя структурка сопротивляется. Но тайпчекер уже отстал, бонус!
Нет - он затаился на время ‎- негативное сведение
Но блин class ImplicitCatenableDequeSpec extends CatenableDequeSpec[Int, ImplicitCatenableDeque.Cat[Int, Vector]](new FromVector[Int]) with IntElements ‎- Cat-coloured object
AbstractSingletonProxyFactoryFactory нервно курит ‎- Cat-coloured object
139 коммитов, почти год, и это ещё покрытие детское, скользкие случаи наверняка повалятся. ‎- Cat-coloured object
<смешанные чувства> особенно в районе def tail[E, Q[_] : DequeLike](q: Cat[E, Q]): Cat[E, Q] = { ‎- псы в рапиде
а у меня-то! Такие уж в скале косты... тайпклассы, я хотел сказать, они называют это тайпклассами. ‎- Cat-coloured object
С другой стороны, StandardML, если верить Окасаки, складывает лапки ещё на case class Cons1[E](x: E, rest: Seq[(E, E)]) extends Seq[E] ‎- Cat-coloured object
На самом деле это-то ад, но это ад неинтересный. Интересный ад в выборе между методами на объекте и методами на валяющемся рядом (и обычно таки имплиситно подсунутом, как тут) тайпклассе. Стандартная библиотека эти два подхода женит, но я до сих пор не понял, как именно это ей удаётся. ‎- Cat-coloured object