Skip to content

Commit e834f12

Browse files
committed
Re-export some Data.Text modules for the purpose of downstream libraries being able to write code compatible with the fake text module
1 parent 6cafb52 commit e834f12

File tree

9 files changed

+55
-13
lines changed

9 files changed

+55
-13
lines changed

prettyprinter/bench/LargeOutput.hs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
{-# LANGUAGE DeriveGeneric #-}
2-
{-# LANGUAGE OverloadedStrings #-}
1+
{-# LANGUAGE DeriveGeneric #-}
2+
{-# LANGUAGE FlexibleInstances #-}
3+
{-# LANGUAGE OverloadedStrings #-}
4+
{-# LANGUAGE TypeSynonymInstances #-}
35

46
{-# OPTIONS_GHC -fno-warn-orphans #-}
57

@@ -14,10 +16,10 @@ import Gauge
1416
import Data.Char
1517
import Data.Map (Map)
1618
import qualified Data.Map as M
17-
import Data.Text (Text)
18-
import qualified Data.Text as T
19-
import qualified Data.Text.IO as T
20-
import qualified Data.Text.Lazy as TL
19+
import Prettyprinter.Compat.Text (Text)
20+
import qualified Prettyprinter.Compat.Text as T
21+
import qualified Prettyprinter.Compat.Text.IO as T
22+
import qualified Prettyprinter.Compat.Text.Lazy as TL
2123
import Prettyprinter
2224
import Prettyprinter.Render.Text
2325
import GHC.Generics

prettyprinter/prettyprinter.cabal

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ source-repository head
2525
library
2626
exposed-modules:
2727
Prettyprinter
28+
, Prettyprinter.Compat.Text
29+
, Prettyprinter.Compat.Text.IO
30+
, Prettyprinter.Compat.Text.Lazy
31+
, Prettyprinter.Compat.Text.Lazy.Builder
2832
, Prettyprinter.Internal
2933
, Prettyprinter.Internal.Debug
3034
, Prettyprinter.Internal.Type
@@ -196,7 +200,6 @@ benchmark faster-unsafe-text
196200
, prettyprinter
197201

198202
, gauge >= 0.2
199-
, text
200203

201204
hs-source-dirs: bench
202205
main-is: FasterUnsafeText.hs

prettyprinter/src-text/Data/Text/Lazy.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ type Text = T.Text
1313
length = T.length
1414
lines = T.lines
1515
toStrict = id
16+
pack = T.pack
17+
unpack = T.unpack

prettyprinter/src-text/Data/Text/Lazy/Builder.hs

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,24 @@
77

88
module Data.Text.Lazy.Builder where
99

10-
type Builder = String
11-
fromText = id
12-
singleton = (:[])
13-
toLazyText = id
10+
import Data.String (IsString (..))
11+
12+
newtype Builder = Builder (String -> String)
13+
14+
instance IsString Builder where
15+
fromString s = Builder (s ++)
16+
17+
instance Semigroup Builder where
18+
Builder a <> Builder b = Builder (a . b)
19+
20+
instance Monoid Builder where
21+
mempty = Builder id
22+
23+
fromText :: String -> Builder
24+
fromText t = Builder (t ++)
25+
26+
singleton :: Char -> Builder
27+
singleton c = Builder ([c] ++)
28+
29+
toLazyText :: Builder -> String
30+
toLazyText (Builder b) = b ""
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module Prettyprinter.Compat.Text
2+
( module Data.Text
3+
) where
4+
5+
import Data.Text
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module Prettyprinter.Compat.Text.IO
2+
( module Data.Text.IO
3+
) where
4+
5+
import Data.Text.IO
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module Prettyprinter.Compat.Text.Lazy
2+
( module Data.Text.Lazy
3+
) where
4+
5+
import Data.Text.Lazy
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module Prettyprinter.Compat.Text.Lazy.Builder
2+
( module Data.Text.Lazy.Builder
3+
) where
4+
5+
import Data.Text.Lazy.Builder

prettyprinter/src/Prettyprinter/Render/Text.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,8 @@
44

55
-- | Render an unannotated 'SimpleDocStream' as plain 'Text'.
66
module Prettyprinter.Render.Text (
7-
#ifdef MIN_VERSION_text
87
-- * Conversion to plain 'Text'
98
renderLazy, renderStrict,
10-
#endif
119

1210
-- * Render to a 'Handle'
1311
renderIO,

0 commit comments

Comments
 (0)