Определение исключений с кортежем в качестве аргумента

Я пытаюсь определить исключение в 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"]).

В чем дело? Спасибо!

5
задан axsuul 15 October 2010 в 07:41
поделиться