anchor.diff:  guard({op,1,Op,One})            -> {Op,guard(One)};           % binary op
   guard(Guard)                    -> arg(Guard).                % variable
   
  -arg({cons,_,_,_})   -> exit({syntax_error,no_lists_in_args});
  +arg({cons,_,_,_})   -> exit({syntax_error,"lists not allowed in arg list"});
   arg({tuple,1,Args}) -> {tuple,[arg(A)||A<-Args]};
   arg({T,1,Var})      -> {T,Var}.
   
  
positive.code:   [ac_fun(A)|| A <- As].
  
  ac_fun("stack") -> {message,{process_dump}};
  ac_fun("return")-> {return_trace}.
  
  compile_guards(Gs,Vars) ->
    {Vars,O} = lists:foldr(fun gd_fun/2,{Vars,[]},Gs),
  
negative.code: assert(Fun,Tag) ->
    try Fun()
    catch 
      _:{_,{error,{1,erl_parse,L}}}-> exit({{syntax_error,lists:flatten(L)},Tag});
      _:R                          -> exit({R,Tag})
    end.
  
  
  