anchor.diff:  	    erlang:raise(Class, Error, Stack)
       end.
   
  -%% This is a psuedo-type used to track tuples under construction, match context
  -%% positions, and so on. It is not a part of the beam_types type lattice and
  -%% should not leak outside this module.
   -record(t_abstract, {kind}).
   
  +%% The types are the same as in 'beam_types.hrl', with the addition of
  +%% #t_abstract{} that describes tuples under construction, match context
  +%% positions, and so on.
   -type validator_type() :: #t_abstract{} | type().
   
   -record(value_ref, {id :: index()}).
  
positive.code:                    {literal, term()} |
                     nil.
  
  -type tag() :: initialized |
                 uninitialized |
                 {catchtag, [label()]} |
  
negative.code: is_literal({literal,_L}) -> true;
  is_literal(_) -> false.
  
  %% These are just wrappers around their equivalents in beam_types, which
  %% handle the validator-specific #t_abstract{} type.
  %%
  %% The funny-looking abstract types produced here are intended to provoke
  %% errors on actual use; they do no harm just lying around.
  
  join(Same, Same) -> Same;
  join(#t_abstract{}=A, B) -> #t_abstract{kind={join, A, B}};
  