如何在Standard-ML中指定数据类型中的类型约束?

And*_*dry 3 functional-programming sml

考虑Standard-ML中的这种数据类型:

datatype 't options = Null
                   | Some of 't
Run Code Online (Sandbox Code Playgroud)

我还有其他数据类型:

datatype option = Apple | Orange | Melon
Run Code Online (Sandbox Code Playgroud)

我想指定datatype options只应接受datatype option作为其输入类型't.这该怎么做?

Gil*_*il' 5

SML中没有这样的功能,也没有我听说过的任何SML方言的扩展.

您可以将更专业的版本定义为类型别名:

type option_options = option options
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以在模块的签名中创建该类型的抽象,但这将隐藏构造函数.