anchor.diff:      nif_tests_check_prerequisites(
         [{"Nif compiles", fun nif_compiles/0},
          {"Nif encode decode", fun nif_encode_decode/0},
  +       nif_encode_decode_oneof_(),
          nif_encode_decode_maps_(),
          {"Nif enums in msgs", fun nif_enum_in_msg/0},
          {"Nif enums with pkgs", fun nif_enum_with_pkgs/0},
  
positive.code:                 fun() ->
                          nif_encode_decode_test_it(NEDM, Defs),
                          nif_encode_decode_strings(NEDM, Defs),
                          [nif_encode_decode_oneof(NEDM, Defs) || ProtocCanOneof],
                          ok
                  end)
        end).
  
negative.code:     TopMsgDef1 = {{msg, topmsg1}, mk_fields_of_type(EachType, required)},
      TopMsgDef2 = {{msg, topmsg2}, mk_fields_of_type(EachType, repeated)},
      TopMsgDef3 = {{msg, topmsg3}, mk_fields_of_type(EachType, optional)},
      StringMsg = {{msg,strmsg}, mk_fields_of_type([string], required)},
      [EnumDef, SubMsgDef, TopMsgDef1, TopMsgDef2, TopMsgDef3, StringMsg].
  
  mk_one_oneof_field_of_each_type() ->
      EachType   = [sint32, sint64, int32, int64, uint32,
                    uint64, bool, fixed64, sfixed64,
                    double, string, bytes, fixed32, sfixed32,
                    float, {enum, ee}, {msg, submsg1}],
      EnumDef    = {{enum, ee}, [{en1, 1}, {en2, 2}]},
      SubMsgDef  = {{msg, submsg1}, mk_fields_of_type([uint32], required)},
      OneofMsg1  = {{msg, oneof1},  mk_oneof_fields_of_type(EachType, 1)},
      [EnumDef, SubMsgDef, OneofMsg1].
  
  mk_one_map_field_of_each_type() ->
      %% Reduced set of int types to shorten compilation times,
  