anchor.diff:    add_row(Nodes, Channel, User, Text, Node, LastRow, RowsBack, now()).
   
   add_row(Nodes, Channel, User, Text, Node, LastRow, RowsBack, Now) ->
  -  Transaction=fun() ->
  +  Transaction = fun() ->
       lists:foreach(fun(I) ->
         case mnesia:read({ rows, { last, Channel, I } }) of
           [ { _, _, L } ] ->
  
positive.code: % Return the last N rows after the specified row ID on a given channel.
  
  fetch_rows(Node, Channel, User, LastRow, RowsBack) ->
    Transaction=fun() ->
      case mnesia:read({ rows, users }) of
        [{ _, _, CurrentUserList }] ->
          mnesia:write({ rows, { users, Channel }, lists:keystore(User, 1, CurrentUserList, { User, now() }) })
  
negative.code: % - TCP port for the web server.
  % - Node ID number.
  % - Number of nodes in the cluster.
  % - Number of rows to cache before the archiver writes them to disk.
  % Initialises Mnesia and starts the Misultin web server.
  
  start([ Port, Node, Nodes, CachedRows ]) ->
    process_flag(trap_exit, true),
  
    error_logger:info_msg("Starting node: ~s (total nodes: ~s)~n", [ Node, Nodes ]),
    error_logger:info_msg("Caching ~s rows~n", [ CachedRows ]),
    error_logger:info_msg("Initialising Mnesia~n"),
  
    mnesia:start(),
  