base-4.9.0.0: Basic libraries

The highly unsafe primitive unsafeCoerce converts a value from any type to any other type. Needless to say, if you use this function, it is your responsibility to ensure that the old and new types have identical internal representations, in order to prevent runtime corruption.
The types for which unsafeCoerce is representation-safe may differ from compiler to compiler (and version to version).
• Documentation for correct usage in GHC will be found under unsafeCoerce# in GHC.Base (around which unsafeCoerce is just a trivial wrapper).