anchor.diff:    Module = site_module(Site),
     RecDict = dict:from_list([{Module, TypeTable}]),
     ExpTypes = replace_by_none,
  -  {T, _} = t_from_form1(Form, ExpTypes, Site, RecDict, var_table__new()),
  -  T.
  +  t_from_form1(Form, ExpTypes, Site, RecDict, maps:new()).
   
   %% REC_TYPE_LIMIT is used for limiting the depth of recursive types.
   %% EXPAND_LIMIT is used for limiting the size of types by
  
positive.code: 
  -spec t_from_form1(parse_form(), sets:set(mfa()) | 'replace_by_none',
                     site(), mod_records(), var_table()) ->
                        {erl_type(), expand_limit()}.
  
  t_from_form1(Form, ET, Site, MR, V) ->
    TypeNames = initial_typenames(Site),
    t_from_form1(Form, TypeNames, ET, Site, MR, V, ?EXPAND_DEPTH).
  
  initial_typenames({type, _MTA}=Site) -> [Site];
  initial_typenames({spec, _MFA}) -> [];
  initial_typenames({record, _MRA}) -> [].
  
  t_from_form1(Form, TypeNames, ET, Site, MR, V, D) ->
    L = ?EXPAND_LIMIT,
    {T, L1} = t_from_form(Form, TypeNames, ET, Site, MR, V, D, L),
    if
      L1 =< 0, D > 1 ->
        D1 = D div 2,
        t_from_form1(Form, TypeNames, ET, Site, MR, V, D1);
      true ->
        {T, L1}
    end.
  
  -spec t_from_form(parse_form(), type_names(),
                    sets:set(mfa()) | 'replace_by_none',
  
negative.code:                   site(), mod_records(), var_table()) -> erl_type().
  
  t_from_form(Form, ExpTypes, Site, RecDict, VarDict) ->
    t_from_form1(Form, ExpTypes, Site, RecDict, VarDict).
  
  %% Replace external types with with none().
  -spec t_from_form_without_remote(parse_form(), site(), type_table()) ->
  