anchor.diff:  %% fill in the defaults if the value is missing, ie the attribute is
   %% new.
   %%
  -%% NOTE: Currently no handling of attribute value transforms. (The
  -%%  format is unclear.)  Invoke schematool_transform:table/4 to
  -%%  perform such transforms.
  +%% UNFINISHED
  +%% - user-defined attribute transforms not done yet
   
   layout_transform(Tab, Opts0, Opts1) ->
       Rec0a = {R0, As0} = rec_info(Tab, Opts0),
  
positive.code: %% - otherwise, possibly empty options change
  %%
  %% UNFINISHED
  %% - if full_copy = full_copy, we need to emit something useful
  %%   (otherwise, just do the rest)
  %% - if layout = true, return a transform spec and insert it
  %%   into the list of others appropriately
  
  analyze_options(Tab, Old_opts, New_opts) ->
      Full_copy = full_copy_needed(Tab, Old_opts, New_opts),
      Layout = layout_transform(Tab, Old_opts, New_opts),
      case Full_copy of
  	full_copy ->
  	    %% Layout
  	    lists:flatten(
  	      [{schematool_helper, full_copy, [Tab, Old_opts, New_opts]},
  	       Layout]);
  	no_copy ->
  	    Storage = table_storage_changes(Tab, Old_opts, New_opts),
  	    Minors  = table_minor_options(Tab, Old_opts, New_opts),
  	    Indexes = table_index_changes(Tab, Old_opts, New_opts),
  	    Layout ++ Storage ++ Minors ++ Indexes
      end.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
negative.code: %%% Description : 
  %%% Created :  2 May 2014 by Thomas Lindgren <>
  
  %% NOTE: use schematool.erl as the entrypoint. This is just
  %% to handle ONE CHANGED TABLE.
  %%
  %% This version relies on the following ideas:
  %% - table migration can ALWAYS be done by creating the new table
  %%   and copying the data to it (often via a temporary table)
  %% - we want to detect and optimize situations when full copying
  %%   is not needed
  %%
  %% In some cases, the "optimized" version may be slower than a
  %% full copy, due to the large amount of data shuffling implied
  %% in the specifications. 
  
  -module(schematool2).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Given a table with old and new options, generate the actions
  %% to change the table from old to new.
  %%
  %% Layout change is defined by record name and attributes (and defaults).
  %%
  