:- module try_test. :- interface. :- import_module io. :- pred p(int::out, io::di, io::uo) is cc_multi. :- implementation. p(Res, !IO) :- q(X, !IO), (try [io(!IO)] ( q(X, !IO) ) then Res = X catch E -> Res = E ). :- pred q(int::out, io::di, io::uo) is cc_multi. q(2, !IO).