From a97ebe39e8b76ca1dad1e875609da89e81353c6e Mon Sep 17 00:00:00 2001 From: Simon Peyton Jones Date: Thu, 6 Jun 2013 14:36:56 +0100 Subject: [PATCH] Comments --- GHC/Exception.lhs-boot | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/GHC/Exception.lhs-boot b/GHC/Exception.lhs-boot index 9c3b0bf4..f93d8067 100644 --- a/GHC/Exception.lhs-boot +++ b/GHC/Exception.lhs-boot @@ -1,3 +1,24 @@ +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. + \begin{code} {-# LANGUAGE Trustworthy #-} {-# LANGUAGE NoImplicitPrelude #-} @@ -11,8 +32,6 @@ module GHC.Exception ( SomeException, errorCallException, ) where import GHC.Types( Char ) --- These exports are nice, well-behaved, non-bottom values - data SomeException divZeroException, overflowException, ratioZeroDenomException :: SomeException errorCallException :: [Char] -> SomeException