content: {-# OPTIONS_HADDOCK not-home #-}
  
  -- |
  -- Module      :  GHC.IO
  -- Copyright   :  (c) The University of Glasgow 1994-2023
  -- License     :  see libraries/base/LICENSE
  --
  -- Maintainer  :  ghc-devs@haskell.org
  -- Stability   :  internal
  -- Portability :  non-portable (GHC Extensions)
  --
  -- Definitions for the 'IO' monad and its friends.
  --
  -- /The API of this module is unstable and not meant to be consumed by the general public./
  -- If you absolutely must depend on it, make sure to use a tight upper
  -- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
  -- change rapidly without much warning.
  --
  
  module GHC.IO (
          IO(..), unIO, liftIO, mplusIO,
          unsafePerformIO, unsafeInterleaveIO,
          unsafeDupablePerformIO, unsafeDupableInterleaveIO,
          noDuplicate,
  
          -- To and from ST
          stToIO, ioToST, unsafeIOToST, unsafeSTToIO,
  
          FilePath,
  
          catch, catchException, catchAny, throwIO,
          mask, mask_, uninterruptibleMask, uninterruptibleMask_,
          MaskingState(..), getMaskingState,
          unsafeUnmask, interruptible,
          onException, bracket, finally, evaluate,
          mkUserError
      ) where
  
  import GHC.Internal.IO
  