anchor.diff:  t_sup1([T], []) -> subst_all_vars_to_any(T);
   t_sup1(Ts, L) ->
     t_sup1(Ts++L, []).
  -
  --ifdef(old).
  -t_sup([?any|_]) ->
  -  ?any;
  -t_sup([H1, H2|T]) ->
  -  t_sup([t_sup(H1, H2)|T]);
  -t_sup([H]) ->
  -  subst_all_vars_to_any(H);
  -t_sup([]) ->
  -  ?none.
  --endif.
   
   -spec t_sup(erl_type(), erl_type()) -> erl_type().
   
  
positive.code:                   module(), mod_records(), var_table()) -> erl_type().
  
  t_from_form(Form, ExpTypes, Module, RecDict, VarDict) ->
    t_from_form(Form, [], ExpTypes, Module, RecDict, VarDict).
  
  %% All uses of external types are replaced by none().
  -spec t_from_form_without_remote(parse_form(), type_table()) -> erl_type().
  
  t_from_form_without_remote(Form, TypeTable) ->
    Module = mod,
    RecDict = dict:from_list([{Module, TypeTable}]),
    ExpTypes = replace_by_none,
    t_from_form(Form, [], ExpTypes, Module, RecDict, dict:new()).
  
  -spec t_from_form(parse_form(), type_names(),
                    sets:set(mfa()) | 'replace_by_none',
                    module(), mod_records(), var_table()) -> erl_type().
  
  %% If there is something wrong with parse_form()
  %% throw({error, io_lib:chars()} is called;
  
negative.code:   case lists:any(fun is_any/1, Ts) of
      true -> ?any;
      false ->
        t_sup1(Ts, [])
    end.
  
  t_sup1([H1, H2|T], L) ->
  