Swift set type-safety and faulting

.Hello,


When generating managed objects code from the model, I noticed XCode prefer to use NSSet over enforcing type-safety Set<MyOtherManagedObject>. As tempted as I am to leverage Swift type safety, I can't help but to think that there's a good reason for XCode to do this.


Does the built-in faulting mecanism still work if I replace NSSet with Set<MyOtherManagedObject>, or does core data has no choice but to unfault in order to enfore the type-safety?


Or is there any reason to prefer to use NSSet over Set<MyOtherManagedObject>?