diff --git a/lib/hs/src/Thrift.hs b/lib/hs/src/Thrift.hs
index 71957c4..9b4d41e 100644
--- a/lib/hs/src/Thrift.hs
+++ b/lib/hs/src/Thrift.hs
@@ -90,27 +90,27 @@
 readAppExn :: (Protocol p, Transport t) => p t -> IO AppExn
 readAppExn pt = do
     _ <- readStructBegin pt
-    rec <- readAppExnFields pt (AppExn {ae_type = undefined, ae_message = undefined})
+    record <- readAppExnFields pt (AppExn {ae_type = undefined, ae_message = undefined})
     readStructEnd pt
-    return rec
+    return record
 
 readAppExnFields :: forall (a :: * -> *) t. (Protocol a, Transport t) => a t -> AppExn -> IO AppExn 
-readAppExnFields pt rec = do
+readAppExnFields pt record = do
     (_, ft, tag) <- readFieldBegin pt
     if ft == T_STOP
-        then return rec
+        then return record
         else case tag of
                  1 -> if ft == T_STRING then
                           do s <- readString pt
-                             readAppExnFields pt rec{ae_message = s}
+                             readAppExnFields pt record{ae_message = s}
                           else do skip pt ft
-                                  readAppExnFields pt rec
+                                  readAppExnFields pt record
                  2 -> if ft == T_I32 then
                           do i <- readI32 pt
-                             readAppExnFields pt rec{ae_type = (toEnum $ fromIntegral i)}
+                             readAppExnFields pt record{ae_type = (toEnum $ fromIntegral i)}
                           else do skip pt ft
-                                  readAppExnFields pt rec
+                                  readAppExnFields pt record
                  _ -> do skip pt ft
                          readFieldEnd pt
-                         readAppExnFields pt rec
+                         readAppExnFields pt record
 
