依赖签名专业化

Dependent signature specialization

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

signature A = sig 
  type t
  type s
end

我可以通过以下专业 A 吗?

signature B = A where type s = t list

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

不,那确实不能直接完成。原因很技术性,在一般情况下,很难将行为良好的语义归因于这样的操作。

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

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