anchor.diff:  atomic(Err, Fail) ->
       Fail(Err).
   
  +%% Is schematool installed? Can be used outside transactions.
  +%%
  +%% NB: wait_for_mnesia is usually better.
  +
  +is_installed() ->
  +    ?txn_or_err(
  +       begin
  +	   Xs = mnesia:table_info(schematool_info, attributes),
  +	   if
  +	       is_list(Xs) ->
  +		   true;
  +	       true ->
  +		   fase
  +	   end
  +       end,
  +       fun(Err) ->
  +	       false
  +       end).
  +
   %% Used inside txn to check that schematool has been installed.
  -%% Aborts if schematool_info does not exist
  +%% ABORTS if schematool_info does not exist. Return value is
  +%% something if schematool_info exists.
   %%
   %% NOTE: if you've done wait_for_mnesia() before, then this will
   %%  always succeed. Seldom useful.
  
positive.code: 	      Opts = schematool_options:without(Opts0),
  	      io:format("Create table ~p ~p -> ~p\n",
  			[Tab, Opts,
  			 mnesia:create_table(Tab, Opts)]);
  	 (_Other) ->
  	      %% Skip other options
  	      ok
  
negative.code: 	    %% is needed
  	    start_mnesia_all_nodes(Nodes),
  	    create_schematool_tables(Nodes),
  	    ok
      end.
  
  %% Make sure all specified nodes are connected to this one.
  