Я хотел бы определить следующую черту с абстрактным типом:Как ограничить тип как абстрактный тип члена в черту?
trait C {
type M[_]
def doSomething(m: M[T]): M[T] = ???
def somethingElse: M[T] = ???
}
Я хотел бы, чтобы ограничить мой высокий тип M
иметь scalaz.Monad[M]
экземпляр. Одним из решений было бы изменить мой код:
abstract class C[M: Monad] { ... }
, но я хотел бы, чтобы M был абстрактным членом. Возможно ли это в Scala?
Это единственный вариант. Мне бы хотелось избежать переопределения –