anchor.diff:      {Ats,St3} = module_attrs(St1#expand{exports = Exports}),
       {Mfs,St4} = module_predef_funcs(St3),
       {St4#expand.module, St4#expand.exports, Ats ++ Tfs ++ Mfs,
  -     St4#expand.compile}.
  +     Opts}.
   
   compiler_options(Forms) ->
       lists:flatten([C || {attribute,_,compile,C} <- Forms]).
  
positive.code: 
      %% Build initial expand record.
      St0 = #expand{exports=PreExp,
                    compile=Opts,
                    defined=PreExp,
                    bitdefault = erl_bits:system_bitdefault(),
                    bittypes = erl_bits:system_bittypes()
                   },
      %% Expand the functions.
      {Tfs,St1} = forms(Fs, define_functions(Fs, St0)),
      %% Get the correct list of exported functions.
      Exports = case member(export_all, St1#expand.compile) of
                    true -> gb_sets:to_list(St1#expand.defined);
                    false -> St1#expand.exports
                end,
  
negative.code: -record(expand, {module=[],                     %Module name
                   exports=[],                    %Exports
                   imports=[],                    %Imports
                   attributes=[],                 %Attributes
                   callbacks=[],                  %Callbacks
                   optional_callbacks=[] :: [fa()],  %Optional callbacks
  