There are two possible way to express abstraction over types.
abstract class Buffer {
type T
val element: T
}
rather that generics, e.g.
abstract class Buffer[T] {
val element: T
}
I understand benefits in usability of using different approaches in different contexts. But I'm interest in examples where it is absolutely impossible to convert Abstract Type version to Generic version.
PS Code snippets are welcome.