diff --git a/Numeric/Units/Dimensional.lhs b/Numeric/Units/Dimensional.lhs
--- a/Numeric/Units/Dimensional.lhs
+++ b/Numeric/Units/Dimensional.lhs
@@ -55,6 +55,7 @@
 >            , TypeSynonymInstances
 >            , FlexibleContexts
 >            , GeneralizedNewtypeDeriving
+>            , DeriveDataTypeable
 > #-}
 
 > {- |
@@ -81,6 +82,7 @@
 > import qualified Prelude
 > import Data.List (genericLength)
 > import Data.Maybe (Maybe (Just, Nothing), catMaybes)
+> import Data.Typeable (Typeable)
 > import Numeric.NumType
 >   ( NumType, NonZero, PosType, Zero, toNum, Sum
 >   , Pos1, Pos2, pos2, Pos3, pos3
@@ -109,7 +111,7 @@
 We call this data type 'Dimensional' to capture the notion that the
 units and quantities it represents have physical dimensions.
 
-> newtype Dimensional v d a = Dimensional a deriving (Eq, Ord, Enum)
+> newtype Dimensional v d a = Dimensional a deriving (Eq, Ord, Enum, Typeable)
 
 The type variable 'a' is the only non-phantom type variable and
 represents the numerical value of a quantity or the scale (w.r.t.
@@ -126,8 +128,8 @@
 The phantom type variable v is used to distinguish between units
 and quantities. It should be one of the following:
 
-> data DUnit
-> data DQuantity
+> data DUnit deriving Typeable
+> data DQuantity deriving Typeable
 
 For convenience we define type synonyms for units and quantities.
 
@@ -168,7 +170,7 @@
 using NumTypes. For convenience we collect all seven base dimensions
 in a data type 'Dim'.
 
-> data Dim l m t i th n j
+> data Dim l m t i th n j deriving Typeable
 
 where the respective dimensions are represented by type variables
 using the following convention.
diff --git a/dimensional.cabal b/dimensional.cabal
--- a/dimensional.cabal
+++ b/dimensional.cabal
@@ -1,5 +1,5 @@
 Name:                dimensional
-Version:             0.12
+Version:             0.12.1
 License:             BSD3
 License-File:        LICENSE
 Copyright:           Bjorn Buckwalter 2006-2013
