anchor.diff:                      [if I == 1 -> "";
                           I >  1 -> "else "
                        end,
  -                     SrcVar, mk_c_var(aa_, Sym),
  +                     SrcVar, mk_c_var(gpb_aa_, Sym),
                        MsgVar, SetterFnName, Sym])
                    || {I, {Sym, _Val}} <- index_seq(Enumerations)],
                   "    else\n"
  
positive.code:                    [DestVar, MsgVar, LCFName])];
             bool ->
                 [?f("if (~s->~s())\n", [MsgVar, LCFName]),
                  ?f("    ~s = aa_true;\n", [DestVar]),
                  ?f("else\n"),
                  ?f("    ~s = aa_false;\n", [DestVar])];
             {enum, EnumName} ->
                 {value, {{enum,EnumName}, Enumerations}} =
                     lists:keysearch({enum,EnumName}, 1, Defs),
                 [] ++
                     [?f("switch (~s->~s()) {\n", [MsgVar, LCFName])] ++
                     [?f("    case ~w: ~s = ~s; break;\n",
                         [Value, DestVar, mk_c_var(aa_, Sym)])
                      || {Sym, Value} <- Enumerations] ++
                     [?f("    default: ~s = aa_undefined;\n", [DestVar])] ++
                     [?f("}\n")];
             string ->
                 [?f("{\n"),
  
negative.code:                   [SrcVar, MsgVar, SetterFnName]);
             bool ->
                 ?f("{\n"
                    "    if (enif_is_identical(~s, gpb_aa_true))\n"
                    "        ~s->~s(1);\n"
                    "    else\n"
                    "        ~s->~s(0);\n"
  