anchor.diff:  -record(wrapper, {type           :: atom(),
   		  attr = #attr{} :: #attr{},
   		  tree           :: erl_parse()}).
  -
  -%% =====================================================================
  -
  --type syntaxTree() :: #tree{} | #wrapper{} | erl_parse().
  +-type wrapper() :: #wrapper{}.
  +
  +%% =====================================================================
  +
  +-type syntaxTree() :: tree() | wrapper() | erl_parse().
   
   -type erl_parse() :: erl_parse:abstract_clause()
                      | erl_parse:abstract_expr()
                      | erl_parse:abstract_form()
                      | erl_parse:abstract_type()
                      | erl_parse:form_info()
  -                     %% To shut up Dialyzer:
  -                   | {bin_element, _, _, _, _}.
  +                   | erl_parse:af_binelement(term())
  +                   | erl_parse:af_generator()
  +                   | erl_parse:af_remote_function().
   
   %% The representation built by the Erlang standard library parser
   %% `erl_parse'. This is a subset of the {@link syntaxTree()} type.
  
positive.code: %% trees. <em>Attaching a wrapper onto another wrapper structure is an
  %% error</em>.
  
  -spec wrap(erl_parse()) -> #wrapper{}.
  
  wrap(Node) ->
      %% We assume that Node is an old-school `erl_parse' tree.
  
negative.code: %% @see data/1
  %% @see type/1
  
  -spec tree(atom(), term()) -> tree().
  
  tree(Type, Data) ->
      #tree{type = Type, data = Data}.
  