summaryrefslogtreecommitdiff
path: root/libraries/base/Unsafe
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/Unsafe')
-rw-r--r--libraries/base/Unsafe/Coerce.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/libraries/base/Unsafe/Coerce.hs b/libraries/base/Unsafe/Coerce.hs
index 00444bd107..e911c6fc57 100644
--- a/libraries/base/Unsafe/Coerce.hs
+++ b/libraries/base/Unsafe/Coerce.hs
@@ -14,8 +14,16 @@
-- it is your responsibility to ensure that the old and new types have
-- identical internal representations, in order to prevent runtime corruption.
--
--- 'unsafeCoerce' is just a trivial wrapper for 'unsafeCoerce#';
--- see the latter for important documentation about correct usage.
+-- 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).
+--
+-- * In nhc98, the only representation-safe coercions are between Enum
+-- types with the same range (e.g. Int, Int32, Char, Word32),
+-- or between a newtype and the type that it wraps.
module Unsafe.Coerce (unsafeCoerce) where