--- haskell-edison-core-1.2.1.3/src/Data/Edison/Coll/MinHeap.hs~	2008-10-22 22:23:50.000000000 -0700
+++ haskell-edison-core-1.2.1.3/src/Data/Edison/Coll/MinHeap.hs	2010-10-13 13:48:58.471874352 -0700
@@ -39,15 +39,17 @@
 ) where
 
 import Prelude hiding (null,foldr,foldl,foldr1,foldl1,lookup,filter)
+import Data.Data (Data)
 import qualified Data.Edison.Coll as C
 import qualified Data.Edison.Seq as S
 import Data.Edison.Coll.Defaults
 import Data.Edison.Seq.Defaults (tokenMatch,maybeParens)
 import Data.Monoid
+import Data.Typeable (Typeable)
 import Control.Monad
 import Test.QuickCheck
 
-data Min h a = E | M a h  deriving (Eq)
+data Min h a = E | M a h  deriving (Eq, Data, Typeable)
 
 moduleName :: String
 moduleName = "Data.Edison.Coll.MinHeap"
--- haskell-edison-core-1.2.1.3/src/Data/Edison/Coll/SplayHeap.hs.orig	2010-10-13 15:27:14.995874897 -0700
+++ haskell-edison-core-1.2.1.3/src/Data/Edison/Coll/SplayHeap.hs	2010-10-13 15:19:53.152658247 -0700
@@ -44,17 +44,19 @@
 ) where
 
 import Prelude hiding (null,foldr,foldl,foldr1,foldl1,lookup,filter)
+import Data.Data (Data)
 import qualified Data.Edison.Coll as C
 import qualified Data.Edison.Seq as S
 import Data.Edison.Coll.Defaults
 import Data.Monoid
+import Data.Typeable (Typeable)
 import Control.Monad
 import Test.QuickCheck
 
 moduleName :: String
 moduleName = "Data.Edison.Coll.SplayHeap"
 
-data Heap a = E | T (Heap a) a (Heap a)
+data Heap a = E | T (Heap a) a (Heap a) deriving (Data, Typeable)
 
 -- invariants:
 --    * Binary Search Tree order (allowing duplicates)
