Я пытаюсь определить исключение в OCaml, которое принимает пару списков кортежей в качестве аргумента. Однако эта ситуация не работает?
# exception Foo of string list * string list;;
exception Foo of string list * string list
# let bar = (["a"], ["b"; "c"; "d"]);;
val bar : string list * string list = (["a"], ["b"; "c"; "d"])
# raise(Foo bar);;
Error: The constructor Foo expects 2 argument(s),
but is applied here to 1 argument(s)
Однако, если я сделаю это, это сработает
# raise (Foo (["a"], ["b"; "c"; "d"]));;
Exception: Foo (["a"], ["b"; "c"; "d"]).
В чем дело? Спасибо!