anchor.diff:  %% default
   %% =========================================================================================================
   
  -encode(MsgFields = [{FieldName1, Value} | MsgFieldsRest],
  -   #field{type = Type, name = FieldName2, presence = Presence, operator = #default{value = InitialValue}},
  +encode([{FieldName, Value} | MsgFieldsRest],
  +   #field{type = Type, name = FieldName, presence = Presence, operator = #default{value = InitialValue}},
         Context = #context{pmap = PMap}) ->
      case Presence of
  -      optional when (FieldName1 =/= FieldName2) andalso (InitialValue == undef) ->
  -         {<<>>, MsgFields, Context#context{pmap = <<PMap/bits, 0:1>>}};
  -      optional when (FieldName1 == FieldName2) andalso (Value == absent) andalso (InitialValue == undef) ->
  +      optional when (Value == absent) andalso (InitialValue == undef) ->
            {<<>>, MsgFieldsRest, Context#context{pmap = <<PMap/bits, 0:1>>}};
  -      optional when (FieldName1 =/= FieldName2) ->
  -         {encode_type(Type, null, true), MsgFields, Context#context{pmap = <<PMap/bits, 1:1>>}};
  -      optional when (FieldName1 == FieldName2) andalso (Value == absent) ->
  +      optional when (Value == absent) ->
            {encode_type(Type, null, true), MsgFieldsRest, Context#context{pmap = <<PMap/bits, 1:1>>}};
  -      _ when (FieldName1 == FieldName2) andalso (Value =/= InitialValue) ->
  +      _ when (Value =/= InitialValue) ->
            {encode_type(Type, Value, is_nullable(Presence)), MsgFieldsRest, Context#context{pmap = <<PMap/bits, 1:1>>}};
  -      _ when (FieldName1 == FieldName2) andalso (Value == InitialValue) ->
  +      _ when (Value == InitialValue) ->
            {<<>>, MsgFieldsRest, Context#context{pmap = <<PMap/bits, 0:1>>}}
      end;
   
  
positive.code: %% encoding
  %% =========================================================================================================
  
  %% =========================================================================================================
  %% constant
  %% =========================================================================================================
  
  encode(MsgFields = [{FieldName1, Value} | MsgFieldsRest], #field{name = FieldName2, presence = Presence, operator =
        #constant{value = InitialValue}}, Context = #context{pmap = PMap}) ->
     case Presence of
        mandatory when FieldName1 =/= FieldName2 ->
           throw({error, {'ERR D3', FieldName1, "Mandatory constant field not found."}});
        mandatory when Value =/= InitialValue ->
           throw({error, {'ERR D3', FieldName1, "Constant initial value is not the same as field one."}});
        mandatory ->
           {<<>>, MsgFieldsRest, Context};
        optional when (FieldName1 =/= FieldName2) ->
           {<<>>, MsgFields, Context#context{pmap = <<PMap/bits, 0:1>>}};
        optional when (FieldName1 == FieldName2) andalso (Value == absent) ->
           {<<>>, MsgFieldsRest, Context#context{pmap = <<PMap/bits, 0:1>>}};
        optional when FieldName1 == FieldName2 ->
           {<<>>, MsgFieldsRest, Context#context{pmap = <<PMap/bits, 1:1>>}}
     end;
  
  
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],
  