module Hydrogen.Prelude.IO (
    module Hydrogen.Prelude
  , module Control.Concurrent
  , module Control.Exception
  , module Control.Monad
  , module Data.IORef
  , module System.IO
  , module System.Timeout
  , hGetContents'
  , getContents'
  , readFile'
  , interact'
) where

import Hydrogen.Prelude

import "base" Data.IORef

import "base" Control.Concurrent
import "base" Control.Exception
import "base" Control.Monad hiding (
    forM_
  , mapM_
  , msum
  , sequence_
  )

import "base" System.IO
import "base" System.Timeout

import qualified "strict" System.IO.Strict as Strict

hGetContents' :: Handle -> IO String
hGetContents' = Strict.hGetContents

getContents' :: IO String
getContents' = Strict.getContents

readFile' :: FilePath -> IO String
readFile' = Strict.readFile

interact' :: (String -> String) -> IO ()
interact' = Strict.interact