anchor.diff:  -type name() :: atom().
   -type argspec() :: 'none'                       %No arguments
                    | non_neg_integer().           %Number of arguments
  +-type argnames() :: [atom()].
   -type tokens() :: [erl_scan:token()].
  +-type predef() :: 'undefined' | {'none', tokens()}.
  +-type userdef() :: {argspec(), {argnames(), tokens()}}.
   -type used() :: {name(), argspec()}.
   
   -type function_name_type() :: 'undefined'
  
positive.code: %%
  %% %CopyrightBegin%
  %%
  %% Copyright Ericsson AB 1996-2015. All Rights Reserved.
  %%
  %% Licensed under the Apache License, Version 2.0 (the "License");
  %% you may not use this file except in compliance with the License.
  
negative.code:               sstk=[] :: [#epp{}],              %State stack
                path=[] :: [file:name()],         %Include-path
                macs = #{}		        %Macros (don't care locations)
  	            :: #{name() => predef() | [userdef()]},
                uses = #{}			%Macro use structure
  	            :: #{name() => [{argspec(), [used()]}]},
                default_encoding = ?DEFAULT_ENCODING :: source_encoding(),
  