Syntax OCaml中多态变量类型的语法

Syntax OCaml中多态变量类型的语法,syntax,ocaml,Syntax,Ocaml,我正在查看一个OCaml文件,我怀疑它应该是一个多态变量类型(我不知道OCaml,所以可能非常奇怪): 但是,根据OCaml的语法 polymorphic-variant-type ::= [ [ | ] tag-spec { | tag-spec } ] ∣ [> [ tag-spec ] { | tag-spec } ] ∣ [< [ | ] tag-spec-full { | tag-spec-full } [ &g

我正在查看一个OCaml文件,我怀疑它应该是一个多态变量类型(我不知道OCaml,所以可能非常奇怪):

但是,根据OCaml的语法

polymorphic-variant-type    
    ::=  [ [ | ] tag-spec  { | tag-spec } ]  
    ∣    [> [ tag-spec ]  { | tag-spec } ]  
    ∣    [< [ | ] tag-spec-full  { | tag-spec-full }  [ > { `tag-name }+ ] ] 
多态变体类型 ::=[[|]标记规范{|标记规范}] ∣ [>[tag spec]{| tag spec}] ∣ [<[|]标记规范完整{|标记规范完整}[>{`tag name}+] 在
[]
内部,如果不使用反勾号,则不能使用大写标识符。
标记规范
不能是以大写开头的任何内容


我正在查看正确的语法规则,还是该文件中有其他内容?

在原始OCaml具体语法中,必须有一个反勾号。看起来您的示例使用的是OCaml语法

polymorphic-variant-type    
    ::=  [ [ | ] tag-spec  { | tag-spec } ]  
    ∣    [> [ tag-spec ]  { | tag-spec } ]  
    ∣    [< [ | ] tag-spec-full  { | tag-spec-full }  [ > { `tag-name }+ ] ]