{- |
Module      : Antelude.IO
Description : Contains some functions for basic IO stuff.
Maintainer  : dneavesdev@pm.me
-}
module Antelude.IO
    ( IO
    , IOError
    , MonadIO (..)
    -- | Reexport from 'Control.Exception'
    , Exception
    -- | Reexport from 'Prelude'
    , P.error
    -- | Reexport from 'Prelude'
    , P.errorWithoutStackTrace
    -- | Reexport from 'Prelude'
    , P.getChar
    -- | Reexport from 'Prelude'
    , P.getContents
    -- | Reexport from 'Prelude'
    , P.getLine
    -- | Reexport from 'Prelude'
    , P.interact
    -- | Reexport from 'Prelude'
    , P.ioError
    -- | Reexport from 'Prelude'
    , P.putChar
    -- | Reexport from 'Preluded'
    , P.putStr
    -- | Reexport from 'Preluded'
    , P.putStrLn
    -- | Reexport from 'Preluded'
    , P.readIO
    -- | Reexport from 'Preluded'
    , P.readLn
    -- | Reexport from 'Preluded'
    , P.undefined
    -- | Reexport from 'Preluded'
    , P.userError
    -- | Reexport from 'Control.Exception'
    , Ex.try
    -- | Reexport from 'Control.Exception'
    , Ex.handle
    -- | Reexport from 'Control.Exception'
    , Ex.catch
    ) where

import safe           Antelude.Internal.TypesClasses
    ( IO
    , IOError
    , MonadIO (..)
    )

import safe           Control.Exception              ( Exception )
import safe qualified Control.Exception              as Ex

import safe qualified Prelude                        as P
    ( error
    , errorWithoutStackTrace
    , getChar
    , getContents
    , getLine
    , interact
    , ioError
    , putChar
    , putStr
    , putStrLn
    , readIO
    , readLn
    , undefined
    , userError
    )