diff --git a/genvalidity-time.cabal b/genvalidity-time.cabal
--- a/genvalidity-time.cabal
+++ b/genvalidity-time.cabal
@@ -1,5 +1,5 @@
 name: genvalidity-time
-version: 0.0.0.2
+version: 0.1.0.0
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
@@ -26,10 +26,10 @@
         Data.GenValidity.Time.LocalTime
     build-depends:
         base >=4.7 && <5,
-        validity-time >=0.0 && <0.1,
-        genvalidity >=0.3.0.1 && <0.4,
-        time,
-        QuickCheck >= 2.7
+        validity-time >=0.1 && <0.2,
+        genvalidity >=0.4 && <0.5,
+        time -any,
+        QuickCheck >=2.7
     default-language: Haskell2010
     hs-source-dirs: src
 
diff --git a/src/Data/GenValidity/Time/Calendar.hs b/src/Data/GenValidity/Time/Calendar.hs
--- a/src/Data/GenValidity/Time/Calendar.hs
+++ b/src/Data/GenValidity/Time/Calendar.hs
@@ -11,6 +11,7 @@
 #endif
 instance GenUnchecked Day where
     genUnchecked = ModifiedJulianDay <$> genUnchecked
+    shrinkUnchecked _ = []
 
 instance GenValid Day where
     genValid = ModifiedJulianDay <$> genValid
diff --git a/src/Data/GenValidity/Time/Clock.hs b/src/Data/GenValidity/Time/Clock.hs
--- a/src/Data/GenValidity/Time/Clock.hs
+++ b/src/Data/GenValidity/Time/Clock.hs
@@ -15,18 +15,23 @@
 
 instance GenUnchecked UniversalTime where
     genUnchecked = ModJulianDate <$> genUnchecked
+    shrinkUnchecked = fmap ModJulianDate . shrinkUnchecked . getModJulianDate
 
 instance GenValid UniversalTime where
     genValid = ModJulianDate <$> genValid
 
 instance GenUnchecked DiffTime where
     genUnchecked = picosecondsToDiffTime <$> genUnchecked
+    shrinkUnchecked =
+        fmap fromRational . shrinkUnchecked . toRational
 
 instance GenValid DiffTime where
     genValid = picosecondsToDiffTime <$> genValid
 
 instance GenUnchecked UTCTime where
     genUnchecked = UTCTime <$> genUnchecked <*> genUnchecked
+    shrinkUnchecked (UTCTime d dt) =
+        [UTCTime d' dt' | (d', dt') <- shrinkUnchecked (d, dt)]
 
 instance GenValid UTCTime where
     genValid =
@@ -36,6 +41,7 @@
 instance GenInvalid UTCTime
 
 instance GenUnchecked NominalDiffTime where
-    genUnchecked = (fromIntegral :: Integer -> NominalDiffTime) <$> genUnchecked
+    genUnchecked = diffUTCTime <$> genUnchecked <*> genUnchecked
+    shrinkUnchecked _ = []
 
 instance GenValid NominalDiffTime
diff --git a/src/Data/GenValidity/Time/Format.hs b/src/Data/GenValidity/Time/Format.hs
--- a/src/Data/GenValidity/Time/Format.hs
+++ b/src/Data/GenValidity/Time/Format.hs
@@ -16,11 +16,11 @@
         genUnchecked <*>
         genUnchecked <*>
         genUnchecked
+    shrinkUnchecked _ = []
 
 instance GenValid TimeLocale where
     genValid =
-        TimeLocale <$> genValid <*> genValid <*> genValid <*>
-        genValid <*>
+        TimeLocale <$> genValid <*> genValid <*> genValid <*> genValid <*>
         genValid <*>
         genValid <*>
         genValid <*>
diff --git a/src/Data/GenValidity/Time/LocalTime.hs b/src/Data/GenValidity/Time/LocalTime.hs
--- a/src/Data/GenValidity/Time/LocalTime.hs
+++ b/src/Data/GenValidity/Time/LocalTime.hs
@@ -15,12 +15,16 @@
 
 instance GenUnchecked TimeZone where
     genUnchecked = TimeZone <$> genUnchecked <*> genUnchecked <*> genUnchecked
+    shrinkUnchecked (TimeZone m so n) =
+        [TimeZone m' so' n' | (m', so', n') <- shrinkUnchecked (m, so, n)]
 
 instance GenValid TimeZone where
     genValid = TimeZone <$> genValid <*> genValid <*> genValid
 
 instance GenUnchecked TimeOfDay where
     genUnchecked = TimeOfDay <$> genUnchecked <*> genUnchecked <*> genUnchecked
+    shrinkUnchecked (TimeOfDay h m s) =
+        [TimeOfDay h' m' s' | (h', m', s') <- shrinkUnchecked (h, m, s)]
 
 instance GenValid TimeOfDay where
     genValid =
@@ -32,6 +36,8 @@
 
 instance GenUnchecked LocalTime where
     genUnchecked = LocalTime <$> genUnchecked <*> genUnchecked
+    shrinkUnchecked (LocalTime d tod) =
+        [LocalTime d' tod' | (d', tod') <- shrinkUnchecked (d, tod)]
 
 instance GenValid LocalTime where
     genValid = LocalTime <$> genValid <*> genValid
@@ -40,6 +46,8 @@
 
 instance GenUnchecked ZonedTime where
     genUnchecked = ZonedTime <$> genUnchecked <*> genUnchecked
+    shrinkUnchecked (ZonedTime lt tz) =
+        [ZonedTime lt' tz' | (lt', tz') <- shrinkUnchecked (lt, tz)]
 
 instance GenValid ZonedTime where
     genValid = ZonedTime <$> genValid <*> genValid
