    {-# LANGUAGE CPP #-}
    {-# LANGUAGE NoRebindableSyntax #-}
    {-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
    {-# OPTIONS_GHC -w #-}
    module Paths_Cabal (
        version,
        getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
        getDataFileName, getSysconfDir
      ) where

    import qualified Control.Exception as Exception
    import qualified Data.List as List
    import Data.Version (Version(..))
    import System.Environment (getEnv)
    import Prelude

    #if defined(VERSION_base)

    #if MIN_VERSION_base(4,0,0)
    catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
    #else
    catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a
    #endif

    #else
    catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
    #endif
    catchIO :: forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO = IO a -> (IOException -> IO a) -> IO a
    forall e a. Exception e => IO a -> (e -> IO a) -> IO a
    Exception.catch

    version :: Version
    version :: Version
    version = [Int] -> [String] -> Version
    Version [Int
    3,Int
    10,Int
    1,Int
    0] []

    getDataFileName :: FilePath -> IO FilePath
    getDataFileName :: String -> IO String
    getDataFileName String
    name = do
      String
    dir <- IO String
    getDataDir
      String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return (String
    dir String -> String -> String
    `joinFileName` String
    name)

    getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath

    bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath
    bindir :: String
    bindir     = String
    "${pkgroot}/../bin"
    libdir :: String
    libdir     = String
    "${pkgroot}/../lib/x86_64-osx-ghc-9.6.3/Cabal-3.10.1.0"
    dynlibdir :: String
    dynlibdir  = String
    "${pkgroot}/../lib/x86_64-osx-ghc-9.6.3"
    datadir :: String
    datadir    = String
    "${pkgroot}/../share/x86_64-osx-ghc-9.6.3/Cabal-3.10.1.0"
    libexecdir :: String
    libexecdir = String
    "${pkgroot}/../libexec/x86_64-osx-ghc-9.6.3/Cabal-3.10.1.0"
    sysconfdir :: String
    sysconfdir = String
    "${pkgroot}/../etc"

    getBinDir :: IO String
    getBinDir     = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_bindir")     (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    bindir)
    getLibDir :: IO String
    getLibDir     = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_libdir")     (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    libdir)
    getDynLibDir :: IO String
    getDynLibDir  = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_dynlibdir")  (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    dynlibdir)
    getDataDir :: IO String
    getDataDir    = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_datadir")    (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    datadir)
    getLibexecDir :: IO String
    getLibexecDir = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_libexecdir") (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    libexecdir)
    getSysconfDir :: IO String
    getSysconfDir = IO String -> (IOException -> IO String) -> IO String
    forall a. IO a -> (IOException -> IO a) -> IO a
    catchIO (String -> IO String
    getEnv String
    "Cabal_sysconfdir") (\IOException
    _ -> String -> IO String
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return String
    sysconfdir)

    joinFileName :: String -> String -> FilePath
    joinFileName :: String -> String -> String
    joinFileName String
    ""  String
    fname = String
    fname
    joinFileName String
    "." String
    fname = String
    fname
    joinFileName String
    dir String
    ""    = String
    dir
    joinFileName String
    dir String
    fname
      | Char -> Bool
    isPathSeparator (String -> Char
    forall a. HasCallStack => [a] -> a
    List.last String
    dir) = String
    dir String -> String -> String
    forall a. [a] -> [a] -> [a]
    ++ String
    fname
      | Bool
    otherwise                       = String
    dir String -> String -> String
    forall a. [a] -> [a] -> [a]
    ++ Char
    pathSeparator Char -> String -> String
    forall a. a -> [a] -> [a]
    : String
    fname

    pathSeparator :: Char
    pathSeparator :: Char
    pathSeparator = Char
    '/'

    isPathSeparator :: Char -> Bool
    isPathSeparator :: Char -> Bool
    isPathSeparator Char
    c = Char
    c Char -> Char -> Bool
    forall a. Eq a => a -> a -> Bool
    == Char
    '/'