diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-The "MIT" License
+Copyright 2004-2008 by Audrey Tang
 
 Permission is hereby granted, free of charge, to any person obtaining
 a copy of this software and associated documentation files (the
diff --git a/OpenAFP.cabal b/OpenAFP.cabal
--- a/OpenAFP.cabal
+++ b/OpenAFP.cabal
@@ -1,5 +1,5 @@
 Name:               OpenAFP
-Version:            1.1
+Version:            1.2
 License:            BSD3
 License-file:       LICENSE
 Author:             Audrey Tang
diff --git a/src/OpenAFP/Prelude/Utils.hs b/src/OpenAFP/Prelude/Utils.hs
--- a/src/OpenAFP/Prelude/Utils.hs
+++ b/src/OpenAFP/Prelude/Utils.hs
@@ -104,10 +104,10 @@
 fromJust'' (Just x) = x
 fromJust'' Nothing = error "fromJust2 - fail"
 
-matchRecord :: (RecData a b, Eq c) => c -> (b -> c) -> a -> b
+matchRecord :: (DataOf a ~ b, RecOf b ~ a, RecData a b, Eq c) => c -> (b -> c) -> a -> b
 matchRecord n f = findRecord ((n ==) . f) . readData
 
-matchRecordMaybe :: (RecData a b, Eq c) => c -> (b -> c) -> a -> Maybe b
+matchRecordMaybe :: (DataOf a ~ b, RecOf b ~ a, RecData a b, Eq c) => c -> (b -> c) -> a -> Maybe b
 matchRecordMaybe n f = findRecordMaybe ((n ==) . f) . readData
 
 findRecordMaybe :: (a -> Bool) -> [Record a] -> Maybe a
diff --git a/src/OpenAFP/Types/Chunk.hs b/src/OpenAFP/Types/Chunk.hs
--- a/src/OpenAFP/Types/Chunk.hs
+++ b/src/OpenAFP/Types/Chunk.hs
@@ -125,12 +125,12 @@
 
 -- | The RecData class unifies a Rec (parent) with its contained
 --   Rec data type (children).
-class (Rec a, Rec b, DataOf a ~ b, RecOf b ~ a) => RecData a b where
+class (Rec a, Rec b) => RecData a b where
     type DataOf a
     type RecOf b
-    readData :: a -> [Record b]
+    readData :: (DataOf a ~ b, RecOf b ~ a) => a -> [Record b]
     readData = error "readData not defined"
-    writeData :: a -> [Record b] -> a
+    writeData :: (DataOf a ~ b, RecOf b ~ a) => a -> [Record b] -> a
     writeData = error "writeData not defined"
 
 instance (Rec a, Binary a) => Storable [a] where
