* -> *
类型。例如:Functor类型类。众所周知,在Haskell中,这个类型类及其数学(即范畴论)对应关系是一致的。推广一下:问题1: Haskell中每个成员为
* -> *
类型的类型类是否都对应于某些范畴之间的函数?现在考虑一个类型类,其成员为
*
类型。例如,可以想象一个与组(category of Groups)对应的类型类Group(严格来说,Group将是Hask的子范畴,其对象包含所有的Haskell类型)。推广一下:问题2: Haskell中每个成员为
*
类型的类型类是否都对应于某些范畴(技术上是:Hask的某个子范畴)?从这里,我们可以提出下一个通用问题:
问题3: 类型等于或高于
* -> * -> *
的类型类是否对应于某些范畴论概念?而实际上,这整个问题可以概括如下:
通用问题:每个Haskell类型类是否都对应于某些范畴论概念?
编辑:至少可以说,由于每个类型类都包含一些Haskell类型集合作为其成员,因此可以将每个类型类视为
Hask
的某个子范畴(在.
下封闭并使用id
)。
Foldable
对应于范畴论的哪个概念? - Zeta(Foldable f, Functor f) => f
。但是话说回来,没有一个Foldable
不同时也是Functor
(至少我现在想不到)。 - ZetaProxy
和Flip (Kleisli IO) Bool
,那么这很可能没有太多数学意义。 - leftaroundaboutHask
的某些(奇怪的)子范畴而轻松地发挥作用呢? - George*
,其态射是* -> *
类型构造器?是的,我想这也是显然的。但那真的不是很有趣。 - leftaroundabout