{- |
The only point of this module is
to reexport items that we want from the standard Prelude.
-}

module NumericPrelude.Base (
   (P.!!),
   (P.$),
   (P.$!),
   (P.&&),
   (P.++),
   (P..),
   (P.=<<),
   P.Bool(..),
   P.Bounded(..),
   P.Char,
   P.Either(..),
   P.Enum(..),
   P.Eq(..),
   P.FilePath,
   P.Functor(..),
   P.IO,
   P.IOError,
   P.Maybe(..),
   P.Monad(..),
   P.Ord(..),
   P.Ordering(..),
   P.Read(..),
   P.ReadS,
   P.Show(..),
   P.ShowS,
   P.String,
   P.all,
   P.and,
   P.any,
   P.appendFile,
   P.asTypeOf,
   P.break,
   P.concat,
   P.concatMap,
   P.const,
   P.curry,
   P.cycle,
   P.drop,
   P.dropWhile,
   P.either,
   P.elem,
   P.error,
   P.filter,
   P.flip,
   P.foldl,
   P.foldl1,
   P.foldr,
   P.foldr1,
   P.fst,
   P.getChar,
   P.getContents,
   P.getLine,
   P.head,
   P.id,
   P.init,
   P.interact,
   P.ioError,
   P.iterate,
   P.last,
   P.length,
   P.lex,
   P.lines,
   P.lookup,
   P.map,
   P.mapM,
   P.mapM_,
   P.maximum,
   P.maybe,
   P.minimum,
   P.not,
   P.notElem,
   P.null,
   P.or,
   P.otherwise,
   P.print,
   P.putChar,
   P.putStr,
   P.putStrLn,
   P.read,
   P.readFile,
   P.readIO,
   P.readLn,
   P.readParen,
   P.reads,
   P.realToFrac,
   P.repeat,
   P.replicate,
   P.reverse,
   P.scanl,
   P.scanl1,
   P.scanr,
   P.scanr1,
   P.seq,
   P.sequence,
   P.sequence_,
   P.showChar,
   P.showParen,
   P.showString,
   P.shows,
   P.snd,
   P.span,
   P.splitAt,
   P.tail,
   P.take,
   P.takeWhile,
   P.uncurry,
   P.undefined,
   P.unlines,
   P.until,
   P.unwords,
   P.unzip,
   P.unzip3,
   P.userError,
   P.words,
   P.writeFile,
   P.zip,
   P.zip3,
   P.zipWith,
   P.zipWith3,
   (P.||),

   catch,
   ifThenElse,
   ) where

import qualified System.IO.Error as IOError
import qualified Prelude as P
import Prelude (IO)
import Data.Bool.HT (ifThenElse, )

catch :: IO a -> (P.IOError -> IO a) -> IO a
catch = IOError.catchIOError