Changelog for text-show-3
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