我想用新的 Scala Dotty 编译器做这样的事情:
trait Monad[M[A]] (underlyingValue:A) {
def bind[A, B](f: A => M[B]): M[B]
}
或者至少
class Monad[M[A]] (underlyingValue:A) {
def bind[A, B](f: A => M[B]): M[B]
}
但编译器抱怨 Not found: type A
有没有办法访问类型参数的类型参数?还是具有相同最终结果但做不同的事情?
我知道你可以在这里创建一个 Monad:https ://dotty.epfl.ch/docs/reference/contextual/type-classes.html 但是拥有一个 Monad 类可以让我在同一个地方声明一个 Monad 类它是定义的,并且在我的风格上也更有意义。
有没有办法做到这一点?