Просто добавьте привязку контекста ClassManifest к объявлению вашего метода:
def reverse[T : ClassManifest](a: Array[T]): Array[T] = ...
Чтобы создать массив, конкретный тип массива должен быть известен во время компиляции.Этот тип предоставляется компилятором через неявный параметр ClassManifest.То есть сигнатура конструктора Array на самом деле
Array[T](size: Int)(implicit m: ClassManifest[T]): Array[T]
Чтобы предоставить этот параметр, в области видимости должен быть ClassManifest, когда вызывается конструктор Array.Поэтому ваш обратный метод должен также принимать неявный параметр ClassManifest:
def reverse[T](a: Array[T])(implicit m: ClassManifest[T]): Array[T] = ...
// or equivalently
def reverse[T : ClassManifest](a: Array[T]): Array[T] = ...
Последняя, более простая запись называется привязкой к контексту .