依赖签名专业化

时间:2017-07-23 01:53:43

标签: sml smlnj mlton

我可以使用该类型之前和签名中的类型来专门化签名中的类型吗?这是一个例子:

signature A = sig 
  type t
  type s
end

我可以通过以下方式专门化A吗?

signature B = A where type s = t list

SML / NJ和Mlton都抱怨t未绑定。

1 个答案:

答案 0 :(得分:2)

不,这确实无法直接完成。原因相当具有技术性,在一般情况下,将一个表现良好的语义归因于这种操作并不容易。

最接近的是引入另一种辅助类型:

signature B =
sig
  type t'
  include A with type t = t' with type s = t' list
end