    {-# LANGUAGE Safe #-}

    -- |
    --
    -- Module      :  Control.Exception.Base
    -- Copyright   :  (c) The University of Glasgow 2001
    -- License     :  BSD-style (see the file libraries/base/LICENSE)
    --
    -- Maintainer  :  libraries@haskell.org
    -- Stability   :  stable
    -- Portability :  non-portable (extended exceptions)
    --
    -- Extensible exceptions, except for multiple handlers.
    --

    module Control.Exception.Base
        (-- *  The Exception type
         SomeException(..),
         Exception(..),
         IOException,
         ArithException(..),
         ArrayException(..),
         AssertionFailed(..),
         SomeAsyncException(..),
         AsyncException(..),
         asyncExceptionToException,
         asyncExceptionFromException,
         NonTermination(..),
         NestedAtomically(..),
         BlockedIndefinitelyOnMVar(..),
         FixIOException(..),
         BlockedIndefinitelyOnSTM(..),
         AllocationLimitExceeded(..),
         CompactionFailed(..),
         Deadlock(..),
         NoMethodError(..),
         PatternMatchFail(..),
         RecConError(..),
         RecSelError(..),
         RecUpdError(..),
         ErrorCall(..),
         TypeError(..),
         NoMatchingContinuationPrompt(..),
         -- *  Throwing exceptions
         throwIO,
         throw,
         ioError,
         throwTo,
         -- *  Catching Exceptions
         -- **  The @catch@ functions
         catch,
         catchJust,
         -- **  The @handle@ functions
         handle,
         handleJust,
         -- **  The @try@ functions
         try,
         tryJust,
         onException,
         -- **  The @evaluate@ function
         evaluate,
         -- **  The @mapException@ function
         mapException,
         -- *  Asynchronous Exceptions
         -- **  Asynchronous exception control
         mask,
         mask_,
         uninterruptibleMask,
         uninterruptibleMask_,
         MaskingState(..),
         getMaskingState,
         -- *  Assertions
         assert,
         -- *  Utilities
         bracket,
         bracket_,
         bracketOnError,
         finally,
         -- *  Calls for GHC runtime
         recSelError,
         recConError,
         impossibleError,
         impossibleConstraintError,
         nonExhaustiveGuardsError,
         patError,
         noMethodBindingError,
         typeError,
         nonTermination,
         nestedAtomically,
         noMatchingContinuationPrompt
         ) where

    import GHC.Internal.Control.Exception.Base