diff --git a/System/Directory/Tools.hs b/System/Directory/Tools.hs
--- a/System/Directory/Tools.hs
+++ b/System/Directory/Tools.hs
@@ -1,14 +1,21 @@
 module System.Directory.Tools (
   maybeGetModificationTime
+, doesNotExistOrOldThan
 ) where
 
 import System.Directory    (doesFileExist, getModificationTime)
 import System.Time         (ClockTime)
 import Control.Applicative ((<$>))
 import Control.Monad.Tools (ifM)
+import Control.Applicative (liftA2, (<$>))
+import Data.Function       (on)
 
 maybeGetModificationTime :: FilePath -> IO (Maybe ClockTime)
 maybeGetModificationTime fn
   = ifM (doesFileExist fn)
         (Just <$> getModificationTime fn)
 	(return Nothing)
+
+doesNotExistOrOldThan :: FilePath -> FilePath -> IO Bool
+doesNotExistOrOldThan dfn sfn
+  = on (liftA2 (<)) maybeGetModificationTime dfn sfn
diff --git a/YJTools/Tribial.hs b/YJTools/Tribial.hs
--- a/YJTools/Tribial.hs
+++ b/YJTools/Tribial.hs
@@ -9,11 +9,10 @@
 import System.Process         (runProcess, waitForProcess)
 import System.Exit            (ExitCode(ExitSuccess))
 import System.Directory       (doesFileExist)
-import System.Directory.Tools (maybeGetModificationTime)
+import System.Directory.Tools (doesNotExistOrOldThan)
 import Control.Exception      (bracket)
 import Control.Monad.Tools    (ifM)
-import Control.Applicative    (liftA2, (<$>))
-import Data.Function          (on)
+import Control.Applicative    ((<$>))
 import Text.RegexPR           (matchRegexPR)
 
 ghcMake :: String -> FilePath -> IO ExitCode
@@ -45,7 +44,3 @@
   where
   infixr 2 `orIO`
   orIO p1 p2     = do { b1 <- p1; b2 <- unsafeInterleaveIO p2; return $ b1 || b2 }
-
-doesNotExistOrOldThan :: FilePath -> FilePath -> IO Bool
-doesNotExistOrOldThan dfn sfn
-  = on (liftA2 (<)) maybeGetModificationTime dfn sfn
diff --git a/yjtools.cabal b/yjtools.cabal
--- a/yjtools.cabal
+++ b/yjtools.cabal
@@ -1,5 +1,5 @@
 Name:		yjtools
-Version:	0.5
+Version:	0.6
 Cabal-Version:	>= 1.2
 Build-Type:	Simple
 License:	LGPL
