{-# LANGUAGE CPP #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  System.Posix.PosixString
-- Copyright   :  (c) The University of Glasgow 2002
-- License     :  BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer  :  libraries@haskell.org
-- Stability   :  provisional
-- Portability :  non-portable (requires POSIX)
--
-- <http://pubs.opengroup.org/onlinepubs/9699919799/ POSIX.1-2008>
-- support with 'ByteString' file paths and environment strings.
--
-- This module exports exactly the same API as "System.Posix", except
-- that all file paths and environment strings are represented by
-- 'ByteString' instead of 'String'.  The "System.Posix" API
-- implicitly translates all file paths and environment strings using
-- the locale encoding, whereas this version of the API does no
-- encoding or decoding and works directly in terms of raw bytes.
--
-- Note that if you do need to interpret file paths or environment
-- strings as text, then some Unicode encoding or decoding should be
-- applied first.
--
-----------------------------------------------------------------------------

module System.Posix.PosixString (
  System.OsString.Posix.PosixString,
  System.OsPath.Posix.PosixPath,
  module System.Posix.Types,
  module System.Posix.Signals,
  module System.Posix.Directory.PosixPath,
  module System.Posix.Files.PosixString,
  module System.Posix.Unistd,
  module System.Posix.IO.PosixString,
  module System.Posix.Env.PosixString,
  module System.Posix.Process.PosixString,
  module System.Posix.Temp.PosixString,
  -- module System.Posix.Terminal.ByteString,
  module System.Posix.Time,
  module System.Posix.User,
  module System.Posix.Resource,
  module System.Posix.Semaphore,
  module System.Posix.SharedMem,
--  module System.Posix.DynamicLinker.ByteString,
-- XXX 'Module' type clashes with GHC
--  module System.Posix.DynamicLinker.Module.ByteString
 ) where

import System.OsPath.Posix
import System.OsString.Posix
import System.Posix.Types
import System.Posix.Signals
import System.Posix.Directory.PosixPath
import System.Posix.Files.PosixString
import System.Posix.Unistd
import System.Posix.Process.PosixString
import System.Posix.IO.PosixString
import System.Posix.Env.PosixString
import System.Posix.Temp.PosixString
-- import System.Posix.Terminal.ByteString
import System.Posix.Time
import System.Posix.User
import System.Posix.Resource
import System.Posix.Semaphore
import System.Posix.SharedMem
-- XXX: bad planning, we have two constructors called "Default"
-- import System.Posix.DynamicLinker.ByteString hiding (Default)
--import System.Posix.DynamicLinker.Module.ByteString