\begin{code}
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude #-}
-----------------------------------------------------------------------------
-- |
-- Module : GHC.Err
, recConError
, runtimeError -- :: Addr# -> a -- Addr# points to UTF8 encoded C string
- , absentErr, parError -- :: a
- , seqError -- :: a
+ , absentErr -- :: a
+ , divZeroError -- :: a
, error -- :: String -> a
, assertError -- :: String -> Bool -> a -> a
, undefined -- :: a
) where
+#ifndef __HADDOCK__
import GHC.Base
import GHC.List ( span )
import GHC.Exception
+#endif
\end{code}
%*********************************************************
%*********************************************************
\begin{code}
--- error stops execution and displays an error message
+-- | 'error' stops execution and displays an error message.
error :: String -> a
error s = throw (ErrorCall s)
+-- | A special case of 'error'.
-- It is expected that compilers will recognize this and insert error
--- messages which are more appropriate to the context in which undefined
+-- messages which are more appropriate to the context in which 'undefined'
-- appears.
undefined :: a
encoding saves bytes of string junk.
\begin{code}
-absentErr, parError, seqError :: a
+absentErr :: a
absentErr = error "Oops! The program has entered an `absent' argument!\n"
-parError = error "Oops! Entered GHCerr.parError (a GHC bug -- please report it!)\n"
-seqError = error "Oops! Entered seqError (a GHC bug -- please report it!)\n"
\end{code}
\begin{code}
}
not_bar c = c /= '|'
\end{code}
+
+Divide by zero. We put it here because it is needed relatively early
+in the libraries before the Exception type has been defined yet.
+
+\begin{code}
+{-# NOINLINE divZeroError #-}
+divZeroError :: a
+divZeroError = throw (ArithException DivideByZero)
+\end{code}
+