text-show
Efficient conversion of values into Text
https://github.com/RyanGlScott/text-show
| LTS Haskell 24.17: | 3.11.2 | 
| Stackage Nightly 2025-10-31: | 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 on- integer-gmpwhen built with GHC 9.0 or later. When building with older versions of GHC, the- integer-gmpdependency can be toggled by disabling the- integer-gmp- cabalflag.
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(from- Foreign.C.Types)
- CBlkSize,- CBlkCnt,- CClockId,- CFsBlkCnt,- CId,- CKey, and- CTimer(from- System.Posix.Types)
- CompactionFailed(from- Control.Exception)
- (:~~:)(from- Data.Type.Equality)
- TypeRepand- SomeTypeRep(from- Type.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, and- deriveTextShow2Optionsadded to- TextShow.TH, which allow further configuration of how- TextShow(1)(2)instances should be derived using the new- Optionsdata type.- Optionsitself contains- GenTextMethods, which configures whether manual implementations of- TextShowshould implement the methods that return strict and lazy- Text.- 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→- liftShowbPrec
- showbPrecWith2→- liftShowbPrec2
- makeShowbPrecWith→- makeLiftShowbPrec
- makeShowbPrecWith2→- makeLiftShowbPrec2
- genericShowbPrecWith→- 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→- TextShow
- Show1→- TextShow1
- Show2→- TextShow2
- show→- showt
- showLazy→- showtl
- showPrec→- showtPrec
- showPrecLazy→- showtlPrec
- showList→- showtList
- showListLazy→- showtlList
- print→- printT
- printLazy→- printTL
- hPrint→- hPrintT
- hPrintLazy→- hPrintTL
- GShow→- GTextShow
- GShow1→- GTextShow1
- genericShow→- genericShowt
- genericShowLazy→- genericShowtl
- genericShowPrec→- genericShowtPrec
- genericShowPrecLazy→- genericShowtlPrec
- genericShowList→- genericShowtList
- genericShowListLazy→- genericShowtlList
- genericPrint→- genericPrintT
- genericPrintLazy→- genericPrintTL
- genericHPrint→- genericHPrintT
- genericHPrintLazy→- genericHPrintTL
- deriveShow→- deriveTextShow
- deriveShow1→- deriveTextShow1
- deriveShow2→- deriveTextShow2
- mkShow→- makeShowt
- mkShowLazy→- makeShowtl
- mkShowPrec→- makeShowtPrec
- mkShowPrecLazy→- makeShowtlPrec
- mkShowList→- makeShowtList
- mkShowListLazy→- makeShowtlList
- mkShowb→- makeShowb
- mkShowbPrec→- makeShowbPrec
- mkShowbList→- makeShowbList
- mkPrint→- makePrintT
- mkPrintLazy→- makePrintTL
- mkHPrint→- makeHPrintT
- mkHPrintLazy→- makeHPrintTL
- mkShowbPrecWith→- makeShowbPrecWith
- mkShowbPrec1→- makeShowbPrec1
- mkShowbPrecWith2→- makeShowbPrecWith2
- mkShowbPrec2→- makeShowbPrec2
- trace→- tracet
- traceLazy→- tracetl
- traceId→- tracetId
- traceIdLazy→- tracetlId
- traceShow→- traceTextShow
- traceShowId→- traceTextShowId
- traceStack→- tracetStack
- traceStackLazy→- tracetlStack
- traceIO→- tracetIO
- traceIOLazy→- tracetlIO
- traceM→- tracetM
- traceMLazy→- tracetlM
- traceShowM→- traceTextShowM
- traceEvent→- tracetEvent
- traceEventLazy→- tracetlEvent
- traceEventIO→- travetEventIO
- traceEventIOLazy→- tracetlEventIO
- traceMarker→- tracetMarker
- traceMarkerLazy→- tracetlMarker
- traceMarkerIO→- tracetMarkerIO
- traceMarkerIOLazy→- tracetlMarkerIO
- genericTraceShow→- genericTraceTextShow
- genericTraceShowId→- genericTraceTextShowId
- genericTraceShowM→- genericTraceTextShowM
- mkTraceShow→- makeTraceTextShow
- mkTraceShowId→- makeTraceTextShowId
- mkTraceShowM→- 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 the- genericShowbPrecWithfunction in- Text.Show.Text.Generics. A- genericShowbPrec1was also added.
- Added generic-derivingas a dependency, which allows generics-related code to be exported on more versions of GHC
- ConType(in- Text.Show.Text.Generics) now has an- Inf Stringconstructor instead of- Inf Builder. As a result,- ConTypenow always an- Eqand- Ordinstance, and a- Read 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 for- Show,- Show1, and- GShow(with GHC 7.8 and later)
- Typeableinstance for- ConType
- 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 in- Text.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 in- base,- containersand- time
- Exposed internal modules with monomorphic functions
- Text.Show.Textnow exports- Data.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
