anchor.diff:    case ets:lookup(?FAKE_FUNS, MFA) of
       [] ->
         %% io:format("fun_for ~p~n", [MFA]),
  -      Module = get(Name),
  -      case maps:get({Function, Arity}, Module#module.funs, undefined) of
  -        undefined -> throw({notfound, {Name, Function, Arity}});
  -        FunctionAst ->
  +      case get(?MODULE_FUNCTIONS, MFA) of
  +        undefined -> throw({notfound, MFA});
  +        {_, FunctionAst} ->
             {function, _, _, _, Clauses} = replace_calls(FunctionAst, Name, Function),
             FunAst = {'named_fun', 0, Function, Clauses},
             {value, Fun, _} = erl_eval:expr(FunAst, []),
  
positive.code:                   vars    :: #{var_id() => 'clojerl.Var':type()},
                    attrs   :: [erl_syntax:syntaxTree()],
                    exports :: #{export() => true},
                    funs    :: #{function_id() => erl_syntax:syntaxTree()},
                    rest    :: [erl_syntax:syntaxTree()]
                  }).
  
  
negative.code:                   Attrs1 = erl_syntax:revert_forms(Attrs),
                    Module#module{attrs = Attrs1 ++ Module#module.attrs}
                end,
    update(?MODULE, Name, UpdateFun).
  
  -spec add_exports(clj_module(), [{atom(), non_neg_integer()}]) ->
    clj_module().
  