anchor.diff:    {Name, NextLevelEnclosingNs} = avro:split_type_name(T, Namespace),
     SchemaObjectFields =
       [ optional_field(namespace, ns(Namespace, EnclosingNamespace),
  -                     ?NS_GLOBAL, fun encode_string/1, Opt)
  +                     ?NS_GLOBAL, fun encode_string/1)
       , {name, encode_string(Name)}
       , {type, encode_string(?AVRO_RECORD)}
  -    , optional_field(doc,       Doc,  ?NO_DOC, fun encode_string/1, Opt)
  -    , optional_field(aliases,   Aliases,   [], fun encode_aliases/1, Opt)
  +    , optional_field(doc,       Doc,  ?NO_DOC, fun encode_string/1)
  +    , optional_field(aliases,   Aliases,   [], fun encode_aliases/1)
       , {fields, lists:map(fun(F) ->
                                encode_field(F, NextLevelEnclosingNs, Opt)
                            end, Fields)}
  
positive.code:                  } = T,
    SchemaObjectFields =
      [ optional_field(namespace, ns(Namespace, EnclosingNamespace),
                       ?NS_GLOBAL, fun encode_string/1, Opt)
      , {name, encode_string(Name)}
      , {type, encode_string(?AVRO_ENUM)}
      , optional_field(doc,       Doc,  ?NO_DOC, fun encode_string/1, Opt)
      , optional_field(aliases,   Aliases,   [], fun encode_aliases/1, Opt)
      , {symbols, lists:map(fun encode_string/1, Symbols)}
      | CustomProps
      ],
  
negative.code:     , {size, encode_integer(Size)}
      ],
    lists:flatten(SchemaObjectFields);
  do_encode_type(#avro_fixed_type{} = T, EnclosingNamespace, _Opt) ->
    #avro_fixed_type{ name      = Name
                    , namespace = Namespace
                    , aliases   = Aliases
  