Syntax Ocaml语法错误

Syntax Ocaml语法错误,syntax,ocaml,Syntax,Ocaml,这个代码怎么了?我想不出来: let parent (rules : grammar) (symbol1 : string) (symbol2 : string) : (SymbolSet.t) = try SymbolSet.singleton (getParent [symbol1; symbol2] rules) with Not_found -> SymbolSet.singleton "";; let fundementalRule (set1

这个代码怎么了?我想不出来:

let parent  (rules : grammar) (symbol1 : string) (symbol2 : string) : (SymbolSet.t) = 
  try
    SymbolSet.singleton (getParent [symbol1; symbol2] rules)
  with
      Not_found -> SymbolSet.singleton "";;

let fundementalRule (set1 : SymbolSet) (set2 : SymbolSet) (rules : grammar) : (SymbolSet) =
  allpairs (parent rules) set1 set2;;    

  Characters 20-21:
  let fundementalRule (set1 : SymbolSet) (set2 : SymbolSet) (rules : grammar) : (SymbolSet) =
                      ^
Syntax error: ')' expected, the highlighted '(' might be unmatched
括号是匹配的。那么是什么导致了这个问题呢

这很好:

let fundementalRule set1 set2 rules =
  allpairs (parent rules) set1 set2;;

上面的线是什么?我敢打赌,在这段代码之前的某个地方有一个不匹配的paren

更新 我的直觉告诉我错误就在这里:

SymbolSet.singleton (getParent [symbol1; symbol2] rules)
我没有任何方法来测试此代码,但在尝试运行此代码时,我确实遇到了一个错误:

# let foo arg1 listarg arg2 = ();;
val foo : 'a -> 'b -> 'c -> unit = <fun>
# foo (1 [1; 2] 2);;
Error: This expression is not a function; it cannot be applied

可能类型应该是
SymbolSet.t
而不是
SymbolSet

SymbolSet
本身不是有效的类型表达式;来自Ocaml编译器的消息不正确,这是因为它使用ocamlyacc(和yacc)的“错误”机制来猜测错误可能是什么。
SymbolSet.singleton getParent [symbol1; symbol2] rules