diff --git a/Text/URI.hs b/Text/URI.hs
--- a/Text/URI.hs
+++ b/Text/URI.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE DeriveDataTypeable #-}
 
 module Text.URI (
 	URI(..)
@@ -27,11 +28,13 @@
 	, uriQueryItems
 	) where
 
+import Codec.Binary.UTF8.String
 import Data.Char
+import Data.Data
 import Data.List
 import Data.Maybe
+import Data.Typeable
 import Data.Word
-import Codec.Binary.UTF8.String
 import Safe
 import Text.Parsec
 import Text.Printf
@@ -57,7 +60,7 @@
 	, uriPath :: String -- ^ @/ghc@
 	, uriQuery :: Maybe String -- ^ @query@
 	, uriFragment :: Maybe String -- ^ @frag@
-	} deriving (Eq)
+	} deriving (Eq, Ord, Typeable, Data)
 
 -- | Blank URI
 nullURI :: URI
diff --git a/uri.cabal b/uri.cabal
--- a/uri.cabal
+++ b/uri.cabal
@@ -1,5 +1,5 @@
 Name: uri
-Version: 0.1.6.2
+Version: 0.1.6.3
 Synopsis: Library for working with URIs
 Category: Text
 Description: Library for working with URIs, including parsing, rendering, merging, escaping
