anchor.diff:  -export(
      [module/1,
       create_schema/1,
  +    load_schema/1,
       diff/2,
       diff_modules/2
      ]).
   
  --export([view_schemas/0]).
  +-export([view_schemas/0,
  +	 schema_keys/0,
  +	 get_schema/1
  +	]).
   
   -include("schematool.hrl").
   
  
positive.code: 		  schematool_info)
  	end)).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Diff schema1 and schema2 (old vs new). Foundation for
  %% performing upgrade/downgrade/...
  
negative.code: atomic(Err) ->
      Err.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%
  %% Load a new schema from module M. Note: this does NOT upgrade/migrate
  %% yet, and MAY be problematic (since it will show up as the latest schema).
  %%
  %% Thus, mainly intended for TESTING at this time.
  %%
  %% [schematool should mark the node with the currently active schema,
  %% with 0,1 or more schema versions loaded after it. How should those
  %% schemas be treated? They are basically tentative, but probably don't
  %% form a chain; perhaps unrelated.]
  
  load_schema(M) ->
      Schema = module(M),
      application:ensure_all_started(mnesia),
      case mnesia:transaction(
  	   fun() ->
  		   %% will abort if schematool_info does not exist
  		   mnesia:table_info(schematool_info, attributes),
  		   add_schema_info(Schema)
  	   end) of
  	{atomic, Res} ->
  	    Res;
  	Err ->
  	    io:format("Error when loading schema. "
  		      "Has the node been initialized?\n", 
  		      []),
  	    Err
      end.
  
  %% Add a new schema definition to schematool_info. Note
  %% that this is just one part of migrating the schema.
  %%
  