anchor.diff:  %% the next function.
   -spec run_fold(HookName::hookname(), Args::list(), Acc::any()) -> Acc2::any().
   run_fold(HookName, Args, Acc) ->
  -    case hooks_list:find(HookName) of
  -        {ok, Hooks} -> run_fold1(Hooks, Args, HookName, Acc);
  +    case ?find_hook(HookName) of
  +        no_hook -> Acc;
  +        Hooks -> run_fold1(Hooks, Args, HookName, Acc);
           _ -> Acc
       end.
   
  
positive.code: 
  
  %% @doc call the top priority hook for the HookName
  -spec only(HookName::hookname(), Args::list()) -> any() | hooks_not_found.
  only(HookName, Args) ->
      case hooks_list:find(HookName) of
          {ok, [{Module, Fun} |_]} ->
              apply(Module, Fun, Args);
          Error ->
              Error
      end.
  
  %% @hidden
  
negative.code:     ok = hooks:reg(a, ?MODULE, hook_add2, 1, 0),
  
      ?assertEqual({ok, [{?MODULE, hook_add2}, {?MODULE, hook_add}]},
                   hooks:find(a)),
  
      ?assertEqual(3, hooks:only(a, [1])),
  
      ok = hooks:unreg(a, ?MODULE, hook_add, 1, 10),
      ok = hooks:unreg(a, ?MODULE, hook_add2, 1, 0),
      ?assertEqual(error, hooks:find(a)),
      ok.
  
  plugin_test() ->
  