anchor.diff:    fun() ->
         % strip off the actions, if any
         {St,Action} =
  -        case re:run(Str,"^(.+)->\\s*([a-z;]+)\\s*\$",[{capture,[1,2],list}]) of
  +        case re:run(Str,"^(.+)->\\s*([a-z;,]+)\\s*\$",[{capture,[1,2],list}]) of
             {match,[Z,A]} -> {Z,A};
             nomatch       -> {Str,""}
           end,
  
positive.code:      ,{"erlang:_({A}) when hd(A)=={}",
         {{erlang,'_','_'},[{[{'$1'}],[{'==',{hd,'$1'},{{}}}],[]}],
          [local]}}
       ,{"lists:X([])",
         {{lists,'_','_'},[{[[]],[],[]}],
          [global]}}
       ,{"lists:X(A) when is_list(A)",
         {{lists,'_','_'},[{['$1'],[{is_list,'$1'}],[]}],
  
negative.code: 
  actions_fun(Str) ->
    fun() ->
        string:tokens(Str,";,")
    end.
  
  assert(Fun,Tag) ->
  