anchor.diff:  
   %% --------------------------------------------------------------------------------
   %% -- API functions
  -request(Mod, Method, Params) ->
  -    case erlang:function_exported(Mod, typespec, 0) of
  +request(CallbackModule, Method, Params) ->
  +    case erlang:function_exported(CallbackModule, typespec, 0) of
           false ->
               {error, typespec_not_loaded};
           true ->
  -            ModSpec = Mod:typespec(),
  +            ModSpec = CallbackModule:typespec(),
               try
                   Fields = yang_typespec:rpc_params(Method, ModSpec),
                   case is_proplist(Params) of
  
positive.code: params_to_proplist(Fields,  Params) when is_list(Params) ->
      {Proplist, TooMany} = zip(Fields, Params, {[], false}),
      TooMany andalso throw({error, invalid_params, "superfluous parameters"}),
      lists:reverse(Proplist).
  
  strip_keys([{K, V} | Proplists], [#field{name = K} | Defs], Acc) ->
      strip_keys(Proplists, Defs, [V | Acc]);
  
negative.code:                     {error, Code, Msg, Data} ->
                          {error, {Code, Msg, Data}};
                      ParamsValidated ->
                          ParamsValidated
                  end
              catch
                  error:{badarg, _} ->
  