diff --git a/Database/Cypher.hs b/Database/Cypher.hs
--- a/Database/Cypher.hs
+++ b/Database/Cypher.hs
@@ -1,7 +1,9 @@
 {-# LANGUAGE OverloadedStrings, TemplateHaskell, DeriveDataTypeable, ScopedTypeVariables, FlexibleInstances, MultiParamTypeClasses #-}
 module Database.Cypher (
 	Cypher,
-	Entity(..),
+	entity_data,
+	entity_id,
+	Entity,
 	CypherResult(..),
 	LuceneQuery,
 	runCypher,
@@ -97,10 +99,16 @@
 
 -- | A neo4j node or edge
 data Entity a = Entity {
-	entity_id :: String,
+	entity_id :: String, -- ^ The Neo4j node or relationship id
 	entity_properties :: String,
-	entity_data :: a
-} deriving (Show, Eq)
+	entity_data :: a -- ^ The Haskell datatype stored in the Neo4j node or relationship
+} deriving (Show)
+
+instance Eq (Entity a) where
+	a == b = entity_id a == entity_id b
+
+instance Ord (Entity a) where
+	compare a b = compare (entity_id a) (entity_id b)
 
 instance FromJSON a => FromJSON (Entity a) where
 	parseJSON (Object v) = Entity <$>
diff --git a/cypher.cabal b/cypher.cabal
--- a/cypher.cabal
+++ b/cypher.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.8
+Version:             0.8.1
 
 -- A short (one-line) description of the package.
 Synopsis:            Haskell bindings for the neo4j "cypher" query language
