diff --git a/Tools/IncompleteHList.hs b/Tools/IncompleteHList.hs
--- a/Tools/IncompleteHList.hs
+++ b/Tools/IncompleteHList.hs
@@ -2,6 +2,8 @@
 {-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE GADTs #-}
 
 {- |
 This module contains overloaded functions for creating an HList from a tuple or
@@ -10,7 +12,7 @@
 module Data.Tuple.HList (HLst(toHList, fromHList)) where
 
 import Data.Tuple.OneTuple (OneTuple(OneTuple))
-import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)
+import Data.HList (HList(HNil, HCons), hEnd, hBuild)
 
 class HLst a b | a -> b, b -> a where
     -- |Creates an HList from a tuple.
@@ -18,7 +20,7 @@
     -- |Creates a tuple from an HList.
     fromHList :: b -> a
 
-instance HLst (OneTuple a1) (a1 :*: HNil) where
+instance HLst (OneTuple a1) (HList '[a1]) where
     toHList   (OneTuple a1)   = hEnd $ hBuild a1
     fromHList (HCons a1 HNil) = OneTuple a1
 
diff --git a/Tools/generateInstances.hs b/Tools/generateInstances.hs
--- a/Tools/generateInstances.hs
+++ b/Tools/generateInstances.hs
@@ -23,6 +23,6 @@
         tupleType      =  tuple
         tuplePattern   = tuple
         tupleConstruct = tuple
-        hlistType      = "(" ++ intercalate " :*: " (vars ++ ["HNil"]) ++ ")"
+        hlistType      = "(HList '[" ++ intercalate ", " vars ++ "])"
         hlistPattern   = intercalate " " (map ("(HCons "++) vars) ++ " HNil" ++ take i (repeat ')')
         hlistConstruct = "hEnd $ hBuild " ++ unwords vars
diff --git a/src/Data/Tuple/HList.hs b/src/Data/Tuple/HList.hs
--- a/src/Data/Tuple/HList.hs
+++ b/src/Data/Tuple/HList.hs
@@ -2,6 +2,8 @@
 {-# LANGUAGE FunctionalDependencies #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE TypeOperators #-}
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE GADTs #-}
 
 {- |
 This module contains overloaded functions for creating an HList from a tuple or
@@ -10,7 +12,7 @@
 module Data.Tuple.HList (HLst(toHList, fromHList)) where
 
 import Data.Tuple.OneTuple (OneTuple(OneTuple))
-import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)
+import Data.HList (HList(HNil, HCons), hEnd, hBuild)
 
 class HLst a b | a -> b, b -> a where
     -- |Creates an HList from a tuple.
@@ -18,64 +20,64 @@
     -- |Creates a tuple from an HList.
     fromHList :: b -> a
 
-instance HLst (OneTuple a1) (a1 :*: HNil) where
+instance HLst (OneTuple a1) (HList '[a1]) where
     toHList   (OneTuple a1)   = hEnd $ hBuild a1
     fromHList (HCons a1 HNil) = OneTuple a1
 
 ---- The code below is automatically generated by Tools/generateInstances.hs ----
 
-instance HLst (a1, a2) (a1 :*: a2 :*: HNil) where
+instance HLst (a1, a2) (HList '[a1, a2]) where
     toHList (a1, a2) = hEnd $ hBuild a1 a2
     fromHList (HCons a1 (HCons a2 HNil)) = (a1, a2)
 
-instance HLst (a1, a2, a3) (a1 :*: a2 :*: a3 :*: HNil) where
+instance HLst (a1, a2, a3) (HList '[a1, a2, a3]) where
     toHList (a1, a2, a3) = hEnd $ hBuild a1 a2 a3
     fromHList (HCons a1 (HCons a2 (HCons a3 HNil))) = (a1, a2, a3)
 
-instance HLst (a1, a2, a3, a4) (a1 :*: a2 :*: a3 :*: a4 :*: HNil) where
+instance HLst (a1, a2, a3, a4) (HList '[a1, a2, a3, a4]) where
     toHList (a1, a2, a3, a4) = hEnd $ hBuild a1 a2 a3 a4
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 HNil)))) = (a1, a2, a3, a4)
 
-instance HLst (a1, a2, a3, a4, a5) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5) (HList '[a1, a2, a3, a4, a5]) where
     toHList (a1, a2, a3, a4, a5) = hEnd $ hBuild a1 a2 a3 a4 a5
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 HNil))))) = (a1, a2, a3, a4, a5)
 
-instance HLst (a1, a2, a3, a4, a5, a6) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6) (HList '[a1, a2, a3, a4, a5, a6]) where
     toHList (a1, a2, a3, a4, a5, a6) = hEnd $ hBuild a1 a2 a3 a4 a5 a6
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 HNil)))))) = (a1, a2, a3, a4, a5, a6)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7) (HList '[a1, a2, a3, a4, a5, a6, a7]) where
     toHList (a1, a2, a3, a4, a5, a6, a7) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 HNil))))))) = (a1, a2, a3, a4, a5, a6, a7)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8) (HList '[a1, a2, a3, a4, a5, a6, a7, a8]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 HNil)))))))) = (a1, a2, a3, a4, a5, a6, a7, a8)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 HNil))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 HNil)))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 HNil))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 HNil)))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 HNil))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: a14 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 (HCons a14 HNil)))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
 
-instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (a1 :*: a2 :*: a3 :*: a4 :*: a5 :*: a6 :*: a7 :*: a8 :*: a9 :*: a10 :*: a11 :*: a12 :*: a13 :*: a14 :*: a15 :*: HNil) where
+instance HLst (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) (HList '[a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15]) where
     toHList (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) = hEnd $ hBuild a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15
     fromHList (HCons a1 (HCons a2 (HCons a3 (HCons a4 (HCons a5 (HCons a6 (HCons a7 (HCons a8 (HCons a9 (HCons a10 (HCons a11 (HCons a12 (HCons a13 (HCons a14 (HCons a15 HNil))))))))))))))) = (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
diff --git a/tuple-hlist.cabal b/tuple-hlist.cabal
--- a/tuple-hlist.cabal
+++ b/tuple-hlist.cabal
@@ -1,5 +1,5 @@
 name:                tuple-hlist
-version:             0.1.0.8
+version:             0.2.0.0
 synopsis:            Functions to convert between tuples and HLists.
 description:         Functions to convert between tuples and HLists, overloaded on tuple size.
 homepage:            http://github.com/dudebout/tuple-hlist
@@ -7,7 +7,7 @@
 license-file:        LICENSE
 author:              Nicolas Dudebout
 maintainer:          Nicolas Dudebout <nicolas.dudebout@gatech.edu>
-copyright:           (c) 2012, Nicolas Dudebout <nicolas.dudebout@gatech.edu>
+copyright:           (c) 2012-2014, Nicolas Dudebout <nicolas.dudebout@gatech.edu>
 category:            Data
 build-type:          Simple
 cabal-version:       >=1.8
@@ -19,9 +19,9 @@
 
 library
   exposed-modules:     Data.Tuple.HList
-  build-depends:       base     >= 4.5 && < 5
+  build-depends:       base     >= 4.6 && < 5
                      , OneTuple >= 0.2 && < 0.3
-                     , HList    >= 0.2 && < 0.3
+                     , HList    >= 0.3 && < 0.4
   hs-source-dirs:      src
 
 source-repository head
