anchor.diff:       || {{enum, EnumName}, EnumDef} <- Defs,
           smember({enum,EnumName}, UsedTypes)].
   
  -enum_to_binary_fields(Value) ->
  -    <<N:32/unsigned-native>> = <<Value:32/signed-native>>,
  -    varint_to_binary_fields(N).
  -
  -varint_to_binary_fields(IntValue) ->
  -    [erl_syntax:binary_field(?expr('<n>', [replace_term('<n>', N)]), [])
  -     || N <- binary_to_list(gpb:encode_varint(IntValue))].
  -
   format_msg_encoders(Defs) ->
       [format_msg_encoder(MsgName, MsgDef) || {{msg, MsgName}, MsgDef} <- Defs].
   
  
positive.code:                '<enc>'('<F>', <<'<Bin>'/binary, '<Key>'>>),
                 Transforms)
      end.
  
  key_to_binary_fields(FNum, Type) ->
      Key = (FNum bsl 3) bor gpb:encode_wiretype(Type),
      varint_to_binary_fields(Key).
  
  mk_field_encode_fn_name(MsgName, #field{occurrence=repeated, name=FName}) ->
      mk_fn(e_field_, MsgName, FName);
  
negative.code:      [format_bool_verifier()                    || smember(bool, UsedTypes)],
       [format_int_verifier(fixed32, unsigned, 32)|| smember(fixed32, UsedTypes)],
       [format_int_verifier(fixed64, unsigned, 64)|| smember(fixed64, UsedTypes)],
       [format_int_verifier(sfixed32,signed, 32)  || smember(sfixed32,UsedTypes)],
       [format_int_verifier(sfixed64,signed, 64)  || smember(sfixed64,UsedTypes)],
       [format_float_verifier(float)              || smember(float, UsedTypes)],
       [format_float_verifier(double)             || smember(double, UsedTypes)],
       [format_string_verifier()                  || smember(string, UsedTypes)],
  