{-# LANGUAGE Safe #-}
{-# OPTIONS_HADDOCK not-home #-}

-- |
--
-- Module      :  GHC.IO.Handle.Internals
-- Copyright   :  (c) The University of Glasgow, 1994-2001
-- License     :  see libraries/base/LICENSE
--
-- Maintainer  :  libraries@haskell.org
-- Stability   :  internal
-- Portability :  non-portable
--
-- This module defines the basic operations on I\/O \"handles\".  All
-- of the operations defined here are independent of the underlying
-- device.
--
-- /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.Handle.Internals
    (withHandle,
     withHandle',
     withHandle_,
     withHandle__',
     withHandle_',
     withAllHandles__,
     wantWritableHandle,
     wantReadableHandle,
     wantReadableHandle_,
     wantSeekableHandle,
     mkHandle,
     mkFileHandle,
     mkFileHandleNoFinalizer,
     mkDuplexHandle,
     mkDuplexHandleNoFinalizer,
     addHandleFinalizer,
     openTextEncoding,
     closeTextCodecs,
     initBufferState,
     dEFAULT_CHAR_BUFFER_SIZE,
     flushBuffer,
     flushWriteBuffer,
     flushCharReadBuffer,
     flushCharBuffer,
     flushByteReadBuffer,
     flushByteWriteBuffer,
     readTextDevice,
     writeCharBuffer,
     readTextDeviceNonBlocking,
     decodeByteBuf,
     augmentIOError,
     ioe_closedHandle,
     ioe_semiclosedHandle,
     ioe_EOF,
     ioe_notReadable,
     ioe_notWritable,
     ioe_finalizedHandle,
     ioe_bufsiz,
     hClose_impl,
     hClose_help,
     hLookAhead_,
     HandleFinalizer,
     handleFinalizer,
     debugIO,
     traceIO
     ) where

import GHC.Internal.IO.Handle.Internals