anchor.diff:                          {t_any(), L1}
                       end,
                     NewRep1 = choose_opaque_type(NewRep, Type),
  -                  {t_opaque(Mod, Name, ArgTypes, NewRep1), L2};
  +                  NewRep2 = case t_is_none(NewRep1) of
  +                     true -> NewRep1;
  +                     false -> t_opaque(Mod, Name, ArgTypes, NewRep1)
  +                   end,
  +                  {NewRep2, L2};
                   error ->
                     Msg = io_lib:format("Unable to find remote type ~w:~w()\n",
                                         [RemMod, Name]),
  
positive.code:           false -> {t_any(), L1}
          end,
        Rep1 = choose_opaque_type(Rep, Type),
        Args2 = [subst_all_vars_to_any(ArgType) || ArgType <- ArgTypes],
        {t_opaque(Module, Name, Args2, Rep1), L2};
      error ->
        Msg = io_lib:format("Unable to find type ~w/~w\n", [Name, ArgsLen]),
        throw({error, Msg})
  
negative.code:                  %% List = lists:zip(ArgNames, Args),
                   %% TmpVarDict = dict:from_list(List),
                   %% Rep = t_from_form(Type, RecDict, TmpVarDict),
                   Rep = t_any(), % not used for anything right now
                   Args = [t_any() || _ <- ArgNames],
                   t_opaque(Module, Name, Args, Rep)
  	     end, OpaqueRecDict),
  