anchor.diff:  %% tail
   %% =========================================================================================================
   
  -encode(MsgFields = [{FieldName1, _Value} | _], #field{type = Type, presence = Presence, name = FieldName2, operator = #tail{}},
  -   Context = #context{pmap = PMap})
  -when (FieldName1 =/= FieldName2) ->
  -   {encode_type(Type, null, is_nullable(Presence)), MsgFields, Context#context{pmap = <<PMap/bits, 1:1>>}};
  -
  -encode([{FieldName1, Value} | MsgFieldsRest], #field{type = Type, presence = Presence, name = FieldName2, operator = #tail{}},
  -   Context = #context{pmap = PMap})
  -when ((FieldName1 == FieldName2) andalso (Value == absent)) ->
  +encode([{FieldName, Value} | MsgFieldsRest], #field{type = Type, presence = Presence, name = FieldName, operator = #tail{}},
  +   Context = #context{pmap = PMap}) when (Value == absent) ->
      {encode_type(Type, null, is_nullable(Presence)), MsgFieldsRest, Context#context{pmap = <<PMap/bits, 1:1>>}};
   
   encode([{_, Value} | MsgFieldsRest],
  
positive.code: %% =========================================================================================================
  %% decFieldOp
  %% =========================================================================================================
  encode(MsgFields = [{FieldName1, _Value} | _],
     F = #field{name = FieldName2, presence = Presence, operator = #decFieldOp{exponent = EOp}}, Context)
  when (FieldName1 =/= FieldName2) ->
     {EBin, [], Context1} = encode([{FieldName2, absent}], F#field{type = int32, name = FieldName2, presence = Presence, operator = EOp}, Context),
     {EBin, MsgFields, Context1};
  
  encode(MsgFields = [{FieldName1, Value} | MsgFieldsRest],
     F = #field{name = FieldName2, presence = Presence, operator = #decFieldOp{exponent = EOp}}, Context)
  when ((FieldName1 == FieldName2) andalso (Value == absent)) ->
     {EBin, [], Context1} = encode(MsgFields, F#field{type = int32, name = FieldName1, presence = Presence, operator = EOp}, Context),
     {EBin, MsgFieldsRest, Context1};
  
  encode([{FieldName, {Mantissa, Exponent}} | MsgFieldsRest],
  
negative.code: %% delta
  %% =========================================================================================================
  
  encode([{FieldName, Value} | MsgFieldsRest], #field{type = Type, name = FieldName, presence = Presence, operator = #delta{}}, Context)
  when (Value == absent) ->
     {encode_type(Type, null, is_nullable(Presence)), MsgFieldsRest, Context};
  
  encode([{_, Value} | MsgFieldsRest],
  