From 95eccb94b074a25fae7ac10523e38988bbeacada Mon Sep 17 00:00:00 2001
From: Alexander Krotov <ilabdsf@gmail.com>
Date: Thu, 1 Nov 2018 14:09:11 +0300
Subject: [PATCH] Add Text.Pandoc.Shared.ToString typeclass (API change)

---
 src/Text/Pandoc/Shared.hs | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 5b88a7948..90789447f 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -6,6 +6,8 @@
 
 {-# LANGUAGE ScopedTypeVariables   #-}
 {-# LANGUAGE ViewPatterns          #-}
+{-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE TypeSynonymInstances  #-}
 {-
 Copyright (C) 2006-2018 John MacFarlane <jgm@berkeley.edu>
 
@@ -43,6 +45,7 @@ module Text.Pandoc.Shared (
                      substitute,
                      ordNub,
                      -- * Text processing
+                     ToString (..),
                      backslashEscapes,
                      escapeStringUsing,
                      stripTrailingNewlines,
@@ -193,6 +196,15 @@ ordNub l = go Set.empty l
 -- Text processing
 --
 
+class ToString a where
+  toString :: a -> String
+
+instance ToString String where
+  toString = id
+
+instance ToString T.Text where
+  toString = T.unpack
+
 -- | Returns an association list of backslash escapes for the
 -- designated characters.
 backslashEscapes :: [Char]    -- ^ list of special characters to escape