And*_*ris 5 sml include signature
一个人为的例子:
signature A =
sig
type t
val x: t
end
signature B =
sig
type t
val y: t
end
signature C = sig include A B end
Run Code Online (Sandbox Code Playgroud)
显然,这将导致中的type t两次投诉C。但是有什么方法可以表达我希望两者t相等,最后是:
signature C =
sig
type t
val x: t
val y: t
end
Run Code Online (Sandbox Code Playgroud)
我尝试了各种愚蠢的语法,例如include B where type t = A.t,这并不奇怪。有什么我忘记尝试的东西吗?
另外,我知道可以通过检查语言的语法来发现(或缺少)任何明显的答案,但是我在互联网上的任何地方都找不到完整的语法。
(FWIW,我尝试这样做的实际原因是Haskell风格的monad之类的东西,其中a MonadPlus只是a Monad和an 的混合体Alternative;此刻我只是重复ALTERNATIVEin 的内容MONAD_PLUS,这对我的影响不那么大比理想的。)