anchor.diff:      %% Note that we extract the results of argument expessions here; the
       %% expressions could still be sequences with side effects.
       Vs = [concrete(result(A)) || A <- As],
  -    case catch {ok, apply(atom_val(M), atom_val(F), Vs)} of
  -	{ok, V} ->
  +    try apply(atom_val(M), atom_val(F), Vs) of
  +	V ->
   	    %% Evaluation completed normally - try to turn the result
   	    %% back into a syntax tree (representing a literal).
   	    case is_literal_term(V) of
  
positive.code: 
  copy_inline(R, Opnd, E, Ctxt, Env, S) ->
      S1 = st__mark_outer_pending(Opnd#opnd.loc, S),
      case catch {ok, copy_inline_1(R, E, Ctxt, Env, S1)} of
          {ok, {E1, S2}} ->
              {E1, st__clear_outer_pending(Opnd#opnd.loc, S2)};
          {'EXIT', X} ->
              exit(X);
          X ->
   	    %% If we use destructive update for the `outer-pending'
   	    %% flag, we must make sure to clear it upon a nonlocal
   	    %% return.
  
negative.code:   	    %% must make sure to clear the flags of any nested
    	    %% app-contexts upon aborting; see `inline' for details.
   	    S4 = reset_nested_apps(Ctxt, S3),    % for effect
              residualize_var(R, S4)
      end.
  
  reset_nested_apps(#app{ctxt = Ctxt, loc = L}, S) ->
  