OCaml中具有类似字段的记录

pbp*_*pbp 3 ocaml types class record

这个答案中,建议的将元信息"附加"到类型的方法是使用记录:

type _foo = ... 
and foo = {n:_foo; m:meta}
Run Code Online (Sandbox Code Playgroud)

但是,如果我有多种类型,我想用元信息包装怎么办?显然,记录类型中的所有字段名称必须具有不同的名称,并且写入:

type _foo = ... 
and foo = {n:_foo; m:meta}
...
type _fooX = ... 
and fooX = {nX:_fooX; mX:meta}
Run Code Online (Sandbox Code Playgroud)

似乎多余:/.类是解决这个问题的唯一方法吗?如果可能的话,我想避免处理课程.

Jef*_*eld 5

您可以使用参数化类型.

type 'a wrapped = { base: 'a; extra: meta }
Run Code Online (Sandbox Code Playgroud)