anchor.diff:                      transaction(Fun, R);
   
                   _ : Reason ->
  +                    error_logger:info_msg("function threw non-lock error - ~p", [Reason]),
                       ok = txn_abort(),
                       {error, {transaction_failed, Reason}}
               end;
  
positive.code:             receive
                  ok -> ok;
                  {error, no_txn} -> ok;
                  {error, Reason} -> {error, decode_rc(Reason)}
              end;
  
          no_txn ->
  
negative.code:         ok ->
              receive
                  ok -> ok;
                  {error, Reason} -> {error, Reason}
              end;
  
          Error ->
  