anchor.diff:  
   t_maybe_improper_list(_Content, ?unit) -> ?none;
   t_maybe_improper_list(?unit, _Termination) -> ?none;
  +t_maybe_improper_list(_Content, ?none) -> ?none;
  +t_maybe_improper_list(?none, _Termination) -> ?none;
   t_maybe_improper_list(Content, Termination) ->
     %% Safety check: would be nice to have but does not work with remote types
     %% true = t_is_subtype(t_nil(), Termination),
  
positive.code:     end,
    NewContents = t_sup(Contents1, Contents2),
    NewTermination = t_sup(Termination1, Termination2),
    TmpList = t_cons(NewContents, NewTermination),
    case NewSize of
      ?nonempty_qual -> TmpList;
      ?unknown_qual ->
        ?list(FinalContents, FinalTermination, _) = TmpList,
        ?list(FinalContents, FinalTermination, ?unknown_qual)
    end;
  t_sup(?number(_, _), ?number(?any, ?unknown_qual) = T) -> T;
  t_sup(?number(?any, ?unknown_qual) = T, ?number(_, _)) -> T;
  t_sup(?float, ?float) -> ?float;
  
negative.code:        true -> t_limit_k(Termination, K - 1)
      end,
    NewElements = t_limit_k(Elements, K - 1),
    ?list(NewElements, NewTermination, Size);
  t_limit_k(?function(Domain, Range), K) ->
    %% The domain is either a product or any() so we do not decrease the K.
    ?function(t_limit_k(Domain, K), t_limit_k(Range, K-1));
  