Data.OpenUnion needs to be marked as trustworthy so it can import Data.OpenUnion.Internal.
Data.OpenUnion.Internal does not enforce type-safety due to the ability to perform an arbitrary unsafeCoerce, so it would be incorrect to mark it as trustworthy - so it gets no annotations.
All other modules can then be inferred safe - Safe pragma added to ensure this remains the case.
Data.OpenUnion
needs to be marked as trustworthy so it can importData.OpenUnion.Internal
.Data.OpenUnion.Internal
does not enforce type-safety due to the ability to perform an arbitrary unsafeCoerce, so it would be incorrect to mark it as trustworthy - so it gets no annotations.