From b747be3f31bc86bbf9c67243efbf05e1b995dfe5 Mon Sep 17 00:00:00 2001
From: Matthew Pickering <matthewtpickering@gmail.com>
Date: Wed, 29 Apr 2020 15:08:07 +0100
Subject: [PATCH] use typecheck

---
 Data/Text.hs      | 5 +++--
 Data/Text/Lazy.hs | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/Data/Text.hs b/Data/Text.hs
index 8b32b02c..643b1160 100644
--- a/Data/Text.hs
+++ b/Data/Text.hs
@@ -219,7 +219,7 @@ import Control.Exception (assert)
 import Data.Char (isSpace)
 import Data.Data (Data(gfoldl, toConstr, gunfold, dataTypeOf), constrIndex,
                   Constr, mkConstr, DataType, mkDataType, Fixity(Prefix))
-import Control.Monad (foldM)
+import Control.Monad (foldM, (=<<))
 import Control.Monad.ST (ST)
 import qualified Data.Text.Array as A
 import qualified Data.List as L
@@ -255,6 +255,7 @@ import qualified GHC.Exts as Exts
 #endif
 import qualified Language.Haskell.TH.Lib as TH
 import qualified Language.Haskell.TH.Syntax as TH
+import qualified Language.Haskell.TH.Lift as TH
 #if MIN_VERSION_base(4,7,0)
 import Text.Printf (PrintfArg, formatArg, formatString)
 #endif
@@ -431,7 +432,7 @@ instance Data Text where
 instance TH.Lift Text where
   lift = TH.appE (TH.varE 'pack) . TH.stringE . unpack
 #if MIN_VERSION_template_haskell(2,16,0)
-  liftTyped = TH.unsafeTExpCoerce . TH.lift
+  liftTyped x = TH.typecheck =<< TH.lift x
 #endif
 
 #if MIN_VERSION_base(4,7,0)
diff --git a/Data/Text/Lazy.hs b/Data/Text/Lazy.hs
index be893c4c..9e130945 100644
--- a/Data/Text/Lazy.hs
+++ b/Data/Text/Lazy.hs
@@ -211,7 +211,7 @@ module Data.Text.Lazy
 import Prelude (Char, Bool(..), Maybe(..), String,
                 Eq(..), Ord(..), Ordering(..), Read(..), Show(..),
                 (&&), (||), (+), (-), (.), ($), (++),
-                error, flip, fmap, fromIntegral, not, otherwise, quot)
+                error, flip, fmap, fromIntegral, not, otherwise, quot, (=<<))
 import qualified Prelude as P
 import Control.DeepSeq (NFData(..))
 import Data.Int (Int64)
@@ -247,6 +247,7 @@ import qualified GHC.Base as GHC
 import qualified GHC.Exts as Exts
 #endif
 import GHC.Prim (Addr#)
+import qualified Language.Haskell.TH as TH
 import qualified Language.Haskell.TH.Lib as TH
 import qualified Language.Haskell.TH.Syntax as TH
 #if MIN_VERSION_base(4,7,0)
@@ -416,7 +417,7 @@ instance Data Text where
 instance TH.Lift Text where
   lift = TH.appE (TH.varE 'pack) . TH.stringE . unpack
 #if MIN_VERSION_template_haskell(2,16,0)
-  liftTyped = TH.unsafeTExpCoerce . TH.lift
+  liftTyped x = TH.typecheck =<< TH.lift x
 #endif
 
 #if MIN_VERSION_base(4,7,0)
-- 
GitLab