所以我一直在将Core.Univ视为构建异构数组的一种方式。
假设我
let int_type = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let int_type' = Core.Type_equal.Id.create ~name:"" Sexplib.Conv.sexp_of_int;;
let i = Core_kernel.Univ.create int_type 5;;
let j = Core_kernel.Univ.create int_type' 5;;
当我这样做时
Core_kernel.Univ.match_ i int_type'
它与预期不符,因为Type_equal.Id
的文档说两次调用具有完全相同参数的create
将导致两个不同的标识符。
这是否意味着API用户有责任确保每种类型只存在一个Type_equal.Id
个实例?