Use IfElse package for whenM/unlessM

This commit is contained in:
Julian Ospald 2016-06-05 21:52:52 +02:00
parent 4d71ad08ce
commit a5942ff026
No known key found for this signature in database
GPG Key ID: 511B62C09D50CD28
4 changed files with 11 additions and 35 deletions

View File

@ -27,13 +27,13 @@ library
exposed-modules: HPath,
HPath.IO,
HPath.IO.Errors,
HPath.IO.Utils,
System.Posix.Directory.Foreign,
System.Posix.Directory.Traversals,
System.Posix.FD,
System.Posix.FilePath
other-modules: HPath.Internal
build-depends: base >= 4.2 && <5
, IfElse
, bytestring >= 0.9.2.0
, deepseq
, exceptions
@ -99,6 +99,7 @@ test-suite spec
GHC-Options: -Wall
Build-Depends: base
, HUnit
, IfElse
, bytestring
, hpath
, hspec >= 1.3

View File

@ -63,6 +63,11 @@ import Control.Monad
forM
, when
)
import Control.Monad.IfElse
(
whenM
, unlessM
)
import Data.ByteString
(
ByteString
@ -86,7 +91,6 @@ import {-# SOURCE #-} HPath.IO
(
canonicalizePath
)
import HPath.IO.Utils
import System.IO.Error
(
catchIOError

View File

@ -1,32 +0,0 @@
-- |
-- Module : HPath.IO.Utils
-- Copyright : © 2016 Julian Ospald
-- License : BSD3
--
-- Maintainer : Julian Ospald <hasufell@posteo.de>
-- Stability : experimental
-- Portability : portable
--
-- Random and general IO/monad utilities.
module HPath.IO.Utils where
import Control.Monad
(
when
, unless
)
-- |If the value of the first argument is True, then execute the action
-- provided in the second argument, otherwise do nothing.
whenM :: Monad m => m Bool -> m () -> m ()
whenM mb a = mb >>= (`when` a)
-- |If the value of the first argument is False, then execute the action
-- provided in the second argument, otherwise do nothing.
unlessM :: Monad m => m Bool -> m () -> m ()
unlessM mb a = mb >>= (`unless` a)

View File

@ -14,6 +14,10 @@ import Control.Monad
forM_
, void
)
import Control.Monad.IfElse
(
whenM
)
import qualified Data.ByteString as BS
import Data.IORef
(
@ -24,7 +28,6 @@ import Data.IORef
)
import HPath.IO
import HPath.IO.Errors
import HPath.IO.Utils
import Data.Maybe
(
fromJust