anchor.diff:       f("    mk_type_error({expected_msg,~p}, X, Path).~n", [MsgName]),
        f("~n")].
   
  -format_enum_verifiers(Defs, #anres{reachable_enums=ReachableEnums}) ->
  -    [format_enum_verifier(EnumName, Def) || {{enum,EnumName}, Def} <- Defs,
  -                                            sets:is_element(EnumName,
  -                                                            ReachableEnums)].
  +format_enum_verifiers(Defs, #anres{used_types=UsedTypes}) ->
  +    [format_enum_verifier(EnumName, Def)
  +     || {{enum,EnumName}, Def} <- Defs,
  +        smember({enum, EnumName}, UsedTypes)].
   
   format_enum_verifier(EnumName, EnumMembers) ->
       FnName = mk_fn(v_enum_, EnumName),
  
positive.code: is_packed(#field{opts=Opts}) ->
      lists:member(packed, Opts).
  
  index_seq([]) -> [];
  index_seq(L)  -> lists:zip(lists:seq(1,length(L)), L).
  
  
negative.code: 
  -record(anres, %% result of analysis
          {
            used_types = sets:new()
          }).
  
  
  