anchor.diff:         {{a,b,1},
           [{[['$1','$2','$3']],[{'==','$2','$3'}],[]}],
           [local]}}
  -    ]).
  -
  +     ,{"x:y([C|{D}])when is_atom(C)",
  +       {{x,y,1},
  +        [{[['$1'|{'$2'}]],[{is_atom,'$1'}],[]}],
  +        [local]}}
  +    ])
  +.
   
   unit(Method,{Str,MS}) ->
     try MS=Method(Str),Str
  
positive.code: 
  cfl([],O) -> O;
  cfl([E|Es],{V0,P0}) when is_list(Es) ->
    {V,P}=ca_fun(E,{V0,[]}),
    cfl(Es,{lists:usort(V0++V),P0++P});
  cfl(E,{V0,P0}) ->
    %% non-proper list / tail match
    exit({nyi,E,V0,P0}).
  
  assert_type(Type,Val) ->
    case lists:member(Type,[integer,atom,string]) of
  
negative.code: %% msc - match spec compiler
  %% transforms a string to a call trace expression;
  %% {MFA,MatchSpec} == {{M,F,A},{Head,Cond,Body}}
  
  
  %% TODO
  %%redbug_msc:transform("a:b([$a,$b|C])").  
  %%** exception exit: {bad_type,{char,97}}
  %%
  %%redbug_msc:transform("a:b(\"ab\"++C)").
  %%** exception exit: {function_clause,
  %%                       {parse_body,"a:b(\"ab\"++C)"},
  %%                       [{redbug_msc,arg,
  %%                            [{op,1,'++',{string,1,"ab"},{var,1,'C'}}]},
  
  -module('redbug_msc').
  -author('Mats Cronqvist').
  