-----------------------------------------------------------------------------
-- |
-- Module      :  UTF8Prelude
-- Copyright   :  (c) Péter Diviánszky 2008
-- License     :  BSD3-style (see LICENSE)
-- 
-- Maintainer:    divip@aszt.inf.elte.hu
-- Stability   :  alpha
-- Portability :  portable
--
-- This module defines the same entities as "Prelude" but uses UTF8 encoding.
--
-- Usage:
--
-- > import qualified Prelude
-- > import UTF8Prelude
--
-- This module is based on "System.IO.UTF8".

module UTF8Prelude 
    ( module Prelude
--    , module System.IO.UTF8
    , error
    , print
    , putStr
    , putStrLn
    , getLine
    , readLn
    , readFile
    , writeFile
    , appendFile
    , getContents
    ) where

import Codec.Binary.UTF8.String (encodeString)

import System.IO.UTF8 hiding
    ( hGetLine
    , hGetContents
    , hPutStr
    , hPutStrLn
    )

import Prelude hiding 
    ( error
    , print
    , putStr
    , putStrLn
    , getLine
    , readLn
    , readFile
    , writeFile
    , appendFile
    , getContents
    )

import qualified Prelude

-- | UTF8 encoded error messages
error :: String -> a
error = Prelude.error . encodeString