Add IsString Outputable.SDoc instance
authorHerbert Valerio Riedel <hvr@gnu.org>
Mon, 14 Dec 2015 19:55:08 +0000 (20:55 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Mon, 14 Dec 2015 19:55:12 +0000 (20:55 +0100)
This allows to conveniently interpret string literals as `text`
when `-XOverloadedStrings` is in effect.

For what it's worth, `Text.PrettyPrint.Doc` also possesses such
an instance.

This is a spin-off from D1240

Reviewed By: bgamari

Differential Revision: https://phabricator.haskell.org/D1618

compiler/utils/Outputable.hs

index b539fa6..cda7475 100644 (file)
@@ -103,6 +103,7 @@ import Data.Int
 import qualified Data.IntMap as IM
 import Data.Set (Set)
 import qualified Data.Set as Set
+import Data.String
 import Data.Word
 import System.IO        ( Handle )
 import System.FilePath
@@ -286,6 +287,9 @@ data SDocContext = SDC
   , sdocDynFlags   :: !DynFlags
   }
 
+instance IsString SDoc where
+  fromString = text
+
 initSDocContext :: DynFlags -> PprStyle -> SDocContext
 initSDocContext dflags sty = SDC
   { sdocStyle = sty