text-show
Efficient conversion of values into Text
https://github.com/RyanGlScott/text-show
| LTS Haskell 24.16: | 3.11.2 |
| Stackage Nightly 2025-10-24: | 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