THRIFT-1598 Update Haskell generated code to use Text, Hash{Map,Set}, Vector
Patch: Itai Zukerman

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1340014 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/hs/src/Thrift.hs b/lib/hs/src/Thrift.hs
index e57cff5..42f5d32 100644
--- a/lib/hs/src/Thrift.hs
+++ b/lib/hs/src/Thrift.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RankNTypes #-}
 --
 -- Licensed to the Apache Software Foundation (ASF) under one
@@ -33,6 +34,7 @@
 import Control.Monad ( when )
 import Control.Exception
 
+import Data.Text.Lazy ( pack, unpack )
 import Data.Typeable ( Typeable )
 
 import Thrift.Transport
@@ -84,7 +86,7 @@
 
     when (ae_message ae /= "") $ do
         writeFieldBegin pt ("message", T_STRING , 1)
-        writeString pt (ae_message ae)
+        writeString pt (pack $ ae_message ae)
         writeFieldEnd pt
 
     writeFieldBegin pt ("type", T_I32, 2);
@@ -108,7 +110,7 @@
         else case tag of
                  1 -> if ft == T_STRING then
                           do s <- readString pt
-                             readAppExnFields pt record{ae_message = s}
+                             readAppExnFields pt record{ae_message = unpack s}
                           else do skip pt ft
                                   readAppExnFields pt record
                  2 -> if ft == T_I32 then