anchor.diff:              gpb_codegen:format_fn(
                 mk_fn(v_msg_, MsgName),
                 fun('<msg-match>', Path) -> '<field-verifications>', ok;
  -                 ('<else-clause>', _) -> expr
  +                 ('<else-clause>', _) -> dummy_expr
                 end,
                 [replace_tree('<msg-match>', record_match(MsgName, RFields)),
                  splice_trees('<field-verifications>', field_verifiers(FVars)),
  
positive.code:     [gpb_codegen:format_fn(
         enum_symbol_by_value,
         fun('<EnumName>', Value) -> 'cvt'(Value) end,
         [splice_clauses(
            '<EnumName>',
            [gpb_codegen:fn_clause(
               fun('<EnumName>', Value) -> 'cvt'(Value) end,
               [replace_term('<EnumName>', EnumName),
                replace_term('cvt', mk_fn(enum_symbol_by_value_, EnumName))])
             || {{enum, EnumName}, _EnumDef} <- EnumDefs])]),
       "\n",
       gpb_codegen:format_fn(
         enum_value_by_symbol,
         fun('<EnumName>', Sym) -> 'cvt'(Sym) end,
         [splice_clauses(
            '<EnumName>',
            [gpb_codegen:fn_clause(
               fun('<EnumName>', Sym) -> 'cvt'(Sym) end,
               [replace_term('<EnumName>', EnumName),
                replace_term('cvt', mk_fn(enum_value_by_symbol_, EnumName))])
             || {{enum, EnumName}, _EnumDef} <- EnumDefs])]),
       "\n",
       [[gpb_codegen:format_fn(
           mk_fn(enum_symbol_by_value_, EnumName),
           fun('<Value>') -> '<Sym>' end,
           [splice_clauses(
              '<Value>',
              [gpb_codegen:fn_clause(
                 fun('<Value>') -> '<Sym>' end,
                 [replace_term('<Value>', EnumValue),
                  replace_term('<Sym>', EnumSym)])
               || {EnumSym, EnumValue} <- EnumDef])]),
         "\n",
         gpb_codegen:format_fn(
           mk_fn(enum_value_by_symbol_, EnumName),
           fun('<Sym>') -> '<Value>' end,
           [splice_clauses(
              '<Sym>',
              [gpb_codegen:fn_clause(
                 fun('<Sym>') -> '<Value>' end,
                 [replace_term('<Value>', EnumValue),
                  replace_term('<Sym>', EnumSym)])
               || {EnumSym, EnumValue} <- EnumDef])])]
        || {{enum, EnumName}, EnumDef} <- EnumDefs]];
  format_enum_value_symbol_converters([]=_EnumDefs) ->
      [gpb_codegen:format_fn(
  
negative.code:       decode_msg,
        fun(Bin, MsgName) ->
                case MsgName of
                    '<MsgName>' -> '<decode-call>'(Bin)
                end
        end,
        [repeat_clauses('<MsgName>',
                        [[replace_term('<MsgName>', MsgName),
                          replace_term('<decode-call>', mk_fn(d_msg_, MsgName))]
                         || {{msg,MsgName}, _Fields} <- Defs])]).
  
  format_decoders(Defs, AnRes, Opts) ->
      [format_enum_decoders(Defs, AnRes),
  