anchor.diff:             end,
       [] = arity(M, Name, Rname);
   
  -gen(M, command_codes = T, {Code, {Req, Abbr}, Ans}) ->
  -    Rname = M:msg2rec(Req),
  -    Rname = M:msg2rec(Abbr),
  -    gen(M, T, {Code, Req, Ans});
  -
  -gen(M, command_codes = T, {Code, Req, {Ans, Abbr}}) ->
  -    Rname = M:msg2rec(Ans),
  -    Rname = M:msg2rec(Abbr),
  -    gen(M, T, {Code, Req, Ans});
  -
   gen(M, command_codes, {Code, Req, Ans}) ->
  -    Msgs = orddict:fetch(messages, M:dict()),
  +    Msgs = orddict:fetch(messages, dict(M)),
       {_, Code, _, _, _} = lists:keyfind(Req, 1, Msgs),
       {_, Code, _, _, _} = lists:keyfind(Ans, 1, Msgs);
   
  -gen(M, avp_types, {Name, Code, Type, _Flags, _Encr}) ->
  +gen(M, avp_types = T, {Name, Code, Type, Flags})
  +  when is_list(Name) ->
  +    gen(M, T, {?A(Name), Code, ?A(Type), Flags});
  +
  +gen(M, avp_types, {Name, Code, Type, _Flags}) ->
       {Code, Flags, VendorId} = M:avp_header(Name),
       0 = Flags band 2#00011111,
       V = undefined /= VendorId,
  
positive.code:         error ->
              []
      end.
  
  gen(M, messages, {Name, Code, Flags, _, _}) ->
      Rname = M:msg2rec(Name),
  
negative.code:     B = z(B),
      [] = avp_decode(M, Type, Name);
  
  gen(M, grouped = T, {Name, Code, Vid, Avps})
    when is_list(Name) ->
      gen(M, T, {?A(Name), Code, Vid, Avps});
  
  gen(M, grouped, {Name, _, _, _}) ->
      Rname = M:name2rec(Name),
      [] = arity(M, Name, Rname);
  
  gen(M, enum = T, {Name, ED})
    when is_list(Name) ->
      gen(M, T, {?A(Name), lists:map(fun({E,D}) -> {?A(E), D} end, ED)});
  
  gen(M, enum, {Name, ED}) ->
      [] = run([{?MODULE, [enum, M, Name, T]} || T <- ED]);
  
  gen(M, Tag, {_Mod, L}) ->
  