diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -5,13 +5,28 @@
 result = $(result_dir)/HList.hs
 
 .PHONY: all
-all: $(result)
+all: $(result) check
 
 $(result): $(script) $(incomplete_source)
 	mkdir -p $(result_dir)
 	cat $(incomplete_source) > $(result)
 	runhaskell $< $(instances_number) >> $(result)
 
+.PHONY: sdist
+sdist: $(result)
+	cabal configure
+	cabal sdist
+
+.PHONY: check
+check: sdist
+	cabal build
+	cabal haddock
+	cabal check
+
+.PHONY: upload
+upload: check
+	cabal upload
+
 .PHONY: clean
 clean:
-	rm -f $(result)
+	cabal clean
diff --git a/Tools/IncompleteHList.hs b/Tools/IncompleteHList.hs
--- a/Tools/IncompleteHList.hs
+++ b/Tools/IncompleteHList.hs
@@ -7,7 +7,7 @@
 This module contains overloaded functions for creating an HList from a tuple or
 a tuple from an HList.
 -}
-module HList (HLst(toHList, fromHList)) where
+module Data.Tuple.HList (HLst(toHList, fromHList)) where
 
 import Data.Tuple.OneTuple (OneTuple(OneTuple))
 import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)
@@ -21,3 +21,6 @@
 instance HLst (OneTuple a1) (a1 :*: HNil) where
     toHList   (OneTuple a1)   = hEnd $ hBuild a1
     fromHList (HCons a1 HNil) = OneTuple a1
+
+---- The code below is automatically generated by Tools/generateInstances.hs ----
+
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
@@ -7,7 +7,7 @@
 This module contains overloaded functions for creating an HList from a tuple or
 a tuple from an HList.
 -}
-module HList (HLst(toHList, fromHList)) where
+module Data.Tuple.HList (HLst(toHList, fromHList)) where
 
 import Data.Tuple.OneTuple (OneTuple(OneTuple))
 import Data.HList (HNil(HNil), HCons(HCons), (:*:), hEnd, hBuild)
@@ -21,6 +21,9 @@
 instance HLst (OneTuple a1) (a1 :*: HNil) 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
     toHList (a1, a2) = hEnd $ hBuild a1 a2
     fromHList (HCons a1 (HCons a2 HNil)) = (a1, a2)
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.5
+version:             0.1.0.6
 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
