OCaml:如何在不诉诸变体的情况下限制允许的类型

时间:2015-04-01 20:44:56

标签: ocaml

我正在编写一个矢量和矩阵模块,它构建在OCaml提供的默认Array模块之上。我正在做的是添加其他功能,如通过索引获取切片等。我为这两个模块制作了一个定制的漂亮打印机。

我想阻止我可能有'a Vec.t Vec.t'a Mat.t Mat.t的情况,因为漂亮的打印机会尝试递归打印结构。到目前为止,我通过为我用elt仿函数实例化的两个模块引入一个额外的类型CONSTRAINTS来限制这一点。

我发现这有点麻烦,所以我想知道是否还有其他方法可以做到这一点?

编辑:我希望能够拥有type 'a t但限制'a不是'a t本身的实例。

0 个答案:

没有答案