anchor.diff:      catch _:_R -> ret_err(?line(Expr), "bad attribute")
       end.
   
  -package_segments(Name) ->
  -    package_segments(Name, [], []).
  -
  -package_segments({record_field, _, F1, F2}, Fs, As) ->
  -    package_segments(F1, [F2 | Fs], As);
  -package_segments({atom, _, A}, [F | Fs], As) ->
  -    package_segments(F, Fs, [A | As]);
  -package_segments({atom, _, A}, [], As) ->
  -    lists:reverse([A | As]);
  -package_segments(_, _, _) ->
  -    error.
  -
   %% build_function([Clause]) -> {function,Line,Name,Arity,[Clause]}
   
   build_function(Cs) ->
  
positive.code: function function_clauses function_clause
  clause_args clause_guard clause_body
  expr expr_100 expr_150 expr_160 expr_200 expr_300 expr_400 expr_500
  expr_600 expr_700 expr_800 expr_900
  expr_max
  list tail
  list_comprehension lc_expr lc_exprs
  
negative.code: 	    {attribute,La,module,Module};
  	[{atom,_Lm,Module},ExpList] ->
  	    {attribute,La,module,{Module,var_list(ExpList)}};
  	_Other ->
  	    error_bad_decl(La, module)
      end;
  