anchor.diff:  type_is_defined(TypeOrOpaque, Name, RecDict) ->
     dict:is_key({TypeOrOpaque, Name}, RecDict).
   
  -unfold(TypeName, TypeNames) ->
  -  not lists:member(TypeName, TypeNames).
  +can_unfold_more(TypeName, TypeNames) ->
  +  Fun = fun(E, Acc) -> case E of TypeName -> Acc + 1; _ -> Acc end end,
  +  lists:foldl(Fun, 0, TypeNames) < ?REC_TYPE_LIMIT.
   
   %% -----------------------------------
   %% Set
  
positive.code:                R1 ++ R2}
            end;
          error ->
            throw({error, erlang:error(io_lib:format("Unknown record #~w{}\n",
                                                     [Name]))})
        end;
      false -> {t_any(), []}
    end.
  
negative.code: 
  record_from_form({atom, _, Name}, ModFields, TypeNames, InOpaque, RecDict,
                   VarDict) ->
    case can_unfold_more({record, Name}, TypeNames) of
      true ->
        case lookup_record(Name, RecDict) of
          {ok, DeclFields} ->
  