text-show
Efficient conversion of values into Text
https://github.com/RyanGlScott/text-show
| LTS Haskell 24.18: | 3.11.2 | 
| Stackage Nightly 2025-11-04: | 3.11.2 | 
| Latest on Hackage: | 3.11.2 | 
text-show-3.11.2@sha256:c7fc71f0101d1fcd3d3a3ddd3f105a20ddb45f52897445bffdc529d133a3e6ce,15296Module documentation for 3.11.2
- TextShow
- TextShow.Control
 - TextShow.Data
- TextShow.Data.Array
 - TextShow.Data.Bool
 - TextShow.Data.ByteString
 - TextShow.Data.Char
 - TextShow.Data.Complex
 - TextShow.Data.Data
 - TextShow.Data.Dynamic
 - TextShow.Data.Either
 - TextShow.Data.Fixed
 - TextShow.Data.Floating
 - TextShow.Data.Functor
 - TextShow.Data.Integral
 - TextShow.Data.List
 - TextShow.Data.Maybe
 - TextShow.Data.Monoid
 - TextShow.Data.Ord
 - TextShow.Data.Proxy
 - TextShow.Data.Ratio
 - TextShow.Data.Semigroup
 - TextShow.Data.Text
 - TextShow.Data.Tuple
 - TextShow.Data.Type
 - TextShow.Data.Typeable
 - TextShow.Data.Version
 - TextShow.Data.Void
 
 - TextShow.Debug
 - TextShow.Foreign
- TextShow.Foreign.C
 - TextShow.Foreign.Ptr
 
 - TextShow.Functions
 - TextShow.GHC
 - TextShow.Generic
 - TextShow.Numeric
 - TextShow.System
- TextShow.System.Exit
 - TextShow.System.IO
 - TextShow.System.Posix
 
 - TextShow.TH
 - TextShow.Text
 
 
text-show
text-show offers a replacement for the Show typeclass intended for use with Text instead of Strings. This package was created in the spirit of bytestring-show.
For most uses, simply importing TextShow will suffice:
module Main where
import TextShow
main :: IO ()
main = printT (Just "Hello, World!")
See also the naming conventions page.
Support for automatically deriving TextShow instances can be found in the TextShow.TH and TextShow.Generic modules.
Scope of the library
text-show only provides instances for data types in the following packages:
This policy is in place to keep text-show’s dependencies reasonably light. If
you need a TextShow instance for a library that is not in this list, it may
be covered by the
text-show-instances
library.
Changes
3.11.2 [2025.06.17]
- Support building with the GHC JavaScript backend.
 
3.11.1 [2024.12.28]
- Make the test suite pass with 
base-4.21.*(GHC 9.12). 
3.11 [2024.10.23]
- Support building with GHC 9.12.
 - Add a 
TextShowinstance forIoManagerFlaginTextShow.GHC.RTS.Flags(if building withbase-4.21/GHC 9.12 or later). - Drop support for pre-8.0 versions of GHC.
 - Remove 
TextShow.Data.OldTypeable. The code in this module only worked with old versions of GHC that are no longer supported. 
3.10.5 [2024.04.20]
- Support building with GHC 9.10.
 - Ensure that the 
TextShowinstance forTypeRepproperly displays unboxed tupleTypeRepvalues. - Add a 
TextShowinstance forHpcFlags(inTextShow.GHC.RTS.Flags) when building with GHC 9.10 or later. 
3.10.4 [2023.08.06]
- Support building with GHC 9.8.
 - Ensure that the 
TextShowinstance forTypeRepproperly displaysTypeRep []as"[]". - Ensure that the 
TextShowinstance forTypeRepproperly handles partial applications of tuple constructors (e.g.,(,) Int). - Support deriving 
TextShow(1)(2)instances for data types with fields of typeInt64#orWord64#on GHC 9.8 or later. - When generating 
TextShow(1)(2)instances withTextShow.THusing GHC 9.8 or later, data types that have fields of typeInt{8,16,32,64}#orWord{8,16,32,64}#will be printed using extended literal syntax, mirroring corresponding changes introduced in GHC 9.8 (see https://github.com/ghc-proposals/ghc-proposals/pull/596). 
3.10.3 [2023.06.03]
- Support building with 
QuickCheck-2.14.3in the test suite. 
3.10.2 [2023.03.05]
- Allow building with GHC 9.6.
 - Add 
TextShowinstances forSomeChar(if building withbase-4.16or later), as well asSNat,SSymbol, andSChar(if building withbase-4.18or later). 
3.10.1 [2023.02.27]
- Support 
th-abstraction-0.5.*. 
3.10 [2022.10.05]
- 
The instances in
TextShow.FromStringTextShowmodule have been scaled back somewhat for forward compatibility with Core Libraries proposal #10, which will add quantifiedShowsuperclasses toShow1andShow2:- 
FromStringShowandFromTextShowno longer haveShow1orTextShow1instances. If you want to derive instances ofShow1orTextShow1via a newtype, useFromStringShow1orFromTextShow1instead. - 
The
Showinstances forFromTextShow1andFromTextShow2have had their instance contexts changed to accommodate the new superclasses inShow1andShow2:-instance (TextShow1 f, TextShow a) => Show (FromTextShow1 f a) +instance (TextShow1 f, Show a) => Show (FromTextShow1 f a) -instance (TextShow2 f, TextShow a, TextShow b) => Show (FromTextShow2 f a b) +instance (TextShow2 f, Show a, Show b) => Show (FromTextShow2 f a b)While these instances do technically work, they are probably not what you would have in mind if you wanted to derive a
Showinstance purely in terms ofTextShowclasses. For this reason, if you want to derive an instance ofShowvia a newtype, useFromTextShowinstead. - 
By similar reasoning, the
Show1instance forFromTextShow2has had its instance context changed:-instance (TextShow2 f, TextShow a) => Show1 (FromTextShow2 f a) +instance (TextShow2 f, Show a) => Show1 (FromTextShow2 f a) - 
By similar reasoning, the
TextShowinstances forFromStringShow1andFromStringShow2, as well as theTextShow1instance forFromStringShow2, have had their instance contexts changed:-instance (Show1 f, Show a) => TextShow (FromStringShow1 f a) +instance (Show1 f, TextShow a) => TextShow (FromStringShow1 f a) -instance (Show2 f, Show a, Show b) => TextShow (FromStringShow2 f a b) +instance (Show2 f, TextShow a, TextShow b) => TextShow (FromStringShow2 f a b) -instance (Show2 f, Show a) => TextShow1 (FromStringShow2 f a) +instance (Show2 f, TextShow a) => TextShow1 (FromStringShow2 f a) 
 - 
 - 
The
TextShow{1,2}classes now have quantified superclasses:class (forall a. TextShow a => TextShow (f a)) => TextShow1 f where ... class (forall a. TextShow a => TextShow1 (f a)) => TextShow2 f where ...This mirrors corresponding changes made to
Show1andShow2in thebaselibrary. See https://github.com/haskell/core-libraries-committee/issues/10.Because of this change, any code that defines a
TextShow1instance for a data type without a correspondingTextShowinstance will no longer compile, so you may need to define moreTextShowinstances to adapt to this change. Similarly,TextShow2instances will now also require correspondingTextShowandTextShow1instances. - 
The
GTextShow*classes inTextShow.Generic, which power generic derivation ofTextShowandTextShow1instances, have been split up to facilitate the addition of a quantified superclass toTextShow1. Moreover, theShowFuns*data types, theZerodata type, and the `One data type have been removed, as they are no longer necessary in light of this split.Although this is a breaking API change, the changes should be invisible to most users of the module, especially if your code only uses it to derive
TextShow{,1}instances. - 
Add a
TextShowinstance forByteArrayfromData.Array.Bytewhen building withbase-4.17.0.0or later. 
3.9.7 [2022.05.28]
- Allow the test suite to build with GHC 9.4.
 - Allow building with 
transformers-0.6.*. 
3.9.6 [2022.01.14]
text-showno longer depends oninteger-gmpwhen built with GHC 9.0 or later. When building with older versions of GHC, theinteger-gmpdependency can be toggled by disabling theinteger-gmpcabalflag.
3.9.5 [2022.01.03]
- Work around a GHC 8.0–specific issue in which GHC’s simplifier ticks would become exhausted, causing compilation to fail.
 
3.9.4 [2021.12.26]
- Allow the test suite to build with 
text-2.0.*andtransformers-compat-0.7.1. 
3.9.3 [2021.10.31]
- Allow building with GHC 9.2.
 - Drop support for GHC 7.4 and 7.6.
 - Add 
TextShow(1)instances forSolowhen building withghc-prim-0.7or later. - Support deriving 
TextShow(1)(2)instances for data types with fields of typeInt32#orWord32#on GHC 8.2 or later. 
3.9.2 [2021.08.30]
- Require 
generic-deriving-1.14.1or later in the test suite. 
3.9.1 [2021.08.29]
- Require 
base-orphans-0.8.5or later in the test suite. 
3.9 [2020.10.03]
- Allow building with GHC 9.0.
 - Remove 
TextShow(1)instances forData.Semigroup.Option, which is deprecated as ofbase-4.15.0.0. - Fix a bug in which 
deriveTextShow{1,2}would needlessly reject data types whose last type parameters appear as oversaturated arguments to a type family. 
3.8.5 [2020.02.28]
- Import from 
GHC.Exts, notGHC.Prim. 
3.8.4 [2020.01.28]
- Update the 
TextShow(1)instances forDownandThreadIdto match their implementations inbase-4.14. 
3.8.3 [2019.11.06]
- Use 
base-compat-batteries-0.11.0to define instances for(:~:)back tobase-4.5and instances for(:~~:)back tobase-4.9. 
3.8.2 [2019.05.02]
- Make the 
TextShowinstances forUArrayandFixeduse the correct precedence onbase-4.13or later. - Support deriving 
TextShow(1)(2)instances for data types with fields of typeInt8#,Int16#,Word8#, orWord16#on GHC 8.8 or later. 
3.8.1 [2019.04.26]
- Support 
th-abstraction-0.3or later. 
3.8 [2019.03.19]
- Remove the 
TextShow I16instance fromTextShow.Data.Text. The usefulness of this instance was dubious at best, and moreover, it was actively causing issues when buildingtext-showwithreflex-platform(see #40). 
3.7.5 [2018.10.07]
- Actually make 
showbEFloat’s behavior match that ofshowEFloatinbase-4.12. - Remove uses of 
AutoDeriveTypeable, since it is now deprecated. (As a result, some things which used to haveTypeableinstances on GHC 7.8 no longer do, but I’m choosing not to be bothered by this unless someone shouts.) 
3.7.4 [2018.07.03]
- Add 
FromGenericandFromGeneric1newtype adapters toTextShow.Generic. These are suitable for use withDerivingVia, and provide a convenient way to obtainGeneric(1)-based defaults forTextShow(1)instances. - Add 
TextShow(1)instances forData.Monoid.Aponbase-4.12or later. - Make 
showbEFloat’s behavior match that ofshowEFloatinbase-4.12. 
3.7.3 [2018.04.07]
- Use 
base-compat-batteries. - Add a 
TextShow FixIOExceptioninstance onbase-4.11or later. 
3.7.2 [2018.03.08]
- Depend on 
quickcheck-instances-0.3.18or later. 
3.7.1 [2017.12.29]
- Don’t define a 
TextShow GCStatsinstance on GHC 8.4 or later, asGCStatshas been removed frombase. This fixes the build on GHC 8.4. 
3.7 [2017.12.07]
- Use 
EmptyCaseon GHC 7.8 or later forTextShow(1)instances for empty data types that are derived usingTextShow.Generic. - Derived 
TextShow(1)(2)instances (usingTextShow.TH) will now force their argument instead of simplyerroring. - Add 
emptyCaseBehaviortoOptions, which configures whether derived instances (usingTextShow.TH) for empty data types should use theEmptyCaseextension (this is disabled by default). 
3.6.2 [2017.06.18]
- Drop support for GHC 7.0 and 7.2
 - Require 
QuickCheck-2.10/quickcheck-instances-0.13.6or later 
3.6 [2017.04.22]
- Introduce some ‘TextShow’ instances for datatypes added in 
base-4.10.0.0:CBool(fromForeign.C.Types)CBlkSize,CBlkCnt,CClockId,CFsBlkCnt,CId,CKey, andCTimer(fromSystem.Posix.Types)CompactionFailed(fromControl.Exception)(:~~:)(fromData.Type.Equality)TypeRepandSomeTypeRep(fromType.Reflection)
 - Remove most monomorphic 
TextShowfunctions, as their utility is questionable, and their maintenance burden is undeniable - Add 
showbCommaSpace,showtCommaSpace, andshowtlCommaSpacetoTextShow. This appears quite frequently in derivedTextShowinstances, so it is likely worthwhile to define it once. - Rename 
showbVersionConcretetoshowbVersioninTextShow.Data.Version - Add 
SPECIALIZEpragmas forshowbEFloat,showbFFloat, andshowbGFloatinTextShow.Data.Floating, mirroring the ones inNumeric - Generalize the kind of the last type parameter for the 
TextShow (Const a b)instance, which previously had been defaulted to* - Refactor test suite
 
3.4.1.1 [2016.11.07]
- Require 
criterion-1.1.4or later. This allows the benchmarks to be run on older versions of GHC. 
3.4.1 [2016.10.20]
- Require 
QuickCheck-2.9or later - Fix bug in which infix record selectors weren’t shown with parentheses
 
3.4
- The default definitions of 
showtandshowtlwere changed toshowtPrec 0andshowtlPrec 0, respectively deriveTextShowOptions,deriveTextShow1Options, andderiveTextShow2Optionsadded toTextShow.TH, which allow further configuration of howTextShow(1)(2)instances should be derived using the newOptionsdata type.Optionsitself containsGenTextMethods, which configures whether manual implementations ofTextShowshould implement the methods that return strict and lazyText.- The 
defaultOptionsusesSometimesTextMethods, which only implements theText-returning methods if the datatype contains only nullary constructors (i.e., it is an enumeration type). For example,deriveTextShow = deriveTextShowOptions defaultOptions. One can also chooseAlwaysTextMethodsorNeverTextMethodsinstead. 
- The 
 - The internals of 
TextShow.Genericwere refactored so that is possible to generically deriveshowbPrec,showtPrec, andshowtlPrec(which useBuilder, strictText, and lazyText, respectively). Before, only generic derivation ofshowbPrecwas possible, and all other generic functions were defined in terms ofshowbPrec.- The internal class 
GTextShowwas split up intoGShowB,GShowT, andGShowTL, depending on what type it returns. - As a result, functions like 
genericShowtPrecmight be faster than before if they are showing something like an enumeration type, since they no longer construct an intermediateBuilder. On the other hand, they might be slower if they are showing a constructor with many fields, since they will now be appending lots ofTexts. If so, make sure to switch togenericShowbPrecand convert the finalBuildertoTextinstead. 
 - The internal class 
 - Added 
showtParen,showtSpace,showtlParen,showtlSpace,liftShowtPrec,liftShowtPrec2,liftShowtlPrec, andliftShowtlPrec2toTextShow - Added 
showtPrecToShowbPrec,showtlPrecToShowbPrec,showtToShowb,showtlToShowb,showbPrecToShowtPrec,showbPrecToShowtlPrec,showbToShowt, andshowbToShowtltoTextShow - Added 
showtListWithandshowtlListWithtoTextShow.Data.List - Added 
Datainstance forConTypeinTextShow.Generic - Require 
generic-deriving-1.11or later 
3.3
- Refactored the internals of 
TextShow.Genericto avoid the use of proxies. - Made benchmark suite more comprehensive, including benchmarks for showing an enumeration type
 - Microoptimization in derived 
TextShow1/2instances involvingTextShow.TH - Allow building with 
QuickCheck-2.9 - Fix GHC HEAD build
 
3.2.2
- Added benchmarks
 
3.2.1
- Fixed compilation on GHC 8.0
 
3.2
- Rewrote 
TextShow.Genericto enable more code reuse. TheGTextShow1andGTextShow1Conclasses were eliminated, andGTextShowandGTextShowConwere redesigned to be able to generically implement bothshowbPrecandliftShowbPrec. The latter two classes now take an additionalaritytype parameter which isZeroifTextShowis being derived andOneisTextShow1is being derived. 
3.1
- Made the derived 
TextShowoutput of record datatypes match that ofShowin GHC 8.0 (now that Trac #2530 has been reverted) - Fixed GHC 8.0 build (again)
 
3.0.1
- Added the 
TextShow.GHC.Stackmodule, which providesTextShowinstances forCallStackandSrcLoconbase-4.8.1and up. - Fix Haddock rendering error
 
3
- 
GHC 8.0 support
 - 
The functions
showt,showtl,showtPrec,showtlPrec,showtList, andshowtlListare now part of theTextShowclass. This was done to allow overriding their definitions with more efficient versions specifically for strict or lazyText. (Currently, noTextShowinstance in thetext-showpackage does this, but this may change in the future.) - 
Added the
TextShow.Data.Functor.Compose,TextShow.Data.Functor.Product,TextShow.Data.Functor.Sum, andTextShow.Data.Semigroupmodules - 
Added
TextShowinstance forTypeErrorinTextShow.Control.Exception(GHC 8.0+) - 
Added
TextShowinstances forTrNameandModuleinTextShow.Data.Typeable(GHC 8.0+) - 
Added
Liftinstances for the datatypes inTextShowandTextShow.Generic - 
Renamed the class methods of
TextShow1andTextShow2to be consistent with the naming conventions oftransformers-0.5. They following were renamed:showbPrecWith→liftShowbPrecshowbPrecWith2→liftShowbPrec2makeShowbPrecWith→makeLiftShowbPrecmakeShowbPrecWith2→makeLiftShowbPrec2genericShowbPrecWith→genericLiftShowbPrec
In addition, many other monomorphic functions from the various
TextShowsubmodules were also renamed to be consistent with the newlift-prefix. - 
showsToShowbandshowbToShowsnow only convert functions that ignore precedence (i.e., of typea -> ShowSora -> Builder). Their former role has been given to the new functionsshowsPrecToShowbPrecandshowbPrecToShowsPrec - 
Added
FromStringShow1,FromTextShow1,FromStringShow2, andFromTextShow2, which allow defining stringShow1/Show2instances in terms ofTextShow1/TextShow2instances, and vice versa. Be aware that many of these instances cannot be provided if you are usingtranformers-0.4, since its version ofData.Functor.Classesuses a very differenltly designedShow1typeclass (and does not haveShow2at all). - 
Rewrote
TextShow.TH’s type inferencer. This avoids a nasty GHC 7.8 bug, and it allowsTextShow(1)(2)to be derived for more datatypes that can only be expressed with-XTypeInTypeenabled. - 
Reworked internals of
TextShow.Generic. Empty datatypes can now be have genericTextShowandTextShow1instances. 
2.1.2
- Fixed GHC 7.10.3 build
 - Extended 
TextShow.Genericto allowgenericShowbPrec(and friends) to be used onGenericdatatypes withChar#,Double#,Float#,Int#, andWord#argument types, just like stringShowdoes - Added 
Generic1instances forFromStringShowandFromTextShow - Added 
TextShowinstances forUChar,UDouble,UFloat,UInt, andUWordinTextShow.GHC.Generics 
2.1.1
- Restore support for 
semigroups-0.16.1 
2.1
- Require 
semigroups>= 0.17 - Added 
showsToShowbandshowbToShowstoTextShow - Added 
TextShow1 FromStringShowinstance - Added 
showbGiveGCStats,showbDoCostCentres,showbDoHeapProfile, andshowbDoTracetoTextShow.GHC.RTS.Flagsif usingbase-4.8.2or later - Exported 
showbDownPrecWithon earlier versions of GHC - Fixed mistakes in TH error output
 - Make 
Proxy,Coercion, and(:~:)instances poly-kinded - Changed implementation of 
showbByteStringStrict,showbByteStrictLazy(Prec),showbShortByteString(inTextShow.Data.ByteString),showbThreadIdPrec(inTextShow.Control.Concurrent),showbEvent, andshowbFdKeyPrec(inTextShow.GHC.Event) to avoid usingStrings as an intermediary 
2
- Changed the top-level module name from 
Text.Show.TexttoTextShow, since the former was extremely verbose without much benefit. As a result, this will break all existing code that depends ontext-show. - Several typeclasses and functions were renamed so as to not to clash with the 
Prelude:Show→TextShowShow1→TextShow1Show2→TextShow2show→showtshowLazy→showtlshowPrec→showtPrecshowPrecLazy→showtlPrecshowList→showtListshowListLazy→showtlListprint→printTprintLazy→printTLhPrint→hPrintThPrintLazy→hPrintTLGShow→GTextShowGShow1→GTextShow1genericShow→genericShowtgenericShowLazy→genericShowtlgenericShowPrec→genericShowtPrecgenericShowPrecLazy→genericShowtlPrecgenericShowList→genericShowtListgenericShowListLazy→genericShowtlListgenericPrint→genericPrintTgenericPrintLazy→genericPrintTLgenericHPrint→genericHPrintTgenericHPrintLazy→genericHPrintTLderiveShow→deriveTextShowderiveShow1→deriveTextShow1deriveShow2→deriveTextShow2mkShow→makeShowtmkShowLazy→makeShowtlmkShowPrec→makeShowtPrecmkShowPrecLazy→makeShowtlPrecmkShowList→makeShowtListmkShowListLazy→makeShowtlListmkShowb→makeShowbmkShowbPrec→makeShowbPrecmkShowbList→makeShowbListmkPrint→makePrintTmkPrintLazy→makePrintTLmkHPrint→makeHPrintTmkHPrintLazy→makeHPrintTLmkShowbPrecWith→makeShowbPrecWithmkShowbPrec1→makeShowbPrec1mkShowbPrecWith2→makeShowbPrecWith2mkShowbPrec2→makeShowbPrec2trace→tracettraceLazy→tracetltraceId→tracetIdtraceIdLazy→tracetlIdtraceShow→traceTextShowtraceShowId→traceTextShowIdtraceStack→tracetStacktraceStackLazy→tracetlStacktraceIO→tracetIOtraceIOLazy→tracetlIOtraceM→tracetMtraceMLazy→tracetlMtraceShowM→traceTextShowMtraceEvent→tracetEventtraceEventLazy→tracetlEventtraceEventIO→travetEventIOtraceEventIOLazy→tracetlEventIOtraceMarker→tracetMarkertraceMarkerLazy→tracetlMarkertraceMarkerIO→tracetMarkerIOtraceMarkerIOLazy→tracetlMarkerIOgenericTraceShow→genericTraceTextShowgenericTraceShowId→genericTraceTextShowIdgenericTraceShowM→genericTraceTextShowMmkTraceShow→makeTraceTextShowmkTraceShowId→makeTraceTextShowIdmkTraceShowM→makeTraceTextShowM
 - Added 
TextShow Lifetimeinstance inTextShow.GHC.Event(if usingbase-4.8.1.0or later) - Generalized 
tracetM,tracetlM, andtraceTextShowMto use anApplicativeconstraint instead ofMonad - Fixed a bug in which the 
TextShow(1)instances forProxy,(:~:), andCoerciondidn’t use-XPolyKinds - Fixed a bug in the Template Haskell deriver which would cause 
deriveTextShowto fail on type parameters with sufficiently high kinds 
1
- The 
Show1class has been completely overhauled.Show1now uses the functionshowbPrecWith, which takes as an argument a function of typeInt -> a -> Builderto show occurrences of the type parameter (instead of requiring the type parameter to be aShowinstance). This matches the new implementation ofShow1in the next version oftransformers. A similarShow2class (with the functionshowbPrecWith2) was also added. - As a consequence, 
Show1instances should no longer be defined in terms ofshowbPrec; rather,Showinstances should be defined in terms ofshowbPrecWithorshowbPrecWith2, andShow1instances can be defined in terms ofshowbPrecWith2. - The 
showbPrec1function is no longer a class method ofShow1, but is now a standalone function defined in terms ofshowbPrecWith.showbPrec1can be useful for definingShowinstances. A similarshowbPrec2function was also added. - The monomorphic functions in the many submodules of this package have been generalized (where possible) to use 
Show1andShow2instances. These functions have-PrecWithand-PrecWith2suffixes, respectively. - Because of the generality of the new 
showPrecWithfunction,Show1instances are now possible forRatio,Alt,Rec1,M1,(:+:),(:*:), and(:.:). - Removed many silly instances for 
FromStringShowandFromTextShow, since they’ll never be used in the ways suggested by those instances to begin with. - The Template Haskell engine has been completely overhauled. Deriving 
Show1andShow2instances are now possible using thederiveShow1andderiveShow2functions. See the documentation inText.Show.Text.THfor more details. In addition, themkShowbPrecWith,mkShowbPrec1,mkShowbPrecWith2, andmkShowbPrec2functions were added. - Removed the ability to call 
deriveShowormkShowbPrec(or other functions prefixed withmk-) using a data family name. This is considered a misfeature. If you want to deriveShowfor data family instances, use the correspondingdata instanceornewtype instanceconstructor name as an argument instead. - Removed 
PragmaOptions,deriveShowPragmas,defaultInlineShowbPrec,defaultInlineShowb, anddefaultInlineShowbList, as it was impossible to make Template Haskell-generated pragmas work consistently across different versions of GHC. If you really want to useINLINEandSPECIALIZE instancepragmas with your Template Haskell-generated code, create manual instances withmkShowbPrecand family. Show1instances can now be created generically using thegenericShowbPrecWithfunction inText.Show.Text.Generics. AgenericShowbPrec1was also added.- Added 
generic-derivingas a dependency, which allows generics-related code to be exported on more versions of GHC ConType(inText.Show.Text.Generics) now has anInf Stringconstructor instead ofInf Builder. As a result,ConTypenow always anEqandOrdinstance, and aRead ConTypeinstance was added.Typeableinstances for the promoted data constructors'FromStringShowand'FromTextShow- Added 
showbFPFormattoText.Show.Text.Data.Floating - Revamped test suite
 
0.8.1.1
- Retroactive 
CHANGELOGupdate 
0.8.1
- Fix test suite build with older versions of 
QuickCheck 
0.8
- Exported 
formatRealFloatBandformatRealFloatAltBfromText.Show.Text.Data.Floating. ReexportedFPFormat(fromtext) in the same module, and added aTextShowinstance for it. - The 
Showinstance forRatio anow only requires aShow aconstraint if usingbase-4.4.0.0or later (if usingbase-4.3.0.0, it requires a(Show a, Integral a)constraint) - Added 
showbSingPrectoText.Show.Text.GHC.TypeLits(if usingbase-4.6) - Modules which were previously exported only if using a recent-enough version of GHC/
base(e.g.,Text.Show.Text.GHC.Generics) are now always exposed. If the functionality that the module provides is not available on a given version of GHC/base, the module will not expose anything. - Bump lower version bounds of 
textto 0.11.1 due to reexportingFPFormat - Added 
showbUnicodeException,showbI16Prec,showbDecodingPrec, andshowbSizePrecfunctions (and correspondingShowinstances) toText.Show.Text.Data.Text - Made 
GShowinText.Show.Text.Genericspoly-kinded - The Template Haskell deriver (and 
GShow) now handles “infix” data constructors that are applied as prefix correctly (e.g.,data Amp a = (:&) a a) - The Template Haskell deriver now handles showable unlifted types (
Char#,Double#,Float#,Int#, andWord#) correctly on GHC 7.11 and later - The Template Haskell derive now does not parenthesize record types regardless of precedence on GHC 7.11 and later
 - Fixed build on GHC 7.2
 - Changed test-suite to use 
hspec, which allows for it to be built on GHC 7.0 and 7.2 
0.7.0.1
- Disabled 
print-related tests, as they sporadically break referential transparency for unknown reasons - Fixed build on Windows
 
0.7
- Added 
showbConstPrec(and correspondingShowandShow1instances forConst) toText.Show.Text.Control.Applicative - Added 
showbUArrayPrec(and correspondingShowinstance forUArrays) andshowbIArrayPrectoText.Data.Text.Data.Array. - Renamed 
showbListDefaulttoshowbListWithto match howText.Shownames it - Exposed 
showbShortByteStringwith all versions ofbytestringby using thebytestring-builderpackage - Corrected the 
Showinstance forLexeme(inText.Show.Text.Text.Read.Lex) - Fixed 
TypeRepoutput on GHC 7.10 and later - Removed 
LitCharandLitStringfromText.Show.Text.Data.Char, as they were not as useful as I had imagined. - Removed the deprecated 
replicateBfunction Typableinstances forShow,Show1, andGShow(with GHC 7.8 and later)Typeableinstance forConType- Only derive 
EqandOrdforConTypeif a recent-enough version oftextis used - Changed the implementations of some functions in 
Text.Show.Text.Debug.Traceto useByteStrings instead ofStrings 
0.6.0.1
- Forgot to include some header files in 
text-show.cabal 
0.6
deriveShowcan now construct instances for data families, using either the data family name or a data instance constructor as an argument. See the documentation inText.Show.Text.THfor more details.- Fixed a bug in which infix backticked data constructors (e.g., 
data Add = Int `Plus` Int) would not be shown correctly. - Fixed typo in 
Text.Show.Text.GHC.RTS.Flags - Removed the phantom-type detecting mechanism with 
template-haskell-2.9.0.0or higher. This method of finding phantom types is intrinsically flawed and is not usable on older GHCs. - Added generics support with the 
Text.Show.Text.GenericandText.Show.Text.Debug.Trace.Genericmodules - Deprecated 
replicateBin favor oftimesNfrom thesemigroupslibrary - Added 
FromTextShowtoText.Show.Text, which admits aStringShowinstance for any data type with aTextShowinstance (the counterpart ofFromStringShow) - Added 
MonoidandSemigroupinstances forFromStringShow,Semigroupinstance forLitString,IsCharinstance forLitChar, andIsStringinstance for[LitChar] - Changed the 
StringShowinstances ofFromStringShow,LitChar, andLitStringto more closely match theTextShowinstances. As a result, theReadinstances for these data types were also changed so thatread . show = read . show = id. - Removed the 
recent-textflag. We’ll allow users to build with older versions oftext, but the latest version is recommended. Because of this, theinteger-simpleandinteger-gmpflags are not needed. - Removed the 
integer-gmp2flag, as it supported a configuration that didn’t actually compile on GHC - Removed the 
transformers-fourflag, as it is not needed now thattransformers-compatis a dependency 
0.5
- Fix build for GHC 7.10, old GHC versions, and Windows
 - Removed the 
Text.Show.Text.Data.ContainersandText.Show.Text.Data.Timemodules. The modules for the data types incontainersandtimewere migrated to a separate library,text-show-instances. - Removed the 
-ftext-formatflag, astext-showno longer usestext-format. - A serious bug in the 
textpackage that caused segfaults when building largeIntegers was fixed intext-1.2.0.2. A flag (-frecent-text) was added that allows you to take advantage of this. - Fixed a bug that would cause the output of functions in the 
Text.Show.Text.Data.Floatingmodule to not matchbasedepending on what version ofbaseis used. - The type signatures of lambda expressions generated by 
mkShowand related functions were loosened to allow them to be used to “manually” deriveShowinstances for data types with higher-kinded type parameters or type arguments with restrictedShowinstances. This should not be a breaking change; you can simply do more withmkShowet al. than you could before. For more information, see the documentation inText.Show.Text.TH. - Loosened the 
Showinstance ofComplex ato only depend onShow a(previously requiredRealFloat a) if using base-4.4.0.0 or later - Moved 
showbRatioPrectoText.Show.Text.Data.Ratio,showbComplexPrectoText.Show.Text.Data.Complex,showbProxytoText.Show.Text.Data.Proxy, andshowbFingerprinttoText.Show.Text.GHC.Fingerprint - Added 
deriveShowPragmastoText.Show.Text.THto allow users to specifyINLINEorSPECIALIZE instancepragmas withShowinstances. - Added 
FromStringShow,showbSpace,showbUnary,showbUnary1, andshowbBinary1toText.Show.Text - Added 
mkShowList,mkShowListLazy, andmkShowbListtoText.Data.Text.TH - For base-4.8.0.0 and above, added the 
Text.Show.Text.Data.Functor.Identity,Text.Show.Text.Data.Void,Text.Show.Text.GHC.RTS.Flags,Text.Show.Text.GHC.StaticPtr, andText.Show.Text.Numeric.Naturalmodules. Also addedShowinstances forAllocationLimitExceededinText.Show.Text.Control.ExceptionandAltinText.Show.Text.Data.Monoid. Also fixed theShowinstance forFixedvalues. - Added the 
Text.Show.Text.Data.GHC.Conc.Windowsmodule (Windows-only) - Added the 
Text.Show.Text.Data.OldTypeablemodule for base-4.7 - Added the 
Text.Show.Text.GHC.TypeLitsmodule for base-4.6 and above - Added the 
Text.Show.Text.Debug.TraceandText.Show.Text.Debug.Trace.THmodules as an analog toDebug.Trace - Added the 
Show1class and corresponding instances for unary type constructors. - Added 
LitCharandLitStringtoText.Show.Text.Data.Char - Exported 
asciiTabBinText.Show.Text.Data.Char - Renamed 
showbTextStrictto ‘showbText’ (to keep with naming conventions in thetextlibrary) and addedshowbBuildertoText.Show.Text.Data.Text. 
0.4.1
- Added the utility functions 
toTextandtoStringfor working withBuilders. 
0.4
- Due to GHC bug #5289, projects that depend on the 
double-conversionlibrary (such astext-format, a dependency oftext-show) may break due to GHC incorrectly linking against libstdc++. Therefore,text-showwas changed so that it does not depend ontext-formatby default. This behavior can be changed by using the-ftext-formatflag when usingcabal. - Added 
showbZonedTimetoText.Show.Text.Data.Time(and correspondingShowinstance forZonedTime) - Exposed 
showbMaskingState(is was already there, I just forgot to export it) - If using GHC 7.6 or earlier, depend on tagged so that 
Data.Proxy(and thusshowbProxyfromText.Show.Text.Data.Typeable) can be used - Refactored code to use Template Haskell derivations when possible
 
0.3.1.0
- Added 
showListandshowListLazy - Don’t use 
showbListDefaultto showcontainersdata types - Added the ability to splice 
showfunctions for arbitrary data types (even if they aren’tShowinstances). These functions aremkShow,mkShowLazy,mkShowPrec,mkShowPrecLazy,mkShowb,mkShowbPrec,mkPrint,mkPrintLazy,mkHPrint, andmkHPrintLazy. 
0.3.0.0
- Lots of bugfixes
 Showinstances for many other data types inbase,containersandtime- Exposed internal modules with monomorphic functions
 Text.Show.Textnow exportsData.Text.Lazy.Builderfor convenience- Add 
showLazy,showPrec,showPrecLazy,printLazy,hPrint,hPrintLazy,lengthB, andreplicateB - Template Haskell derivation of 
Showinstances (doesn’t support data families yet) 
0.2.0.0
- Added 
Showinstances for strict and lazyText 
0.1.0.0
- Initial commit