module Path.Extended
  ( fileExtension
  , addExtension
  , replaceExtension
  ) where

import           Control.Monad.Catch ( MonadThrow )
import qualified Path ( addExtension, fileExtension, replaceExtension )
import           Path ( File, Path )

fileExtension :: MonadThrow m => Path b File -> m String
fileExtension :: forall (m :: * -> *) b. MonadThrow m => Path b File -> m String
fileExtension = Path b File -> m String
forall (m :: * -> *) b. MonadThrow m => Path b File -> m String
Path.fileExtension

addExtension ::
     MonadThrow m
  => String
  -> Path b File
  -> m (Path b File)
addExtension :: forall (m :: * -> *) b.
MonadThrow m =>
String -> Path b File -> m (Path b File)
addExtension = String -> Path b File -> m (Path b File)
forall (m :: * -> *) b.
MonadThrow m =>
String -> Path b File -> m (Path b File)
Path.addExtension

replaceExtension ::
     MonadThrow m
  => String
  -> Path b File
  -> m (Path b File)
replaceExtension :: forall (m :: * -> *) b.
MonadThrow m =>
String -> Path b File -> m (Path b File)
replaceExtension String
ext = String -> Path b File -> m (Path b File)
forall (m :: * -> *) b.
MonadThrow m =>
String -> Path b File -> m (Path b File)
Path.replaceExtension (Char
'.' Char -> String -> String
forall a. a -> [a] -> [a]
: String
ext)