Types 关于标准ML的签名匹配

Types 关于标准ML的签名匹配,types,matching,sml,signature,Types,Matching,Sml,Signature,据我所知,如果候选者强于目标,则候选者签名与目标签名匹配。然后,如果结构some_结构实现签名候选,它也实现签名目标 但根据Robert Haper的第155页(11.02.11的1.2版): 火柴 signature MERGEABLE_INT_QUEUE = sig include QUEUE val merge : int queue * int queue -> int queue end 而在我看来,它应该是MERGEABLE\u INT\u QUEUE

据我所知,如果
候选者
强于
目标
,则
候选者
签名与
目标
签名匹配。然后,如果结构
some_结构
实现签名
候选
,它也实现签名
目标

但根据Robert Haper的第155页(11.02.11的1.2版):

火柴

signature MERGEABLE_INT_QUEUE =
  sig
    include QUEUE
    val merge : int queue * int queue -> int queue
  end
而在我看来,它应该是
MERGEABLE\u INT\u QUEUE
匹配
MERGEABLE\u QUEUE
。因为如果
某些结构实现了
可合并的内部队列
,那么它也实现了
可合并的内部队列


我的理解有什么问题?

如果一个结构实现了
可合并_队列
,它提供了一个函数,该函数接受任意类型的一对队列(只要两个队列的类型相同),并生成一个新队列。特别是,它可以使用两个
int-queue
并生成另一个
int-queue
(因此它实现了
MERGEABLE\u-int\u-queue
),但它也可以使用两个
bool-queue
并生成一个合并的
bool-queue
。对于任何类型的
a'
,实现
MERGEABLE\u QUEUE
的结构也实现了假设的
MERGEABLE\u'\u QUEUE


另一种说法是不正确的。实现
MERGEABLE\u INT\u QUEUE
的结构只能合并两个
INT队列
,而不能合并任意类型的任何两个队列。

如果结构实现
MERGEABLE\u QUEUE
,则它提供一个函数,该函数可接受任意类型的一对队列(只要两个队列的类型彼此相同)并生成一个新队列。特别是,它可以使用两个
int-queue
并生成另一个
int-queue
(因此它实现了
MERGEABLE\u-int\u-queue
),但它也可以使用两个
bool-queue
并生成一个合并的
bool-queue
。对于任何类型的
a'
,实现
MERGEABLE\u QUEUE
的结构也实现了假设的
MERGEABLE\u'\u QUEUE


另一种说法是不正确的。实现
MERGEABLE\u INT\u QUEUE
的结构只能合并两个
INT队列
,而不能合并任意类型的任何两个队列。

如果结构实现
MERGEABLE\u QUEUE
,则它提供一个函数,该函数可接受任意类型的一对队列(只要两个队列的类型彼此相同)并生成一个新队列。特别是,它可以使用两个
int-queue
并生成另一个
int-queue
(因此它实现了
MERGEABLE\u-int\u-queue
),但它也可以使用两个
bool-queue
并生成一个合并的
bool-queue
。对于任何类型的
a'
,实现
MERGEABLE\u QUEUE
的结构也实现了假设的
MERGEABLE\u'\u QUEUE


另一种说法是不正确的。实现
MERGEABLE\u INT\u QUEUE
的结构只能合并两个
INT队列
,而不能合并任意类型的任何两个队列。

如果结构实现
MERGEABLE\u QUEUE
,则它提供一个函数,该函数可接受任意类型的一对队列(只要两个队列的类型彼此相同)并生成一个新队列。特别是,它可以使用两个
int-queue
并生成另一个
int-queue
(因此它实现了
MERGEABLE\u-int\u-queue
),但它也可以使用两个
bool-queue
并生成一个合并的
bool-queue
。对于任何类型的
a'
,实现
MERGEABLE\u QUEUE
的结构也实现了假设的
MERGEABLE\u'\u QUEUE

另一种说法是不正确的。实现
MERGEABLE\u INT\u QUEUE
的结构只能合并两个
INT队列
,不能合并任意类型的任何两个队列

signature MERGEABLE_INT_QUEUE =
  sig
    include QUEUE
    val merge : int queue * int queue -> int queue
  end