diff --git a/hydrogen-prelude.cabal b/hydrogen-prelude.cabal
--- a/hydrogen-prelude.cabal
+++ b/hydrogen-prelude.cabal
@@ -1,5 +1,5 @@
 name:                 hydrogen-prelude
-version:              0.6.0.1
+version:              0.7
 homepage:             https://github.com/scravy/hydrogen-prelude
 synopsis:             Hydrogen Prelude
 license:              BSD3
@@ -17,7 +17,6 @@
 
 library
   exposed-modules:    Hydrogen.Prelude
-                      , Hydrogen.Prelude.Extra
                       , Hydrogen.Prelude.IO
                       , Hydrogen.Prelude.System
   build-depends:      base ==4.7.*
@@ -27,7 +26,7 @@
                       , directory ==1.2.*
                       , filepath ==1.3.*
                       , hashable ==1.2.*
-                      , hydrogen-version >=1.0.1
+                      , hydrogen-version >=1.1
                       , process ==1.2.*
                       , random ==1.0.*
                       , regex-base ==0.93.*
@@ -40,6 +39,10 @@
   ghc-options:        -Wall
   default-language:   Haskell2010
   default-extensions: CPP
+                      , DefaultSignatures
+                      , DeriveDataTypeable
+                      , DeriveFunctor
+                      , DeriveGeneric
                       , FlexibleInstances
                       , FlexibleContexts
                       , GADTs
@@ -48,8 +51,7 @@
                       , NoImplicitPrelude
                       , PackageImports
                       , RankNTypes
+                      , RecordWildCards
                       , ScopedTypeVariables
                       , StandaloneDeriving
-                      , DefaultSignatures
-                      , DeriveFunctor
-                      , DeriveGeneric
+
diff --git a/src/Hydrogen/Prelude.hs b/src/Hydrogen/Prelude.hs
--- a/src/Hydrogen/Prelude.hs
+++ b/src/Hydrogen/Prelude.hs
@@ -33,9 +33,18 @@
   , module Hydrogen.Version
   , module Numeric
   , module Text.Printf
-  , (.&), (.|), (=~), (=~~)
+  , (.&)
+  , (.|)
+  , (=~)
+  , (=~~)
   , for
-  , Generic, Map, Set
+  , uuidFromString
+  , randomUUID
+  , UUID
+  , Generic
+  , Map
+  , Set
+  , ShowBox
   ) where
 
 import "base" Prelude hiding (
@@ -128,8 +137,38 @@
 
 import "hydrogen-version" Hydrogen.Version
 
+import "uuid" Data.UUID (UUID)
+
+import qualified "uuid" Data.UUID
+import qualified "uuid" Data.UUID.V4
+
 deriving instance Eq ZonedTime
+deriving instance Generic Day
+deriving instance Generic LocalTime
+deriving instance Generic TimeZone
+deriving instance Generic TimeOfDay
+deriving instance Generic UniversalTime
 
+instance Serialize Day
+instance Serialize LocalTime
+instance Serialize TimeOfDay
+instance Serialize TimeZone
+instance Serialize UniversalTime
+
+instance Serialize (Fixed E12) where
+    put (MkFixed int) = put int
+
+    get = MkFixed <$> get
+
+instance Serialize UUID where
+
+    put uuid = do
+        let p = putWord32be
+            (w1, w2, w3, w4) = Data.UUID.toWords uuid
+        p w1 >> p w2 >> p w3 >> p w4
+
+    get = let g = getWord32be in liftM4 Data.UUID.fromWords g g g g
+      
 data ShowBox where
     ShowBox :: forall a. (Show a) => a -> ShowBox
 
@@ -145,4 +184,10 @@
 
 __ :: a
 __ = error "Hydrogen.Prelude.undefined"
+
+uuidFromString :: String -> Maybe UUID
+uuidFromString = Data.UUID.fromString
+
+randomUUID :: IO UUID
+randomUUID = Data.UUID.V4.nextRandom
 
diff --git a/src/Hydrogen/Prelude/Extra.hs b/src/Hydrogen/Prelude/Extra.hs
deleted file mode 100644
--- a/src/Hydrogen/Prelude/Extra.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Hydrogen.Prelude.Extra (
-    uuidFromString
-  , randomUUID
-  , UUID
-  ) where
-
-import Hydrogen.Prelude
-
-import "uuid" Data.UUID (UUID)
-
-import qualified "uuid" Data.UUID
-import qualified "uuid" Data.UUID.V4
-
-uuidFromString :: String -> Maybe UUID
-uuidFromString = Data.UUID.fromString
-
-randomUUID :: IO UUID
-randomUUID = Data.UUID.V4.nextRandom
-
