diff --git a/src/Data/Thyme/Clock/Internal.hs b/src/Data/Thyme/Clock/Internal.hs
--- a/src/Data/Thyme/Clock/Internal.hs
+++ b/src/Data/Thyme/Clock/Internal.hs
@@ -74,11 +74,11 @@
 
 {-# RULES
 
-"fromSeconds∷Float"     fromSeconds = fromSecondsRealFrac (0 :: Float)
-"fromSeconds∷Double"    fromSeconds = fromSecondsRealFrac (0 :: Double)
-"fromSeconds∷Int"       fromSeconds = fromSecondsIntegral (0 :: Int)
-"fromSeconds∷Int64"     fromSeconds = fromSecondsIntegral (0 :: Int64)
-"fromSeconds∷Integer"   fromSeconds = fromSecondsIntegral (0 :: Integer)
+"fromSeconds/Float"     fromSeconds = fromSecondsRealFrac (0 :: Float)
+"fromSeconds/Double"    fromSeconds = fromSecondsRealFrac (0 :: Double)
+"fromSeconds/Int"       fromSeconds = fromSecondsIntegral (0 :: Int)
+"fromSeconds/Int64"     fromSeconds = fromSecondsIntegral (0 :: Int64)
+"fromSeconds/Integer"   fromSeconds = fromSecondsIntegral (0 :: Integer)
 
   #-}
 
diff --git a/src/Data/Thyme/Time.hs b/src/Data/Thyme/Time.hs
--- a/src/Data/Thyme/Time.hs
+++ b/src/Data/Thyme/Time.hs
@@ -85,18 +85,18 @@
 
 {-# RULES
 
-"realToFrac∷DiffTime→NominalDiffTime"
+"realToFrac/DiffTime-NominalDiffTime"
     realToFrac = \ (DiffTime d) -> NominalDiffTime d
-"realToFrac∷NominalDiffTime→DiffTime"
+"realToFrac/NominalDiffTime-DiffTime"
     realToFrac = \ (NominalDiffTime d) -> DiffTime d
 
-"realToFrac∷DiffTime→Fractional"
+"realToFrac/DiffTime-Fractional"
     realToFrac = toSeconds :: (Fractional n) => DiffTime -> n
-"realToFrac∷NominalDiffTime→Fractional"
+"realToFrac/NominalDiffTime-Fractional"
     realToFrac = toSeconds :: (Fractional n) => NominalDiffTime -> n
 
-"realToFrac∷Real→DiffTime"
+"realToFrac/Real-DiffTime"
     realToFrac = fromSeconds :: (Real n) => n -> DiffTime
-"realToFrac∷Real→NominalDiffTime"
+"realToFrac/Real-NominalDiffTime"
     realToFrac = fromSeconds :: (Real n) => n -> NominalDiffTime #-}
 
diff --git a/tests/rewrite.hs b/tests/rewrite.hs
--- a/tests/rewrite.hs
+++ b/tests/rewrite.hs
@@ -1,7 +1,11 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 import Prelude
-import Control.Monad
+#if !MIN_VERSION_base(4,6,0)
+    hiding (catch)
+#endif
+import Control.Exception
 import Data.Int
 import Data.Map (Map)
 import qualified Data.Map as Map
@@ -30,8 +34,8 @@
 hook :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
 hook pd lbi uh bf = do
     -- more reliable way to force a rebuild?
-    forM_ ["hi", "o"] $ \ suf -> removeFile $
-        buildDir lbi </> "rewrite" </> "rewrite-tmp" </> "Main" <.> suf
+    removeDirectoryRecursive (buildDir lbi </> "rewrite" </> "rewrite-tmp")
+        `catch` \ e -> return () `const` (e :: IOException)
 
     (err, (out, _)) <- redirectStderr . redirectStdout $
         buildHook simpleUserHooks pd lbi uh bf
@@ -63,16 +67,16 @@
 
 wanted :: Map Text ()
 wanted = Map.fromList $ flip (,) () `fmap`
-    [ "fromSeconds∷Float"
-    , "fromSeconds∷Double"
-    , "fromSeconds∷Int"
-    , "fromSeconds∷Int64"
-    , "fromSeconds∷Integer"
-    , "realToFrac∷DiffTime→NominalDiffTime"
-    , "realToFrac∷NominalDiffTime→DiffTime"
-    , "realToFrac∷DiffTime→Fractional"
-    , "realToFrac∷NominalDiffTime→Fractional"
-    , "realToFrac∷Real→DiffTime"
-    , "realToFrac∷Real→NominalDiffTime"
+    [ "fromSeconds/Float"
+    , "fromSeconds/Double"
+    , "fromSeconds/Int"
+    , "fromSeconds/Int64"
+    , "fromSeconds/Integer"
+    , "realToFrac/DiffTime-NominalDiffTime"
+    , "realToFrac/NominalDiffTime-DiffTime"
+    , "realToFrac/DiffTime-Fractional"
+    , "realToFrac/NominalDiffTime-Fractional"
+    , "realToFrac/Real-DiffTime"
+    , "realToFrac/Real-NominalDiffTime"
     ]
 
diff --git a/thyme.cabal b/thyme.cabal
--- a/thyme.cabal
+++ b/thyme.cabal
@@ -1,5 +1,5 @@
 name:           thyme
-version:        0.3.0.0
+version:        0.3.0.1
 synopsis:       A faster time library
 description:
     Thyme is a rewrite of the fine @time@ library, with a particular focus
