Hello community,

here is the log from the commit of package ghc-prettyprinter-ansi-terminal for 
openSUSE:Factory checked in at 2020-08-10 14:55:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-prettyprinter-ansi-terminal (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-prettyprinter-ansi-terminal.new.3399 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-prettyprinter-ansi-terminal"

Mon Aug 10 14:55:10 2020 rev:2 rq:824313 version:1.1.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/ghc-prettyprinter-ansi-terminal/ghc-prettyprinter-ansi-terminal.changes
  2020-07-09 13:18:45.113152856 +0200
+++ 
/work/SRC/openSUSE:Factory/.ghc-prettyprinter-ansi-terminal.new.3399/ghc-prettyprinter-ansi-terminal.changes
        2020-08-10 14:55:39.643926447 +0200
@@ -1,0 +2,18 @@
+Sat Aug  1 02:00:27 UTC 2020 - [email protected]
+
+- Update prettyprinter-ansi-terminal to version 1.1.2.
+  # [1.1.2]
+
+  - [Add shallower `Prettyprinter` module hierarchy exposing the same 
API.](https://github.com/quchen/prettyprinter/pull/174)
+    * The current plan for the existing `Data.Text.Prettyprint.Doc*` modules 
is:
+      * Start deprecation in early 2021.
+      * Remove the modules after a deprecation period of at least one year.
+  - [Make `renderLazy` lazy, and speed it 
up.](https://github.com/quchen/prettyprinter/pull/176)
+  - [Add export list for 
Prettyprinter.Render.Terminal.Internal.](https://github.com/quchen/prettyprinter/pull/148)
+  - [Optimize generating spaces for 
indentation.](https://github.com/quchen/prettyprinter/pull/132)
+  - [Enable `-O2`.](https://github.com/quchen/prettyprinter/pull/144)
+  - [Extend GHC support to 7.6 and 
7.4.](https://github.com/quchen/prettyprinter/pull/74)
+
+  [1.1.2]: 
https://github.com/quchen/prettyprinter/compare/ansi-terminal-v1.1.1.2...ansi-terminal-v1.1.2
+
+-------------------------------------------------------------------

Old:
----
  prettyprinter-ansi-terminal-1.1.1.2.tar.gz

New:
----
  prettyprinter-ansi-terminal-1.1.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-prettyprinter-ansi-terminal.spec ++++++
--- /var/tmp/diff_new_pack.uALhB4/_old  2020-08-10 14:55:42.699928061 +0200
+++ /var/tmp/diff_new_pack.uALhB4/_new  2020-08-10 14:55:42.699928061 +0200
@@ -19,7 +19,7 @@
 %global pkg_name prettyprinter-ansi-terminal
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        1.1.1.2
+Version:        1.1.2
 Release:        0
 Summary:        ANSI terminal backend for the »prettyprinter« package
 License:        BSD-2-Clause

++++++ prettyprinter-ansi-terminal-1.1.1.2.tar.gz -> 
prettyprinter-ansi-terminal-1.1.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prettyprinter-ansi-terminal-1.1.1.2/CHANGELOG.md 
new/prettyprinter-ansi-terminal-1.1.2/CHANGELOG.md
--- old/prettyprinter-ansi-terminal-1.1.1.2/CHANGELOG.md        2018-02-22 
08:29:38.000000000 +0100
+++ new/prettyprinter-ansi-terminal-1.1.2/CHANGELOG.md  2001-09-09 
03:46:40.000000000 +0200
@@ -1,3 +1,17 @@
+# [1.1.2]
+
+- [Add shallower `Prettyprinter` module hierarchy exposing the same 
API.](https://github.com/quchen/prettyprinter/pull/174)
+  * The current plan for the existing `Data.Text.Prettyprint.Doc*` modules is:
+    * Start deprecation in early 2021.
+    * Remove the modules after a deprecation period of at least one year.
+- [Make `renderLazy` lazy, and speed it 
up.](https://github.com/quchen/prettyprinter/pull/176)
+- [Add export list for 
Prettyprinter.Render.Terminal.Internal.](https://github.com/quchen/prettyprinter/pull/148)
+- [Optimize generating spaces for 
indentation.](https://github.com/quchen/prettyprinter/pull/132)
+- [Enable `-O2`.](https://github.com/quchen/prettyprinter/pull/144)
+- [Extend GHC support to 7.6 and 
7.4.](https://github.com/quchen/prettyprinter/pull/74)
+
+[1.1.2]: 
https://github.com/quchen/prettyprinter/compare/ansi-terminal-v1.1.1.2...ansi-terminal-v1.1.2
+
 # 1.1.1.2
 
 - Fix documentation claiming there would be a trailing newline in `renderIO`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/bench/LargeOutput.hs 
new/prettyprinter-ansi-terminal-1.1.2/bench/LargeOutput.hs
--- old/prettyprinter-ansi-terminal-1.1.1.2/bench/LargeOutput.hs        
1970-01-01 01:00:00.000000000 +0100
+++ new/prettyprinter-ansi-terminal-1.1.2/bench/LargeOutput.hs  2001-09-09 
03:46:40.000000000 +0200
@@ -0,0 +1,159 @@
+{-# LANGUAGE DeriveGeneric     #-}
+{-# LANGUAGE LambdaCase        #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+-- | This benchmark is derived from the large-output benchmark in 
prettyprinter, but contains additional annotations.
+module Main (main) where
+
+import Prelude        ()
+import Prelude.Compat
+
+import           Control.DeepSeq
+import           Control.Monad.Compat
+import           Data.Char
+import           Data.Map                              (Map)
+import qualified Data.Map                              as M
+import           Data.Text                             (Text)
+import qualified Data.Text                             as T
+import qualified Data.Text.IO                          as T
+import qualified Data.Text.Lazy                        as TL
+import           Gauge
+import           GHC.Generics
+import           Prettyprinter
+import           Prettyprinter.Render.Terminal         as Terminal
+import qualified Prettyprinter.Render.Text             as Text
+import           Test.QuickCheck
+import           Test.QuickCheck.Gen
+import           Test.QuickCheck.Random
+
+
+
+newtype Program = Program Binds deriving (Show, Generic)
+newtype Binds = Binds (Map Text LambdaForm) deriving (Show, Generic)
+data LambdaForm = LambdaForm ![Text] ![Text] !Expr deriving (Show, Generic)
+data Expr
+    = Let Binds Expr
+    | Case Expr [Alt]
+    | AppF Text [Text]
+    | AppC Text [Text]
+    | AppP Text Text Text
+    | LitE Int
+    deriving (Show, Generic)
+data Alt = Alt Text [Text] Expr deriving (Show, Generic)
+
+instance NFData Program
+instance NFData Binds
+instance NFData LambdaForm
+instance NFData Expr
+instance NFData Alt
+
+instance Arbitrary Program where arbitrary = fmap Program arbitrary
+instance Arbitrary Binds where
+    arbitrary = do
+        NonEmpty xs <- arbitrary
+        pure (Binds (M.fromList xs))
+instance Arbitrary LambdaForm where
+    arbitrary = LambdaForm <$> fromTo 0 2 arbitrary <*> fromTo 0 2 arbitrary 
<*> arbitrary
+
+instance Arbitrary Expr where
+    arbitrary = (oneof . map scaled)
+        [ Let <$> arbitrary <*> arbitrary
+        , Case <$> arbitrary <*> (do NonEmpty xs <- arbitrary; pure xs)
+        , AppF <$> arbitrary <*> fromTo 0 3 arbitrary
+        , AppC <$> ucFirst arbitrary <*> fromTo 0 3 arbitrary
+        , AppP <$> arbitrary <*> arbitrary <*> arbitrary
+        , LitE <$> arbitrary ]
+instance Arbitrary Alt where arbitrary = Alt <$> ucFirst arbitrary <*> fromTo 
0 3 arbitrary <*> arbitrary
+instance Arbitrary Text where
+    arbitrary = do
+        n <- choose (3,6)
+        str <- replicateM n (elements ['a'..'z'])
+        if str `elem` ["let", "in", "case", "of"]
+            then arbitrary
+            else pure (T.pack str)
+
+ucFirst :: Gen Text -> Gen Text
+ucFirst gen = do
+    x <- gen
+    case T.uncons x of
+        Nothing -> pure x
+        Just (t,ext) -> pure (T.cons (toUpper t) ext)
+
+anCol :: Color -> Doc AnsiStyle -> Doc AnsiStyle
+anCol = annotate . color
+
+prettyProgram :: Program -> Doc AnsiStyle
+prettyProgram (Program binds) = annotate italicized $ prettyBinds binds
+
+prettyBinds :: Binds -> Doc AnsiStyle
+prettyBinds (Binds bs) = align (vsep (map prettyBinding (M.assocs bs)))
+  where
+    prettyBinding (var, lambda) = pretty var <+> anCol Red "=" <+> 
prettyLambdaForm lambda
+
+prettyLambdaForm :: LambdaForm -> Doc AnsiStyle
+prettyLambdaForm (LambdaForm free bound body) = prettyExp . (<+> anCol Blue 
"->") . prettyBound . prettyFree $ anCol Blue "\\"
+  where
+    prettyFree | null free = id
+               | otherwise = (<> anCol Blue lparen <> hsep (map pretty free) 
<> anCol Blue rparen)
+    prettyBound | null bound = id
+                | null free = (<> hsep (map pretty bound))
+                | otherwise = (<+> hsep (map pretty bound))
+    prettyExp = (<+> prettyExpr body)
+
+prettyExpr :: Expr -> Doc AnsiStyle
+prettyExpr = \case
+    Let binds body ->
+        align (vsep [ anCol Red "let" <+> align (prettyBinds binds)
+                    , anCol Red "in" <+> prettyExpr body ])
+
+    Case scrutinee alts -> vsep
+        [ anCol Yellow "case" <+> prettyExpr scrutinee <+> anCol Yellow "of"
+        , indent 4 (align (vsep (map prettyAlt alts))) ]
+
+    AppF f [] -> annotate bold . anCol Green $ pretty f
+    AppF f args -> annotate bold . anCol Green $ pretty f <+> hsep (map pretty 
args)
+
+    AppC c [] -> annotate bold . anCol Green $ pretty c
+    AppC c args -> annotate bold . anCol Green $ pretty c <+> hsep (map pretty 
args)
+
+    AppP op x y -> annotate bold . anCol Green $ pretty op <+> pretty x <+> 
pretty y
+
+    LitE lit -> annotate bold . anCol Green $ pretty lit
+
+prettyAlt :: Alt -> Doc AnsiStyle
+prettyAlt (Alt con [] body) = pretty con <+> anCol Yellow "->" <+> prettyExpr 
body
+prettyAlt (Alt con args body) = pretty con <+> hsep (map pretty args) <+> 
anCol Yellow "->" <+> prettyExpr body
+
+scaled :: Gen a -> Gen a
+scaled = scale (\n -> n * 2 `quot` 3)
+
+fromTo :: Int -> Int -> Gen b -> Gen b
+fromTo a b gen = do
+    n <- choose (min a b, max a b)
+    resize n gen
+
+randomProgram
+    :: Int -- ^ Seed
+    -> Int -- ^ Generator size
+    -> Program
+randomProgram seed size = let MkGen gen = arbitrary in gen (mkQCGen seed) size
+
+main :: IO ()
+main = do
+    let prog = randomProgram 1 60
+        layoutOpts = defaultLayoutOptions { layoutPageWidth = Unbounded }
+        renderedProg = (renderLazy . layoutPretty layoutOpts . prettyProgram) 
prog
+        (progLines, progWidth) = let l = TL.lines renderedProg in (length l, 
maximum (map TL.length l))
+    putDoc ("Program size:" <+> pretty progLines <+> "lines, maximum width:" 
<+> pretty progWidth)
+
+    let render :: (SimpleDocStream AnsiStyle -> TL.Text) -> Program -> TL.Text
+        render r = r . layoutPretty layoutOpts . prettyProgram
+
+    rnf prog `seq` T.putStrLn "Starting benchmark…"
+
+    defaultMain
+        [ bench "prettyprinter-ansi-terminal" $ nf (render 
Terminal.renderLazy) prog
+        , bench "prettyprinter" $ nf (render Text.renderLazy) prog
+        ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/misc/version-compatibility-macros.h 
new/prettyprinter-ansi-terminal-1.1.2/misc/version-compatibility-macros.h
--- old/prettyprinter-ansi-terminal-1.1.1.2/misc/version-compatibility-macros.h 
2017-05-26 12:15:06.000000000 +0200
+++ new/prettyprinter-ansi-terminal-1.1.2/misc/version-compatibility-macros.h   
2001-09-09 03:46:40.000000000 +0200
@@ -10,10 +10,14 @@
 
 #define APPLICATIVE_MONAD               MIN_VERSION_base(4,8,0)
 #define FOLDABLE_TRAVERSABLE_IN_PRELUDE MIN_VERSION_base(4,8,0)
+#define FUNCTOR_IDENTITY_IN_BASE        MIN_VERSION_base(4,8,0)
 #define MONOID_IN_PRELUDE               MIN_VERSION_base(4,8,0)
 #define NATURAL_IN_BASE                 MIN_VERSION_base(4,8,0)
 
 #define SEMIGROUP_IN_BASE               MIN_VERSION_base(4,9,0)
-#define MONAD_FAIL                      MIN_VERSION_base(4,9,0)
+
+#define SEMIGROUP_MONOID_SUPERCLASS     MIN_VERSION_base(4,11,0)
+
+#define FAIL_IN_MONAD                   !(MIN_VERSION_base(4,13,0))
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/prettyprinter-ansi-terminal.cabal 
new/prettyprinter-ansi-terminal-1.1.2/prettyprinter-ansi-terminal.cabal
--- old/prettyprinter-ansi-terminal-1.1.1.2/prettyprinter-ansi-terminal.cabal   
2018-02-22 08:44:59.000000000 +0100
+++ new/prettyprinter-ansi-terminal-1.1.2/prettyprinter-ansi-terminal.cabal     
2001-09-09 03:46:40.000000000 +0200
@@ -1,5 +1,5 @@
 name:                prettyprinter-ansi-terminal
-version:             1.1.1.2
+version:             1.1.2
 cabal-version:       >= 1.10
 category:            User Interfaces, Text
 synopsis:            ANSI terminal backend for the »prettyprinter« package.
@@ -10,11 +10,16 @@
                    , misc/version-compatibility-macros.h
                    , CHANGELOG.md
 author:              David Luposchainsky
-maintainer:          David Luposchainsky <dluposchainsky at google>
+maintainer:          Simon Jakobi <[email protected]>, David 
Luposchainsky <dluposchainsky at google>
 bug-reports:         http://github.com/quchen/prettyprinter/issues
 homepage:            http://github.com/quchen/prettyprinter
 build-type:          Simple
-tested-with:         GHC==7.8.4, GHC==7.10.2, GHC==7.10.3, GHC==8.0.1, 
GHC==8.0.2
+tested-with:         GHC == 7.8.4
+                   , GHC == 7.10.2
+                   , GHC == 7.10.3
+                   , GHC == 8.0.1
+                   , GHC == 8.0.2
+                   , GHC == 8.2.2
 
 source-repository head
   type: git
@@ -23,18 +28,19 @@
 library
     exposed-modules:  Data.Text.Prettyprint.Doc.Render.Terminal
                     , Data.Text.Prettyprint.Doc.Render.Terminal.Internal
-    ghc-options:      -Wall
+                    , Prettyprinter.Render.Terminal
+                    , Prettyprinter.Render.Terminal.Internal
+    ghc-options:      -Wall -O2
     hs-source-dirs:   src
     include-dirs:     misc
     default-language: Haskell2010
     other-extensions:
           CPP
-        , LambdaCase
         , OverloadedStrings
 
 
     build-depends:
-          base          >= 4.7 && < 5
+          base          >= 4.5 && < 5
         , ansi-terminal >= 0.4.0
         , text          >= 1.2
         , prettyprinter >= 1.1.1
@@ -56,3 +62,21 @@
     if impl (ghc < 7.10)
         buildable: False
         -- Doctest cannot search folders in old versions it seems :-(
+
+benchmark large-output
+    build-depends:
+          base >= 4.5 && < 5
+        , base-compat >=0.9.3 && <0.12
+        , containers
+        , deepseq
+        , gauge >= 0.2
+        , prettyprinter
+        , prettyprinter-ansi-terminal
+        , QuickCheck >= 2.7
+        , text
+
+    hs-source-dirs:      bench
+    main-is:             LargeOutput.hs
+    ghc-options:         -O2 -threaded -rtsopts -with-rtsopts=-N -Wall
+    default-language:    Haskell2010
+    type:                exitcode-stdio-1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal/Internal.hs
 
new/prettyprinter-ansi-terminal-1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal/Internal.hs
--- 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal/Internal.hs
   2018-02-22 08:27:11.000000000 +0100
+++ 
new/prettyprinter-ansi-terminal-1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal/Internal.hs
     2001-09-09 03:46:40.000000000 +0200
@@ -1,334 +1,14 @@
-{-# LANGUAGE CPP               #-}
-{-# LANGUAGE LambdaCase        #-}
-{-# LANGUAGE OverloadedStrings #-}
+-- | This module is part of the old @Data.Text.Prettyprint.Doc@ module 
hierarchy
+-- which is being replaced by a shallower @Prettyprinter@ module hierarchy
+-- offering the same API.
+--
+-- This module will be deprecated and eventually removed.
+--
+-- Use "Prettyprinter.Render.Terminal.Internal" instead.
+module Data.Text.Prettyprint.Doc.Render.Terminal.Internal (
+    module Prettyprinter.Render.Terminal.Internal
+) where
 
-#include "version-compatibility-macros.h"
+import Prettyprinter.Render.Terminal.Internal
 
--- | __Warning:__ Internal module. May change arbitrarily between versions.
-module Data.Text.Prettyprint.Doc.Render.Terminal.Internal where
 
-
-
-import           Control.Applicative
-import           Control.Monad.ST
-import           Data.IORef
-import           Data.Maybe
-import           Data.Semigroup
-import           Data.STRef
-import           Data.Text              (Text)
-import qualified Data.Text              as T
-import qualified Data.Text.IO           as T
-import qualified Data.Text.Lazy         as TL
-import qualified Data.Text.Lazy.Builder as TLB
-import qualified System.Console.ANSI    as ANSI
-import           System.IO              (Handle, hPutChar, stdout)
-
-import Data.Text.Prettyprint.Doc
-import Data.Text.Prettyprint.Doc.Render.Util.Panic
-
-
-
--- $setup
---
--- (Definitions for the doctests)
---
--- >>> :set -XOverloadedStrings
--- >>> import qualified Data.Text.Lazy.IO as TL
--- >>> import qualified Data.Text.Lazy as TL
--- >>> import Data.Text.Prettyprint.Doc.Render.Terminal
-
-
-
--- | The 8 ANSI terminal colors.
-data Color = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White
-    deriving (Eq, Ord, Show)
-
--- | Dull or vivid coloring, as supported by ANSI terminals.
-data Intensity = Vivid | Dull
-    deriving (Eq, Ord, Show)
-
--- | Foreground (text) or background (paper) color
-data Layer = Foreground | Background
-    deriving (Eq, Ord, Show)
-
-data Bold       = Bold       deriving (Eq, Ord, Show)
-data Underlined = Underlined deriving (Eq, Ord, Show)
-data Italicized = Italicized deriving (Eq, Ord, Show)
-
--- | Style the foreground with a vivid color.
-color :: Color -> AnsiStyle
-color c = mempty { ansiForeground = Just (Vivid, c) }
-
--- | Style the background with a vivid color.
-bgColor :: Color -> AnsiStyle
-bgColor c =  mempty { ansiBackground = Just (Vivid, c) }
-
--- | Style the foreground with a dull color.
-colorDull :: Color -> AnsiStyle
-colorDull c =  mempty { ansiForeground = Just (Dull, c) }
-
--- | Style the background with a dull color.
-bgColorDull :: Color -> AnsiStyle
-bgColorDull c =  mempty { ansiBackground = Just (Dull, c) }
-
--- | Render in __bold__.
-bold :: AnsiStyle
-bold = mempty { ansiBold = Just Bold }
-
--- | Render in /italics/.
-italicized :: AnsiStyle
-italicized = mempty { ansiItalics = Just Italicized }
-
--- | Render underlined.
-underlined :: AnsiStyle
-underlined = mempty { ansiUnderlining = Just Underlined }
-
--- | @('renderLazy' doc)@ takes the output @doc@ from a rendering function
--- and transforms it to lazy text, including ANSI styling directives for things
--- like colorization.
---
--- ANSI color information will be discarded by this function unless you are
--- running on a Unix-like operating system. This is due to a technical
--- limitation in Windows ANSI support.
---
--- With a bit of trickery to make the ANSI codes printable, here is an example
--- that would render colored in an ANSI terminal:
---
--- >>> let render = TL.putStrLn . TL.replace "\ESC" "\\e" . renderLazy . 
layoutPretty defaultLayoutOptions
--- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
--- >>> render (unAnnotate doc)
--- red blue+u bold blue+u
---     red
--- >>> render doc
--- \e[0;91mred \e[0;94;4mblue+u \e[0;94;1;4mbold\e[0;94;4m blue+u\e[0;91m
---     red\e[0m
---
--- Run the above via @echo -e '...'@ in your terminal to see the coloring.
-renderLazy :: SimpleDocStream AnsiStyle -> TL.Text
-renderLazy sdoc = runST (do
-    styleStackRef <- newSTRef [mempty]
-    outputRef <- newSTRef mempty
-
-    let push x = modifySTRef' styleStackRef (x :)
-        unsafePeek = readSTRef styleStackRef >>= \case
-            []  -> panicPeekedEmpty
-            x:_ -> pure x
-        unsafePop = readSTRef styleStackRef >>= \case
-            []   -> panicPeekedEmpty
-            x:xs -> writeSTRef styleStackRef xs >> pure x
-        writeOutput x = modifySTRef outputRef (<> x)
-
-    let go = \case
-            SFail -> panicUncaughtFail
-            SEmpty -> pure ()
-            SChar c rest -> do
-                writeOutput (TLB.singleton c)
-                go rest
-            SText _ t rest -> do
-                writeOutput (TLB.fromText t)
-                go rest
-            SLine i rest -> do
-                writeOutput (TLB.singleton '\n' <> TLB.fromText (T.replicate i 
" "))
-                go rest
-            SAnnPush style rest -> do
-                currentStyle <- unsafePeek
-                let newStyle = style <> currentStyle
-                push newStyle
-                writeOutput (TLB.fromText (styleToRawText newStyle))
-                go rest
-            SAnnPop rest -> do
-                _currentStyle <- unsafePop
-                newStyle <- unsafePeek
-                writeOutput (TLB.fromText (styleToRawText newStyle))
-                go rest
-    go sdoc
-    readSTRef styleStackRef >>= \case
-        []  -> panicStyleStackFullyConsumed
-        [_] -> fmap TLB.toLazyText (readSTRef outputRef)
-        xs  -> panicStyleStackNotFullyConsumed (length xs) )
-
--- | @('renderIO' h sdoc)@ writes @sdoc@ to the handle @h@.
---
--- >>> let render = renderIO System.IO.stdout . layoutPretty 
defaultLayoutOptions
--- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
---
--- We render the 'unAnnotate'd version here, since the ANSI codes don’t display
--- well in Haddock,
---
--- >>> render (unAnnotate doc)
--- red blue+u bold blue+u
---     red
---
--- This function behaves just like
---
--- @
--- 'renderIO' h sdoc = 'TL.hPutStr' h ('renderLazy' sdoc)
--- @
---
--- but will not generate any intermediate text, rendering directly to the
--- handle.
-renderIO :: Handle -> SimpleDocStream AnsiStyle -> IO ()
-renderIO h sdoc = do
-    styleStackRef <- newIORef [mempty]
-
-    let push x = modifyIORef' styleStackRef (x :)
-        unsafePeek = readIORef styleStackRef >>= \case
-            [] -> panicPeekedEmpty
-            x:_ -> pure x
-        unsafePop = readIORef styleStackRef >>= \case
-            [] -> panicPeekedEmpty
-            x:xs -> writeIORef styleStackRef xs >> pure x
-
-    let go = \case
-            SFail -> panicUncaughtFail
-            SEmpty -> pure ()
-            SChar c rest -> do
-                hPutChar h c
-                go rest
-            SText _ t rest -> do
-                T.hPutStr h t
-                go rest
-            SLine i rest -> do
-                hPutChar h '\n'
-                T.hPutStr h (T.replicate i " ")
-                go rest
-            SAnnPush style rest -> do
-                currentStyle <- unsafePeek
-                let newStyle = style <> currentStyle
-                push newStyle
-                T.hPutStr h (styleToRawText newStyle)
-                go rest
-            SAnnPop rest -> do
-                _currentStyle <- unsafePop
-                newStyle <- unsafePeek
-                T.hPutStr h (styleToRawText newStyle)
-                go rest
-    go sdoc
-    readIORef styleStackRef >>= \case
-        []  -> panicStyleStackFullyConsumed
-        [_] -> pure ()
-        xs  -> panicStyleStackNotFullyConsumed (length xs)
-
-panicStyleStackFullyConsumed :: void
-panicStyleStackFullyConsumed
-  = error ("There is no empty style left at the end of rendering" ++
-           " (but there should be). Please report this as a bug.")
-
-panicStyleStackNotFullyConsumed :: Int -> void
-panicStyleStackNotFullyConsumed len
-  = error ("There are " <> show len <> " styles left at the" ++
-           "end of rendering (there should be only 1). Please report" ++
-           " this as a bug.")
-
--- $
--- >>> let render = renderIO System.IO.stdout . layoutPretty 
defaultLayoutOptions
--- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
--- >>> render (unAnnotate doc)
--- red blue+u bold blue+u
---     red
---
--- This test won’t work since I don’t know how to type \ESC for doctest :-/
--- -- >>> render doc
--- -- \ESC[0;91mred \ESC[0;94;4mblue+u \ESC[0;94;1;4mbold\ESC[0;94;4m 
blue+u\ESC[0;91m
--- --     red\ESC[0m
-
--- | Render the annotated document in a certain style. Styles not set in the
--- annotation will use the style of the surrounding document, or the terminal’s
--- default if none has been set yet.
---
--- @
--- style = 'color' 'Green' '<>' 'bold'
--- styledDoc = 'annotate' style "hello world"
--- @
-data AnsiStyle = SetAnsiStyle
-    { ansiForeground  :: Maybe (Intensity, Color) -- ^ Set the foreground 
color, or keep the old one.
-    , ansiBackground  :: Maybe (Intensity, Color) -- ^ Set the background 
color, or keep the old one.
-    , ansiBold        :: Maybe Bold               -- ^ Switch on boldness, or 
don’t do anything.
-    , ansiItalics     :: Maybe Italicized         -- ^ Switch on italics, or 
don’t do anything.
-    , ansiUnderlining :: Maybe Underlined         -- ^ Switch on underlining, 
or don’t do anything.
-    } deriving (Eq, Ord, Show)
-
--- | Keep the first decision for each of foreground color, background color,
--- boldness, italication, and underlining. If a certain style is not set, the
--- terminal’s default will be used.
---
--- Example:
---
--- @
--- 'color' 'Red' '<>' 'color' 'Green'
--- @
---
--- is red because the first color wins, and not bold because (or if) that’s the
--- terminal’s default.
-instance Semigroup AnsiStyle where
-    cs1 <> cs2 = SetAnsiStyle
-        { ansiForeground  = ansiForeground  cs1 <|> ansiForeground  cs2
-        , ansiBackground  = ansiBackground  cs1 <|> ansiBackground  cs2
-        , ansiBold        = ansiBold        cs1 <|> ansiBold        cs2
-        , ansiItalics     = ansiItalics     cs1 <|> ansiItalics     cs2
-        , ansiUnderlining = ansiUnderlining cs1 <|> ansiUnderlining cs2 }
-
--- | 'mempty' does nothing, which is equivalent to inheriting the style of the
--- surrounding doc, or the terminal’s default if no style has been set yet.
-instance Monoid AnsiStyle where
-    mempty = SetAnsiStyle Nothing Nothing Nothing Nothing Nothing
-    mappend = (<>)
-
-styleToRawText :: AnsiStyle -> Text
-styleToRawText = T.pack . ANSI.setSGRCode . stylesToSgrs
-  where
-    stylesToSgrs :: AnsiStyle -> [ANSI.SGR]
-    stylesToSgrs (SetAnsiStyle fg bg b i u) = catMaybes
-        [ Just ANSI.Reset
-        , fmap (\(intensity, c) -> ANSI.SetColor ANSI.Foreground 
(convertIntensity intensity) (convertColor c)) fg
-        , fmap (\(intensity, c) -> ANSI.SetColor ANSI.Background 
(convertIntensity intensity) (convertColor c)) bg
-        , fmap (\_              -> ANSI.SetConsoleIntensity 
ANSI.BoldIntensity) b
-        , fmap (\_              -> ANSI.SetItalicized True) i
-        , fmap (\_              -> ANSI.SetUnderlining ANSI.SingleUnderline) u
-        ]
-
-    convertIntensity :: Intensity -> ANSI.ColorIntensity
-    convertIntensity = \case
-        Vivid -> ANSI.Vivid
-        Dull  -> ANSI.Dull
-
-    convertColor :: Color -> ANSI.Color
-    convertColor = \case
-        Black   -> ANSI.Black
-        Red     -> ANSI.Red
-        Green   -> ANSI.Green
-        Yellow  -> ANSI.Yellow
-        Blue    -> ANSI.Blue
-        Magenta -> ANSI.Magenta
-        Cyan    -> ANSI.Cyan
-        White   -> ANSI.White
-
-
-
--- | @('renderStrict' sdoc)@ takes the output @sdoc@ from a rendering and
--- transforms it to strict text.
-renderStrict :: SimpleDocStream AnsiStyle -> Text
-renderStrict = TL.toStrict . renderLazy
-
--- | @('putDoc' doc)@ prettyprints document @doc@ to standard output using
--- 'defaultLayoutOptions'.
---
--- >>> putDoc ("hello" <+> "world")
--- hello world
---
--- @
--- 'putDoc' = 'hPutDoc' 'stdout'
--- @
-putDoc :: Doc AnsiStyle -> IO ()
-putDoc = hPutDoc stdout
-
--- | Like 'putDoc', but instead of using 'stdout', print to a user-provided
--- handle, e.g. a file or a socket using 'defaultLayoutOptions'.
---
--- > main = withFile "someFile.txt" (\h -> hPutDoc h (vcat ["vertical", 
"text"]))
---
--- @
--- 'hPutDoc' h doc = 'renderIO' h ('layoutPretty' 'defaultLayoutOptions' doc)
--- @
-hPutDoc :: Handle -> Doc AnsiStyle -> IO ()
-hPutDoc h doc = renderIO h (layoutPretty defaultLayoutOptions doc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal.hs
 
new/prettyprinter-ansi-terminal-1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal.hs
--- 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal.hs
    2018-02-22 08:08:03.000000000 +0100
+++ 
new/prettyprinter-ansi-terminal-1.1.2/src/Data/Text/Prettyprint/Doc/Render/Terminal.hs
      2001-09-09 03:46:40.000000000 +0200
@@ -1,35 +1,13 @@
--- | Render 'SimpleDocStream' in a terminal.
+-- | This module is part of the old @Data.Text.Prettyprint.Doc@ module 
hierarchy
+-- which is being replaced by a shallower @Prettyprinter@ module hierarchy
+-- offering the same API.
+--
+-- This module will be deprecated and eventually removed.
+--
+-- Use "Prettyprinter.Render.Terminal" instead.
 module Data.Text.Prettyprint.Doc.Render.Terminal (
-    -- * Styling
-    AnsiStyle,
-    Color(..),
-
-    -- ** Font color
-    color, colorDull,
-
-    -- ** Background color
-    bgColor, bgColorDull,
-
-    -- ** Font style
-    bold, italicized, underlined,
-
-    -- ** Internal markers
-    --
-    -- | These should only be used for writing adaptors to other libraries; for
-    -- the average use case, use 'bold', 'bgColorDull', etc.
-    Intensity(..),
-    Bold(..),
-    Underlined(..),
-    Italicized(..),
-
-    -- * Conversion to ANSI-infused 'Text'
-    renderLazy, renderStrict,
-
-    -- * Render directly to 'stdout'
-    renderIO,
-
-    -- ** Convenience functions
-    putDoc, hPutDoc,
+    module Prettyprinter.Render.Terminal
 ) where
 
-import Data.Text.Prettyprint.Doc.Render.Terminal.Internal
+import Prettyprinter.Render.Terminal
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Prettyprinter/Render/Terminal/Internal.hs
 
new/prettyprinter-ansi-terminal-1.1.2/src/Prettyprinter/Render/Terminal/Internal.hs
--- 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Prettyprinter/Render/Terminal/Internal.hs
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/prettyprinter-ansi-terminal-1.1.2/src/Prettyprinter/Render/Terminal/Internal.hs
 2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,356 @@
+{-# LANGUAGE CPP               #-}
+{-# LANGUAGE OverloadedStrings #-}
+
+{-# OPTIONS_HADDOCK not-home #-}
+
+#include "version-compatibility-macros.h"
+
+-- | __Warning:__ Internal module. May change arbitrarily between versions.
+module Prettyprinter.Render.Terminal.Internal (
+    -- * Styling
+    AnsiStyle(..),
+    Color(..),
+
+    -- ** Font color
+    color, colorDull,
+
+    -- ** Background color
+    bgColor, bgColorDull,
+
+    -- ** Font style
+    bold, italicized, underlined,
+
+    -- ** Internal markers
+    Intensity(..),
+    Bold(..),
+    Underlined(..),
+    Italicized(..),
+
+    -- * Conversion to ANSI-infused 'Text'
+    renderLazy, renderStrict,
+
+    -- * Render directly to 'stdout'
+    renderIO,
+
+    -- ** Convenience functions
+    putDoc, hPutDoc,
+) where
+
+
+
+import           Control.Applicative
+import           Data.IORef
+import           Data.Maybe
+import           Data.Text              (Text)
+import qualified Data.Text              as T
+import qualified Data.Text.IO           as T
+import qualified Data.Text.Lazy         as TL
+import qualified Data.Text.Lazy.Builder as TLB
+import qualified System.Console.ANSI    as ANSI
+import           System.IO              (Handle, hPutChar, stdout)
+
+import Data.Text.Prettyprint.Doc
+import Data.Text.Prettyprint.Doc.Render.Util.Panic
+
+#if !(SEMIGROUP_MONOID_SUPERCLASS)
+import Data.Semigroup
+#endif
+
+#if !(MIN_VERSION_base(4,6,0))
+modifyIORef' :: IORef a -> (a -> a) -> IO ()
+modifyIORef' ref f = do
+    x <- readIORef ref
+    let x' = f x
+    x' `seq` writeIORef ref x'
+#endif
+
+-- $setup
+--
+-- (Definitions for the doctests)
+--
+-- >>> :set -XOverloadedStrings
+-- >>> import qualified Data.Text.Lazy.IO as TL
+-- >>> import qualified Data.Text.Lazy as TL
+-- >>> import Prettyprinter.Render.Terminal
+
+
+
+-- | The 8 ANSI terminal colors.
+data Color = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White
+    deriving (Eq, Ord, Show)
+
+-- | Dull or vivid coloring, as supported by ANSI terminals.
+data Intensity = Vivid | Dull
+    deriving (Eq, Ord, Show)
+
+-- | Foreground (text) or background (paper) color
+data Layer = Foreground | Background
+    deriving (Eq, Ord, Show)
+
+data Bold       = Bold       deriving (Eq, Ord, Show)
+data Underlined = Underlined deriving (Eq, Ord, Show)
+data Italicized = Italicized deriving (Eq, Ord, Show)
+
+-- | Style the foreground with a vivid color.
+color :: Color -> AnsiStyle
+color c = mempty { ansiForeground = Just (Vivid, c) }
+
+-- | Style the background with a vivid color.
+bgColor :: Color -> AnsiStyle
+bgColor c =  mempty { ansiBackground = Just (Vivid, c) }
+
+-- | Style the foreground with a dull color.
+colorDull :: Color -> AnsiStyle
+colorDull c =  mempty { ansiForeground = Just (Dull, c) }
+
+-- | Style the background with a dull color.
+bgColorDull :: Color -> AnsiStyle
+bgColorDull c =  mempty { ansiBackground = Just (Dull, c) }
+
+-- | Render in __bold__.
+bold :: AnsiStyle
+bold = mempty { ansiBold = Just Bold }
+
+-- | Render in /italics/.
+italicized :: AnsiStyle
+italicized = mempty { ansiItalics = Just Italicized }
+
+-- | Render underlined.
+underlined :: AnsiStyle
+underlined = mempty { ansiUnderlining = Just Underlined }
+
+-- | @('renderLazy' doc)@ takes the output @doc@ from a rendering function
+-- and transforms it to lazy text, including ANSI styling directives for things
+-- like colorization.
+--
+-- ANSI color information will be discarded by this function unless you are
+-- running on a Unix-like operating system. This is due to a technical
+-- limitation in Windows ANSI support.
+--
+-- With a bit of trickery to make the ANSI codes printable, here is an example
+-- that would render colored in an ANSI terminal:
+--
+-- >>> let render = TL.putStrLn . TL.replace "\ESC" "\\e" . renderLazy . 
layoutPretty defaultLayoutOptions
+-- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
+-- >>> render (unAnnotate doc)
+-- red blue+u bold blue+u
+--     red
+-- >>> render doc
+-- \e[0;91mred \e[0;94;4mblue+u \e[0;94;1;4mbold\e[0;94;4m blue+u\e[0;91m
+--     red\e[0m
+--
+-- Run the above via @echo -e '...'@ in your terminal to see the coloring.
+renderLazy :: SimpleDocStream AnsiStyle -> TL.Text
+renderLazy =
+    let push x = (x :)
+
+        unsafePeek []    = panicPeekedEmpty
+        unsafePeek (x:_) = x
+
+        unsafePop []     = panicPoppedEmpty
+        unsafePop (x:xs) = (x, xs)
+
+        go :: [AnsiStyle] -> SimpleDocStream AnsiStyle -> TLB.Builder
+        go s sds = case sds of
+            SFail -> panicUncaughtFail
+            SEmpty -> mempty
+            SChar c rest -> TLB.singleton c <> go s rest
+            SText _ t rest -> TLB.fromText t <> go s rest
+            SLine i rest -> TLB.singleton '\n' <> TLB.fromText (T.replicate i 
" ") <> go s rest
+            SAnnPush style rest ->
+                let currentStyle = unsafePeek s
+                    newStyle = style <> currentStyle
+                in  TLB.fromText (styleToRawText newStyle) <> go (push style 
s) rest
+            SAnnPop rest ->
+                let (_currentStyle, s') = unsafePop s
+                    newStyle = unsafePeek s'
+                in  TLB.fromText (styleToRawText newStyle) <> go s' rest
+
+    in  TLB.toLazyText . go [mempty]
+
+
+-- | @('renderIO' h sdoc)@ writes @sdoc@ to the handle @h@.
+--
+-- >>> let render = renderIO System.IO.stdout . layoutPretty 
defaultLayoutOptions
+-- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
+--
+-- We render the 'unAnnotate'd version here, since the ANSI codes don’t display
+-- well in Haddock,
+--
+-- >>> render (unAnnotate doc)
+-- red blue+u bold blue+u
+--     red
+--
+-- This function behaves just like
+--
+-- @
+-- 'renderIO' h sdoc = 'TL.hPutStr' h ('renderLazy' sdoc)
+-- @
+--
+-- but will not generate any intermediate text, rendering directly to the
+-- handle.
+renderIO :: Handle -> SimpleDocStream AnsiStyle -> IO ()
+renderIO h sdoc = do
+    styleStackRef <- newIORef [mempty]
+
+    let push x = modifyIORef' styleStackRef (x :)
+        unsafePeek = readIORef styleStackRef >>= \tok -> case tok of
+            [] -> panicPeekedEmpty
+            x:_ -> pure x
+        unsafePop = readIORef styleStackRef >>= \tok -> case tok of
+            [] -> panicPoppedEmpty
+            x:xs -> writeIORef styleStackRef xs >> pure x
+
+    let go = \sds -> case sds of
+            SFail -> panicUncaughtFail
+            SEmpty -> pure ()
+            SChar c rest -> do
+                hPutChar h c
+                go rest
+            SText _ t rest -> do
+                T.hPutStr h t
+                go rest
+            SLine i rest -> do
+                hPutChar h '\n'
+                T.hPutStr h (T.replicate i (T.singleton ' '))
+                go rest
+            SAnnPush style rest -> do
+                currentStyle <- unsafePeek
+                let newStyle = style <> currentStyle
+                push newStyle
+                T.hPutStr h (styleToRawText newStyle)
+                go rest
+            SAnnPop rest -> do
+                _currentStyle <- unsafePop
+                newStyle <- unsafePeek
+                T.hPutStr h (styleToRawText newStyle)
+                go rest
+    go sdoc
+    readIORef styleStackRef >>= \stack -> case stack of
+        []  -> panicStyleStackFullyConsumed
+        [_] -> pure ()
+        xs  -> panicStyleStackNotFullyConsumed (length xs)
+
+panicStyleStackFullyConsumed :: void
+panicStyleStackFullyConsumed
+  = error ("There is no empty style left at the end of rendering" ++
+           " (but there should be). Please report this as a bug.")
+
+panicStyleStackNotFullyConsumed :: Int -> void
+panicStyleStackNotFullyConsumed len
+  = error ("There are " <> show len <> " styles left at the" ++
+           "end of rendering (there should be only 1). Please report" ++
+           " this as a bug.")
+
+-- $
+-- >>> let render = renderIO System.IO.stdout . layoutPretty 
defaultLayoutOptions
+-- >>> let doc = annotate (color Red) ("red" <+> align (vsep [annotate (color 
Blue <> underlined) ("blue+u" <+> annotate bold "bold" <+> "blue+u"), "red"]))
+-- >>> render (unAnnotate doc)
+-- red blue+u bold blue+u
+--     red
+--
+-- This test won’t work since I don’t know how to type \ESC for doctest :-/
+-- -- >>> render doc
+-- -- \ESC[0;91mred \ESC[0;94;4mblue+u \ESC[0;94;1;4mbold\ESC[0;94;4m 
blue+u\ESC[0;91m
+-- --     red\ESC[0m
+
+-- | Render the annotated document in a certain style. Styles not set in the
+-- annotation will use the style of the surrounding document, or the terminal’s
+-- default if none has been set yet.
+--
+-- @
+-- style = 'color' 'Green' '<>' 'bold'
+-- styledDoc = 'annotate' style "hello world"
+-- @
+data AnsiStyle = SetAnsiStyle
+    { ansiForeground  :: Maybe (Intensity, Color) -- ^ Set the foreground 
color, or keep the old one.
+    , ansiBackground  :: Maybe (Intensity, Color) -- ^ Set the background 
color, or keep the old one.
+    , ansiBold        :: Maybe Bold               -- ^ Switch on boldness, or 
don’t do anything.
+    , ansiItalics     :: Maybe Italicized         -- ^ Switch on italics, or 
don’t do anything.
+    , ansiUnderlining :: Maybe Underlined         -- ^ Switch on underlining, 
or don’t do anything.
+    } deriving (Eq, Ord, Show)
+
+-- | Keep the first decision for each of foreground color, background color,
+-- boldness, italication, and underlining. If a certain style is not set, the
+-- terminal’s default will be used.
+--
+-- Example:
+--
+-- @
+-- 'color' 'Red' '<>' 'color' 'Green'
+-- @
+--
+-- is red because the first color wins, and not bold because (or if) that’s the
+-- terminal’s default.
+instance Semigroup AnsiStyle where
+    cs1 <> cs2 = SetAnsiStyle
+        { ansiForeground  = ansiForeground  cs1 <|> ansiForeground  cs2
+        , ansiBackground  = ansiBackground  cs1 <|> ansiBackground  cs2
+        , ansiBold        = ansiBold        cs1 <|> ansiBold        cs2
+        , ansiItalics     = ansiItalics     cs1 <|> ansiItalics     cs2
+        , ansiUnderlining = ansiUnderlining cs1 <|> ansiUnderlining cs2 }
+
+-- | 'mempty' does nothing, which is equivalent to inheriting the style of the
+-- surrounding doc, or the terminal’s default if no style has been set yet.
+instance Monoid AnsiStyle where
+    mempty = SetAnsiStyle Nothing Nothing Nothing Nothing Nothing
+    mappend = (<>)
+
+styleToRawText :: AnsiStyle -> Text
+styleToRawText = T.pack . ANSI.setSGRCode . stylesToSgrs
+  where
+    stylesToSgrs :: AnsiStyle -> [ANSI.SGR]
+    stylesToSgrs (SetAnsiStyle fg bg b i u) = catMaybes
+        [ Just ANSI.Reset
+        , fmap (\(intensity, c) -> ANSI.SetColor ANSI.Foreground 
(convertIntensity intensity) (convertColor c)) fg
+        , fmap (\(intensity, c) -> ANSI.SetColor ANSI.Background 
(convertIntensity intensity) (convertColor c)) bg
+        , fmap (\_              -> ANSI.SetConsoleIntensity 
ANSI.BoldIntensity) b
+        , fmap (\_              -> ANSI.SetItalicized True) i
+        , fmap (\_              -> ANSI.SetUnderlining ANSI.SingleUnderline) u
+        ]
+
+    convertIntensity :: Intensity -> ANSI.ColorIntensity
+    convertIntensity = \i -> case i of
+        Vivid -> ANSI.Vivid
+        Dull  -> ANSI.Dull
+
+    convertColor :: Color -> ANSI.Color
+    convertColor = \c -> case c of
+        Black   -> ANSI.Black
+        Red     -> ANSI.Red
+        Green   -> ANSI.Green
+        Yellow  -> ANSI.Yellow
+        Blue    -> ANSI.Blue
+        Magenta -> ANSI.Magenta
+        Cyan    -> ANSI.Cyan
+        White   -> ANSI.White
+
+
+
+-- | @('renderStrict' sdoc)@ takes the output @sdoc@ from a rendering and
+-- transforms it to strict text.
+renderStrict :: SimpleDocStream AnsiStyle -> Text
+renderStrict = TL.toStrict . renderLazy
+
+-- | @('putDoc' doc)@ prettyprints document @doc@ to standard output using
+-- 'defaultLayoutOptions'.
+--
+-- >>> putDoc ("hello" <+> "world")
+-- hello world
+--
+-- @
+-- 'putDoc' = 'hPutDoc' 'stdout'
+-- @
+putDoc :: Doc AnsiStyle -> IO ()
+putDoc = hPutDoc stdout
+
+-- | Like 'putDoc', but instead of using 'stdout', print to a user-provided
+-- handle, e.g. a file or a socket using 'defaultLayoutOptions'.
+--
+-- > main = withFile "someFile.txt" (\h -> hPutDoc h (vcat ["vertical", 
"text"]))
+--
+-- @
+-- 'hPutDoc' h doc = 'renderIO' h ('layoutPretty' 'defaultLayoutOptions' doc)
+-- @
+hPutDoc :: Handle -> Doc AnsiStyle -> IO ()
+hPutDoc h doc = renderIO h (layoutPretty defaultLayoutOptions doc)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Prettyprinter/Render/Terminal.hs 
new/prettyprinter-ansi-terminal-1.1.2/src/Prettyprinter/Render/Terminal.hs
--- 
old/prettyprinter-ansi-terminal-1.1.1.2/src/Prettyprinter/Render/Terminal.hs    
    1970-01-01 01:00:00.000000000 +0100
+++ new/prettyprinter-ansi-terminal-1.1.2/src/Prettyprinter/Render/Terminal.hs  
2001-09-09 03:46:40.000000000 +0200
@@ -0,0 +1,35 @@
+-- | Render 'SimpleDocStream' in a terminal.
+module Prettyprinter.Render.Terminal (
+    -- * Styling
+    AnsiStyle,
+    Color(..),
+
+    -- ** Font color
+    color, colorDull,
+
+    -- ** Background color
+    bgColor, bgColorDull,
+
+    -- ** Font style
+    bold, italicized, underlined,
+
+    -- ** Internal markers
+    --
+    -- | These should only be used for writing adaptors to other libraries; for
+    -- the average use case, use 'bold', 'bgColorDull', etc.
+    Intensity(..),
+    Bold(..),
+    Underlined(..),
+    Italicized(..),
+
+    -- * Conversion to ANSI-infused 'Text'
+    renderLazy, renderStrict,
+
+    -- * Render directly to 'stdout'
+    renderIO,
+
+    -- ** Convenience functions
+    putDoc, hPutDoc,
+) where
+
+import Prettyprinter.Render.Terminal.Internal


Reply via email to