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