Имя ArrayList предполагает, что вы должны добавить IndexedSeq . На самом деле вы, вероятно, хотите получить все вкусности, которые предоставляет IndexedSeqLike , т.е.
class ArrayList[A] extends IndexedSeq[A] with IndexedSeqLike[A, ArrayList[A]]
Это дает вам конкретные реализации head , tail , take , drop , filter и т. Д. Если вы также хотите, чтобы map , flatMap и т. Д. (Все методы, которые принимают параметр типа) работали должным образом (верните ArrayList [A] ) Вы также должны предоставить экземпляр класса типа для CanBuildFrom в объекте-компаньоне, например,
def cbf[A, B] = new CanBuildFrom[ArrayList[A], B, ArrayList[B]] {
// TODO Implementation!
}