anchor.diff:  
   -record(expand, {module=[],                     %Module name
                    exports=[],                    %Exports
  -                 imports=[],                    %Imports
                    attributes=[],                 %Attributes
                    callbacks=[],                  %Callbacks
                    optional_callbacks=[] :: [fa()],  %Optional callbacks
  -                 defined,			%Defined functions (gb_set)
                    vcount=0,                      %Variable counter
                    func=[],                       %Current function
                    arity=[],                      %Arity for current function
  -                 fcount=0			%Local fun count
  +                 fcount=0,			%Local fun count
  +		 ctype				%Call type map
                   }).
   
   %% module(Forms, CompileOptions)
   %%      {ModuleName,Exports,TransformedForms,CompileOptions'}
  -%%  Expand the forms in one module. N.B.: the lists of predefined
  -%%  exports and imports are really ordsets!
  +%%  Expand the forms in one module.
  +%%
   %%  CompileOptions is augmented with options from -compile attributes.
   
   module(Fs0, Opts0) ->
  
positive.code: is_fa_list([]) -> true;
  is_fa_list(_) -> false.
  
  module_predef_funcs(St) ->
      {Mpf1,St1}=module_predef_func_beh_info(St),
      {Mpf2,St2}=module_predef_funcs_mod_info(St1),
      Mpf = [erl_parse:new_anno(F) || F <- Mpf1++Mpf2],
      {Mpf,St2}.
  
  module_predef_func_beh_info(#expand{callbacks=[]}=St) ->
      {[], St};
  module_predef_func_beh_info(#expand{callbacks=Callbacks,
                                      optional_callbacks=OptionalCallbacks,
                                      defined=Defined,
  				    exports=Exports}=St) ->
      PreDef=[{behaviour_info,1}],
      PreExp=PreDef,
      {[gen_beh_info(Callbacks, OptionalCallbacks)],
       St#expand{defined=gb_sets:union(gb_sets:from_list(PreDef), Defined),
  	       exports=ordsets:union(ordsets:from_list(PreExp), Exports)}}.
  
  gen_beh_info(Callbacks, OptionalCallbacks) ->
      List = make_list(Callbacks),
  
negative.code: compiler_options(Forms) ->
      lists:flatten([C || {attribute,_,compile,C} <- Forms]).
      
  %% defined_function(Forms, Predef) -> Functions.
  %%  Add function to defined if form is a function.
  
  defined_functions(Forms, Predef) ->
      Fs = foldl(fun({function,_,N,A,_Cs}, Acc) -> [{N,A}|Acc];
                    (_, Acc) -> Acc
                 end, Predef, Forms),
      ordsets:from_list(Fs).
  
  module_attrs(#expand{attributes=Attributes}=St) ->
      Attrs = [{attribute,Line,Name,Val} || {Name,Line,Val} <- Attributes],
  