anchor.diff:                    module(), non_neg_integer()) -> context().
   new(Annots, ModuleName, Line)
     when is_atom(ModuleName), is_integer(Line) ->
  -    #context{module_name=ModuleName,
  -             line=Line,
  -             annots=Annots,
  -             exports=[],
  +    %% We always require the local module
  +    Ctx0 = #context{module_name=ModuleName,
  +                    line=Line,
  +                    annots=Annots,
  +                    exports=sets:new(),
                attrs=[],
  -             scopes=[],
  -             definitions=ec_dictionary:new(ec_dict),
  -             alias=ec_dictionary:new(ec_dict),
  -             require=ec_dictionary:new(ec_dict),
  -             use=ec_dictionary:new(ec_dict)}.
  +                    scopes=[],
  +                    definitions=ec_dictionary:new(ec_dict),
  +                    alias=ec_dictionary:new(ec_dict),
  +                    require=ec_dictionary:new(ec_dict),
  +                    use=ec_dictionary:new(ec_dict)},
  +    update(Ctx0).
   
   %% create a new context with default values for aliased modules, required
   %% modules use 'used' or imported modules.
  
positive.code: new(Annots) ->
      #context{module_name=undefined,
               attrs=[],
               exports=[],
               annots=Annots,
               scopes=[],
               definitions=ec_dictionary:new(ec_dict),
  
negative.code:     ModuleName.
  
  -spec module_name(module(), context()) -> context().
  module_name(ModuleName, Ctx0) ->
      Ctx1 = Ctx0#context{module_name=ModuleName},
      update(Ctx1).
  
  exports(#context{exports=Exports}) ->
      Exports.
  