{-|
Same as @Prelude@, except using the new 'IO' type.
-}
module CheckedIO.Prelude (
  -- * CheckedIO.Prelude.NoIO
  module CheckedIO.Prelude.NoIO,

  -- * CheckedIO.Core
  module CheckedIO.Core,

  -- * Reimplemented prelude functions
  putStrLn,
  getLine,
) where

import qualified Prelude

import CheckedIO.Core (IO)
import qualified CheckedIO.Core as Core
import CheckedIO.Prelude.NoIO

putStrLn :: String -> IO ()
putStrLn :: String -> IO ()
putStrLn = UnsafeIO () -> IO ()
forall (m :: * -> *) a. MonadRunIO m => UnsafeIO a -> m a
Core.checkIO (UnsafeIO () -> IO ())
-> (String -> UnsafeIO ()) -> String -> IO ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> UnsafeIO ()
Prelude.putStrLn

getLine :: IO String
getLine :: IO String
getLine = UnsafeIO String -> IO String
forall (m :: * -> *) a. MonadRunIO m => UnsafeIO a -> m a
Core.checkIO UnsafeIO String
Prelude.getLine