Haskell 与签名一起使用的类型关键字

Haskell type keyword used with signature

the code from Scrap Your Zippers中,下面这行是什么意思:

type Move a = Zipper a -> Maybe (Zipper a)

Type 是类型的同义词并使用相同的数据构造函数,因此这没有意义。这里是怎么用的?

正如您所说,

type 允许我们创建同义词。这意味着我们可以制作长而复杂类型的缩短版本。这是 String 基本类型的定义。是的,它是这样定义的:

type String = [Char]

这允许我们在编写类型时使类型更具可读性;每个人都更喜欢 String 而不是 [Char]

您还可以像 data 关键字那样使用类型参数。以下是一些示例:

type Predicate t = t -> Bool
type Transform t = t -> t
type RightFoldSignature a b = (a -> b -> b) -> b -> [a] -> b
type TwoTuple a b = (a,b)
type ThreeTuple a b c = (a,b,c)

...等等。因此,您在那里的声明并没有什么特别奇怪的地方 - 作者正在制作一个类型同义词以使事情更容易编写和更清晰阅读,大概用于作者想要创建的函数类型。

学你一个Haskell有它是own little section on this, a list of the different declarations can be found here, and an article here