diff --git a/Numeric/Units/Dimensional.lhs b/Numeric/Units/Dimensional.lhs
--- a/Numeric/Units/Dimensional.lhs
+++ b/Numeric/Units/Dimensional.lhs
@@ -54,6 +54,7 @@
 >            , FlexibleInstances
 >            , TypeSynonymInstances
 >            , FlexibleContexts
+>            , GeneralizedNewtypeDeriving
 > #-}
 
 > {- |
@@ -73,7 +74,7 @@
 >   where
 
 > import Prelude
->   ( Show, Eq, Ord, Num, Fractional, Floating, RealFloat, Functor, fmap
+>   ( Show, Eq, Ord, Enum, Num, Fractional, Floating, RealFloat, Functor, fmap
 >   , (.), flip, show, (++), undefined, otherwise, (==), String, unwords
 >   , map, foldr, null, Integer
 >   )
@@ -108,7 +109,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)
+> newtype Dimensional v d a = Dimensional a deriving (Eq, Ord, Enum)
 
 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.
diff --git a/dimensional.cabal b/dimensional.cabal
--- a/dimensional.cabal
+++ b/dimensional.cabal
@@ -1,5 +1,5 @@
 Name:                dimensional
-Version:             0.9
+Version:             0.10
 License:             BSD3
 License-File:        LICENSE
 Copyright:           Bjorn Buckwalter 2006-2011
