diff --git a/Data/Default/Class.hs b/Data/Default/Class.hs
--- a/Data/Default/Class.hs
+++ b/Data/Default/Class.hs
@@ -29,12 +29,48 @@
 
 -}
 
+{-# LANGUAGE CPP #-}
+
+#if __GLASGOW_HASKELL__ >= 706
+#define HAVE_GHC_706 1
+#else
+#define HAVE_GHC_706 0
+#endif
+
+#if HAVE_GHC_706
+{-# LANGUAGE DefaultSignatures, TypeOperators, FlexibleContexts #-}
+#endif
+
 module Data.Default.Class (
 -- | This module defines a class for types with a default value.
     Default(..)
 ) where
 
+#if HAVE_GHC_706
+import GHC.Generics
+
+class GDefault f where
+    gdef :: f a
+
+instance GDefault U1 where
+    gdef = U1
+
+instance (Default a) => GDefault (K1 i a) where
+    gdef = K1 def
+
+instance (GDefault a, GDefault b) => GDefault (a :*: b) where
+    gdef = gdef :*: gdef
+
+instance (GDefault a) => GDefault (M1 i c a) where
+    gdef = M1 gdef
+#endif
+
 -- | A class for types with a default value.
 class Default a where
     -- | The default value for this type.
     def :: a
+
+#if HAVE_GHC_706
+    default def :: (Generic a, GDefault (Rep a)) => a
+    def = to gdef
+#endif
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -14,13 +14,13 @@
   may be used to endorse or promote products derived from this software
   without specific prior written permission.
 
-THIS SOFTWARE IS PROVIDED BY LUKAS MAI AND CONTRIBUTORS "AS IS" AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/data-default-class.cabal b/data-default-class.cabal
--- a/data-default-class.cabal
+++ b/data-default-class.cabal
@@ -1,5 +1,5 @@
 Name:            data-default-class
-Version:         0.0.1
+Version:         0.1.0
 Cabal-Version:   >= 1.6
 Category:        Data
 Synopsis:        A class for types with a default value
