anchor.diff:  %% Also assistance with running the table transforms
   %% as required.
   %%
  +%% This seems nice:
  +%%   ?MODULE:table(Tab, Xforms, Old, New)
  +%%
   %% UNFINISHED
  -%% - specify transforms
  -%% - perform transforms
   %% - when should transforms be done during a
   %%   migration? also, do they run on all nodes?
   
   -module(schematool_transform).
   -export(
      [
  +    table/3,
  +    table/4,
       rec_kv/2,
       kv_rec/2,
       rec_def_of/1
  
positive.code: 	  || {table, Tab, Opts} <- Schema,
  	     {transform, Tab1, Fun} <- Opts, Tab1 == Tab ].
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% UNFINISHED
  %% - more flexibility in how to transform needed
  %%   * spec per attribute transformation
  %%   * spec ...
  
  transform_record(Fun, OldRecDef, OldRec, NewRecDef) ->
      KVs = rec_kv(OldRecDef, OldRec),
      NewKVs = Fun(KVs),
      NewRec = kv_rec(NewRecDef, NewKVs),
      NewRec.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% One of the problems of transforming the records of a table
  
negative.code: %%
  %% See rec_def_of/1 for how to extract these from
  %% schema, unless available from elsewhere
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Attribute transforms:
  %%   fun(Old_KVs) -> Value
  %% implicitly for {Attr, Default}:
  %%   {Attr, fun(Old_KVs) -> proplists:get_value(Attr, Old_KVs, Default) end}
  %%
  %% This handles cases like "sum = field1+field2" though with an
  %% unwieldy syntax.
  %%
  %% - special case: apply function to old attr value
  %% - do we always want to use fun:s here?
  
  %% Record transformers: multiple forms, probably
  %% - old-rec => interim
  %% - interim => interim
  %% - interim => new-rec
  
  %% Ordering of attribute and record transformers?
  %% - defined by user?
  %% - implicit?
  %%
  %% Special cases:
  %% - permutation of attributes
  %% - attrs deleted
  %% - attrs added (with implicit)
  %%
  %% Would be nice to be able to COMPILE these, but maybe it's OK.
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% Extract the 'transform' keys and use them to build
  