polysemy-path-0.0.1.0: src/Polysemy/Path.hs
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -fplugin=Polysemy.Plugin #-}
module Polysemy.Path where
import Control.Monad
import Path
import Polysemy
import Polysemy.ConstraintAbsorber.MonadCatch
import Polysemy.Error
parseRelFile' :: Members '[Error SomeException] r
=> FilePath
-> Sem r (Path Rel File)
parseRelFile' x = absorbMonadThrow (try . parseRelFile $ x) >>= either throw return
parseAbsFile' :: Members '[Error SomeException] r
=> FilePath
-> Sem r (Path Abs File)
parseAbsFile' x = absorbMonadThrow (try . parseAbsFile $ x) >>= either throw return
parseRelDir' :: Members '[Error SomeException] r
=> FilePath
-> Sem r (Path Rel Dir)
parseRelDir' x = absorbMonadThrow (try . parseRelDir $ x) >>= either throw return
parseAbsDir' :: Members '[Error SomeException] r
=> FilePath
-> Sem r (Path Abs Dir)
parseAbsDir' x = absorbMonadThrow (try . parseAbsDir $ x) >>= either throw return
stripProperPrefix' :: Members '[Error SomeException] r
=> Path b Dir
-> Path b t
-> Sem r (Path Rel t)
stripProperPrefix' x y = absorbMonadThrow (try $ stripProperPrefix x y) >>= either throw return