术语:Haskell 中 "type expression" 的准确定义是什么,如 Thompson 的书中所用?

Terminology: what is the precise definition of "type expression" in Haskell, as used in Thompson's book?

Thompson 的“Haskell - 函数式编程技巧”一书中使用的术语“类型表达式”的准确定义是什么?好像书上没有定义这个词

例如,它未在索引中列出。另外,我试图在书中搜索明确明确的定义,但一无所获。

相关问题:type variabletype expression吗?

让我们考虑以下类型(表达式?):

a->b

现在,如果我用 c 替换 a,那么 c->b 会成为 a->b 的实例吗?

术语“类型表达式”用于第 314 页(本书第三版)的示例:

As sets of types, we look for the intersection of the sets given by (a, [Char] ) and (Int, [b] ) . How can we work out a description of this intersection? Before we do this, we revise and introduce some terminology.

Recall that an instance of a type is given by replacing a type variable or variables by type expressions. A type expression is a common instance of two type expressions if it is an instance of each expression.

The most general common instance of two expressions is a common instance mgci with the property that every other common instance is an instance of mgci.

Now we can describe the intersection of the sets given by two type expressions. It is called the unification of the two, which is the most general common instance of the two type expressions.

如果您想将类型视为 "things",那么可以谈谈我们用来描述它们的词,像 IntCont (r -> a) (Maybe q) 这样的词作为一种语言来描述那些事。类似的区别在于数字 3 和 Haskell 代码片段 3.

3 是表示数字 3 的(值)表达式一样,Integer 是表示整数类型的类型表达式。