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