summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/Exception.hs-boot
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/GHC/Exception.hs-boot')
-rw-r--r--libraries/base/GHC/Exception.hs-boot34
1 files changed, 34 insertions, 0 deletions
diff --git a/libraries/base/GHC/Exception.hs-boot b/libraries/base/GHC/Exception.hs-boot
new file mode 100644
index 0000000000..aa19897363
--- /dev/null
+++ b/libraries/base/GHC/Exception.hs-boot
@@ -0,0 +1,34 @@
+{-# LANGUAGE Trustworthy #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
+{-
+This SOURCE-imported hs-boot module cuts a big dependency loop:
+
+ GHC.Exception
+imports Data.Maybe
+imports GHC.Base
+imports GHC.Err
+imports {-# SOURCE #-} GHC.Exception
+
+More dramatically
+
+ GHC.Exception
+imports Data.Typeable
+imports Data.Typeable.Internals
+imports GHC.Arr (fingerprint representation etc)
+imports GHC.Real
+imports {-# SOURCE #-} GHC.Exception
+
+However, GHC.Exceptions loop-breaking exports are all nice,
+well-behaved, non-bottom values. The clients use 'raise#'
+to get a visibly-bottom value.
+-}
+
+module GHC.Exception ( SomeException, errorCallException,
+ divZeroException, overflowException, ratioZeroDenomException
+ ) where
+import GHC.Types( Char )
+
+data SomeException
+divZeroException, overflowException, ratioZeroDenomException :: SomeException
+errorCallException :: [Char] -> SomeException