奇怪的scala类型“=>;:[uuquot;

奇怪的scala类型“=>;:[uuquot;,scala,Scala,我在scalaz中看到了“A=>:A”或“=>:[A,A]”类型签名 我认为这是某种scala嵌入式类型,但这是什么?这里没有特别的魔力=>:是类型的名称,并且是参数化类型A=>:A与=>:[A,A]相同,只是前者是用中缀符号书写的。如果您是从Scala开始的,那么scalaz可能不是最好的起点。在trait类别中指定,它需要一个更高级的类型构造函数,需要键入参数并将其命名为=>:。无论何时创建类别,都必须传入该类型构造函数 您可以看到这样一个示例: 这里,类型构造函数==作为类别的参数给出,

我在scalaz中看到了
“A=>:A”或“=>:[A,A]”
类型签名


我认为这是某种scala嵌入式类型,但这是什么?

这里没有特别的魔力
=>:
是类型的名称,并且是参数化类型
A=>:A
=>:[A,A]
相同,只是前者是用中缀符号书写的。如果您是从Scala开始的,那么scalaz可能不是最好的起点。

在trait
类别中指定,它需要一个更高级的类型构造函数,需要键入参数并将其命名为
=>:
。无论何时创建
类别
,都必须传入该类型构造函数

您可以看到这样一个示例:

这里,类型构造函数
==
作为
类别
的参数给出,其中
==
定义为:


在category trait中,您将传入的内容命名为
=>:
,以使用它。

谢谢!为了好玩,我刚开始学习scalaz,我想是时候开始学习scalaz了,但这对我来说太早了。。。
implicit val leibniz: Category[===] = new Category[===] {
    def id[A]: (A === A) = refl[A]
type ===[A,B] = Leibniz[⊥, ⊤, A, B]