Хороший способ решить эти проблемы самостоятельно - использовать такие тактики, как idtac
(всегда успешно) и fail
(всегда неудачно) для устранения неоднозначности:
try (idtac; idtac); fail. (* FAILS *)
try ((idtac; idtac); fail). (* SUCCEEDS *)
(try (idtac; idtac)); fail. (* FAILS *)
Так что, действительно, приложениеtry
связывает крепче точки с запятой:
try (idtac; idtac); fail. is the same as (try (idtac; idtac)); fail.