anchor.diff:  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%% ad-hoc unit testing
  +
  +unit_loud() ->
  +  lists:foreach(fun(R)->io:fwrite("~p~n",[R])end,unit()).
   
   unit_quiet() ->
     [R||R<-unit(),is_tuple(R)].
  
positive.code: -author('Mats Cronqvist').
  
  -export([transform/1]).
  -export([unit/0,unit_quiet/0]).
  
  -define(is_string(Str),
          (Str=="" orelse (9=<hd(Str) andalso hd(Str)=<255))).
  
negative.code:       end
    end.
  
  %% deal with disjunct guards by replacing ';' with 'orelse'
  disjunct_guard(Toks) ->
    [case T of {';',1} -> {'orelse',1}; _ -> T end||T<-Toks].
  
  guard({call,1,{atom,1,G},Args}) -> {G,[arg(A) || A<-Args]};   % function
  