anchor.diff:  	      %% Handled by alter_storage_type
   	      Actions;
   	 ({ram_copies, Ns}, Actions) ->
  -	      %% Handled elsewhere
  +	      %% Handled by alter_storage_type
   	      Actions;
   	 ({disc_only_copies, Ns}, Actions) ->
   	      %% Handled by alter_storage_type
  
positive.code: %%   * should we specify dependences and sort?
  
  alter_table({Tab, Old_opts, New_opts}=TabDiff) ->
      Acts0 = alter_table_options(TabDiff),
      Acts1 = alter_table_layout(Tab, Old_opts, New_opts, []),
      Acts2 = alter_storage_type(Tab, Old_opts, New_opts, []),
      Acts3 = alter_indexes(Tab, Old_opts, New_opts),
      lists:flatten(
        [Acts0, Acts1, Acts2, Acts3]
       ).
  
  %% Predicate: test if migration will require copying the table. This
  %% test affects the migration strategy chosen by schematool.
  
negative.code: %%   * some options can't be changed
  %% - perform change options in appropriate order
  %%
  %% Note:
  %% - if table size = 0, we can skip some actions
  %%   * e.g., copying not needed
  %% - if table size is small, we can do different
  %%   strategy than if table is large
  %%   * small table can migrate via ram_copies
  %%
  %% UNFINISHED
  %% - what is the correct order of actions?
  %%   e.g., change table opts before or after layout, etc
  