module GHCup.Utils.Dirs
 ( GHCupPath
 , appendGHCupPath
 , fromGHCupPath
 , createTempGHCupDirectory
 , removeDirectory
 , removeDirectoryRecursive
 , removePathForcibly
 )
 where

import Control.DeepSeq (NFData)


-- | A 'GHCupPath' is a safe sub-path that can be recursively deleted.
newtype GHCupPath = GHCupPath FilePath

instance Show GHCupPath where

instance Eq GHCupPath where

instance Ord GHCupPath where

instance NFData GHCupPath where

appendGHCupPath :: GHCupPath -> FilePath -> GHCupPath

fromGHCupPath :: GHCupPath -> FilePath

createTempGHCupDirectory :: GHCupPath -> FilePath -> IO GHCupPath

removeDirectory :: GHCupPath -> IO ()

removeDirectoryRecursive :: GHCupPath -> IO ()

removePathForcibly :: GHCupPath -> IO ()