diff --git a/Trace/Hpc/Mix.hs b/Trace/Hpc/Mix.hs
--- a/Trace/Hpc/Mix.hs
+++ b/Trace/Hpc/Mix.hs
@@ -1,11 +1,12 @@
-#if __GLASGOW_HASKELL__ >= 701
+{-# LANGUAGE CPP #-}
+#ifdef __GLASGOW_HASKELL__
 {-# LANGUAGE Trustworthy #-}
 #endif
 ---------------------------------------------------------------
 -- Colin Runciman and Andy Gill, June 2006
 ---------------------------------------------------------------
 
--- | Datatypes and file-access routines for the per-module (.mix)
+-- | Datatypes and file-access routines for the per-module (@.mix@)
 -- indexes used by Hpc.
 module Trace.Hpc.Mix
         ( Mix(..)
@@ -33,10 +34,11 @@
 
 -- | 'Mix' is the information about a modules static properties, like
 -- location of Tix's in a file.
--- tab stops are the size of a tab in the provided line:colunm values.
+--
+-- Tab stops are the size of a tab in the provided /line:colunm/ values.
+--
 --  * In GHC, this is 1 (a tab is just a character)
---  * With hpc-tracer, this is 8 (a tab represents several spaces).
-
+--  * With @hpc-tracer@, this is 8 (a tab represents several spaces).
 data Mix = Mix
              FilePath           -- location of original file
              UTCTime            -- time of original file's last update
diff --git a/Trace/Hpc/Reflect.hsc b/Trace/Hpc/Reflect.hsc
--- a/Trace/Hpc/Reflect.hsc
+++ b/Trace/Hpc/Reflect.hsc
@@ -1,5 +1,5 @@
 {-# LANGUAGE ForeignFunctionInterface #-}
-#if __GLASGOW_HASKELL__ >= 701
+#ifdef __GLASGOW_HASKELL__
 {-# LANGUAGE Trustworthy #-}
 #endif
 
@@ -11,22 +11,6 @@
 
 import Trace.Hpc.Tix
 
-#if __GLASGOW_HASKELL__ < 608
-
--- Older GHCs don't have the info in the header files for the real
--- contents of this module to compile
-
-clearTix :: IO ()
-clearTix = error "clearTix not defined for GHC < 6.8"
-
-examineTix :: IO Tix
-examineTix = error "examineTix not defined for GHC < 6.8"
-
-updateTix :: Tix -> IO ()
-updateTix = error "updateTix not defined for GHC < 6.8"
-
-#else
-
 import Foreign.C.String
 import Foreign.Marshal.Array
 import Foreign.Ptr
@@ -93,6 +77,4 @@
 		  else True
 		]
       return ()
-
-#endif
 
diff --git a/Trace/Hpc/Tix.hs b/Trace/Hpc/Tix.hs
--- a/Trace/Hpc/Tix.hs
+++ b/Trace/Hpc/Tix.hs
@@ -1,31 +1,33 @@
-#if __GLASGOW_HASKELL__ >= 701
+{-# LANGUAGE CPP #-}
+#ifdef __GLASGOW_HASKELL__
 {-# LANGUAGE Safe #-}
 #endif
 ------------------------------------------------------------
 -- Andy Gill and Colin Runciman, June 2006
 ------------------------------------------------------------
 
--- | Datatypes and file-access routines for the tick data file 
--- used by HPC. (.tix)
-module Trace.Hpc.Tix(Tix(..), TixModule(..), 
-		     tixModuleName, tixModuleHash, tixModuleTixs,
-		     readTix, writeTix, getTixFileName) where
+-- | Datatypes and file-access routines for the tick data file
+-- (@.tix@) used by Hpc.
+module Trace.Hpc.Tix(Tix(..), TixModule(..),
+                     tixModuleName, tixModuleHash, tixModuleTixs,
+                     readTix, writeTix, getTixFileName) where
 
 import Data.List (isSuffixOf)
 import Trace.Hpc.Util (Hash, catchIO)
 
--- 'Tix ' is the storage format for our dynamic imformation about what
--- boxes are ticked.
+-- | 'Tix' is the storage format for our dynamic imformation about
+-- what boxes are ticked.
 data Tix = Tix [TixModule]
-	deriving (Read, Show, Eq)
+        deriving (Read, Show, Eq)
 
-data TixModule = TixModule 
-		 String    -- module name
-		 Hash	   -- hash number
-		 Int 	   -- length of tix list (allows pre-allocation at parse time).
-		 [Integer] --  actual ticks
-	deriving (Read, Show, Eq)
+data TixModule = TixModule
+                 String    --  module name
+                 Hash      --  hash number
+                 Int       --  length of Tix list (allows pre-allocation at parse time).
+                 [Integer] --  actual ticks
+        deriving (Read, Show, Eq)
 
+-- TODO: Turn extractors below into proper 'TixModule' field-labels
 tixModuleName :: TixModule -> String
 tixModuleName (TixModule nm _ _ _) = nm
 tixModuleHash :: TixModule -> Hash
@@ -35,7 +37,7 @@
 
 -- We /always/ read and write Tix from the current working directory.
 
--- read a Tix File.
+-- | Read a @.tix@ File.
 readTix :: String
         -> IO (Maybe Tix)
 readTix tix_filename =
@@ -43,11 +45,11 @@
               return $ Just $ read contents)
           (\ _ -> return $ Nothing)
 
--- write a Tix File.
-writeTix :: String 
-	 -> Tix 
-	 -> IO ()
-writeTix name tix = 
+-- | Write a @.tix@ File.
+writeTix :: String
+         -> Tix
+         -> IO ()
+writeTix name tix =
   writeFile name (show tix)
 
 {-
@@ -55,11 +57,10 @@
 tixName name = name ++ ".tix"
 -}
 
--- getTixFullName takes a binary or .tix-file name,
--- and normalizes it into a .tix-file name.
+-- | 'getTixFullName' takes a binary or @.tix@-file name,
+-- and normalizes it into a @.tix@-file name.
 getTixFileName :: String -> String
-getTixFileName str | ".tix" `isSuffixOf` str 
-		   = str
-		   | otherwise
-		   = str ++ ".tix"
-
+getTixFileName str | ".tix" `isSuffixOf` str
+                   = str
+                   | otherwise
+                   = str ++ ".tix"
diff --git a/Trace/Hpc/Util.hs b/Trace/Hpc/Util.hs
--- a/Trace/Hpc/Util.hs
+++ b/Trace/Hpc/Util.hs
@@ -1,4 +1,5 @@
-#if __GLASGOW_HASKELL__ >= 701
+{-# LANGUAGE CPP #-}
+#ifdef __GLASGOW_HASKELL__
 {-# LANGUAGE Safe #-}
 #endif
 -----------------------------------------
@@ -21,26 +22,26 @@
 import Data.List(foldl')
 import Data.Char (ord)
 import Data.Bits (xor)
-import Data.Word 
+import Data.Word
 
--- | 'HpcPos' is an Hpc local rendition of a Span. 
+-- | 'HpcPos' is an Hpc local rendition of a Span.
 data HpcPos = P !Int !Int !Int !Int deriving (Eq, Ord)
 
--- | 'fromHpcPos' explodes the HpcPos into line:column-line:colunm
+-- | 'fromHpcPos' explodes the HpcPos into /line:column/-/line:colunm/
 fromHpcPos :: HpcPos -> (Int,Int,Int,Int)
 fromHpcPos (P l1 c1 l2 c2) = (l1,c1,l2,c2)
 
--- | 'toHpcPos' implodes to HpcPos, from line:column-line:colunm
+-- | 'toHpcPos' implodes to HpcPos, from /line:column/-/line:colunm/
 toHpcPos :: (Int,Int,Int,Int) -> HpcPos
 toHpcPos (l1,c1,l2,c2) = P l1 c1 l2 c2
 
--- | asks the question, is the first argument inside the second argument.
+-- | Predicate determining whether the first argument is inside the second argument.
 insideHpcPos :: HpcPos -> HpcPos -> Bool
-insideHpcPos small big = 
-	     sl1 >= bl1 &&
-	     (sl1 /= bl1 || sc1 >= bc1) &&
-	     sl2 <= bl2 &&
-	     (sl2 /= bl2 || sc2 <= bc2)
+insideHpcPos small big =
+             sl1 >= bl1 &&
+             (sl1 /= bl1 || sc1 >= bc1) &&
+             sl2 <= bl2 &&
+             (sl2 /= bl2 || sc2 <= bc2)
   where (sl1,sc1,sl2,sc2) = fromHpcPos small
         (bl1,bc1,bl2,bc2) = fromHpcPos big
 
@@ -52,11 +53,11 @@
       where
          (before,after)   = span (/= ',') pos
          (lhs0,rhs0)    = case span (/= '-') before of
-	 		       (lhs,'-':rhs) -> (lhs,rhs)
-			       (lhs,"")      -> (lhs,lhs)
-			       _ -> error "bad parse"
-         (l1,':':c1)	  = span (/= ':') lhs0
-         (l2,':':c2)	  = span (/= ':') rhs0
+                               (lhs,'-':rhs) -> (lhs,rhs)
+                               (lhs,"")      -> (lhs,lhs)
+                               _ -> error "bad parse"
+         (l1,':':c1)      = span (/= ':') lhs0
+         (l2,':':c2)      = span (/= ':') rhs0
 
 ------------------------------------------------------------------------------
 
@@ -68,9 +69,9 @@
 newtype Hash = Hash Word32 deriving (Eq)
 
 instance Read Hash where
-  readsPrec p n = [ (Hash v,rest) 
-  	          | (v,rest) <- readsPrec p n 
-		  ]
+  readsPrec p n = [ (Hash v,rest)
+                  | (v,rest) <- readsPrec p n
+                  ]
 
 instance Show Hash where
   showsPrec p (Hash n) = showsPrec p n
@@ -111,4 +112,3 @@
 
 catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
 catchIO = Exception.catch
-
diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,11 @@
+# Changelog for [`hpc` package](http://hackage.haskell.org/package/hpc)
+
+## 0.6.0.1  *Mar 2014*
+
+  * Bundled with GHC 7.8.1
+
+  * Update to Cabal 1.10 format
+
+  * Drop support for GHC prior to version 7.2.2
+
+  * Minor improvements to Haddock docs
diff --git a/hpc.cabal b/hpc.cabal
--- a/hpc.cabal
+++ b/hpc.cabal
@@ -1,35 +1,47 @@
 name:         hpc
-version:      0.6.0.0
+version:      0.6.0.1
+-- GHC 7.6.1 released with 0.6.0.0
 license:      BSD3
 license-file: LICENSE
 author:       Andy Gill
 maintainer:   libraries@haskell.org
-bug-reports: http://hackage.haskell.org/trac/ghc/newticket?component=Code%20Coverage
+bug-reports:  http://ghc.haskell.org/trac/ghc/newticket?component=Code%20Coverage
 category:     Control
 synopsis:     Code Coverage Library for Haskell
 build-type:   Simple
-Cabal-Version: >= 1.6
+cabal-version:>=1.10
+tested-with:  GHC==7.6.3, GHC==7.6.2, GHC==7.6.1, GHC==7.4.2, GHC==7.4.1, GHC==7.2.2
+description:
+    This package provides the code coverage library for Haskell.
+    .
+    See <http://www.haskell.org/haskellwiki/Haskell_program_coverage> for more
+    information.
 
+extra-source-files:
+    changelog.md
+
 source-repository head
     type:     git
-    location: http://darcs.haskell.org/packages/hpc.git/
+    location: http://git.haskell.org/packages/hpc.git
 
-Flag small_base
-  Description: Choose the new smaller, split-up base package.
+source-repository this
+    type:     git
+    location: http://git.haskell.org/packages/hpc.git
+    tag:      hpc-0.6.0.1-release
 
 Library
+    default-language: Haskell98
+    other-extensions: CPP
+
     exposed-modules:
         Trace.Hpc.Util
         Trace.Hpc.Mix
         Trace.Hpc.Tix
         Trace.Hpc.Reflect
-    extensions: CPP
-    if flag(small_base)
-        Build-Depends: base       >= 3   && < 5,
-                       directory  >= 1   && < 1.3,
-                       time                 < 1.5,
-                       containers >= 0.1 && < 0.6
-    else
-        Build-Depends: base < 3
-    ghc-options: -Wall
 
+    Build-Depends:
+        base       >= 4.4.1 && < 4.8,
+        containers >= 0.4.1 && < 0.6,
+        directory  >= 1.1   && < 1.3,
+        time       >= 1.2   && < 1.5
+    ghc-options: -Wall
