packages feed

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