anchor.diff:           update_app_fun/2,
            update_app_args/2]).
   
  --export([parse_annotate_expr/1, 
  -         parse_annotate_expr/2,
  -         extended_parse_annotate_expr/1,
  -         extended_parse_annotate_expr/2,
  -         subst/2, 
  +-export([subst/2, 
            collect/3,
            match/2,
            match/3,
            search_and_transform/3,
            search_and_collect/3,
            meta_apply_templates/1]).
  -       
  +                
   -compile(export_all).
   
   -include("../include/wrangler.hrl").
  
positive.code:    
  is_meta_atom_name(AtomName) ->
      AtomName1 = atom_to_list(AtomName),
      is_fun_name(AtomName1) andalso
      lists:prefix("@", lists:reverse(AtomName1)).
  
  
  
negative.code: %%@spec is_var_name(string())-> boolean()
  -spec(is_var_name(Name:: string())-> boolean()).
  is_var_name(Name) ->
      wrangler_misc:is_var_name(Name).
     
  
  %%@doc Returns `true' if a string is lexically a legal function name,
  %%      otherwise `false'.
  %%@spec is_fun_name(string())-> boolean()
  -spec(is_fun_name(string())-> boolean()).
  is_fun_name(Name) ->
      wrangler_misc:is_fun_name(Name).
    
  
  %% =====================================================================
  %%@doc Returns all the variables, including both variable name and 
  